harmony/src/managers/users.ts

24 lines
686 B
TypeScript
Raw Normal View History

import { Client } from '../models/client.ts'
import { User } from '../structures/user.ts'
import { USER } from '../types/endpoint.ts'
import { UserPayload } from '../types/user.ts'
2020-11-04 12:38:00 +00:00
import { BaseManager } from './base.ts'
export class UserManager extends BaseManager<UserPayload, User> {
constructor (client: Client) {
super(client, 'users', User)
}
async fetch (id: string): Promise<User> {
return await new Promise((resolve, reject) => {
this.client.rest
.get(USER(id))
.then(data => {
this.set(id, data as UserPayload)
resolve(new User(this.client, data as UserPayload))
})
.catch(e => reject(e))
})
}
}