harmony/src/managers/guilds.ts

28 lines
999 B
TypeScript
Raw Normal View History

import { Client } from "../models/client.ts";
import { Guild } from "../structures/guild.ts";
import { GUILD } from "../types/endpoint.ts";
import { GuildPayload, MemberPayload } from "../types/guild.ts";
2020-11-04 12:38:00 +00:00
import { BaseManager } from "./base.ts";
import { MembersManager } from "./members.ts";
export class GuildManager extends BaseManager<GuildPayload, Guild> {
constructor (client: Client) {
super(client, 'guilds', Guild)
}
2020-11-03 09:21:29 +00:00
async fetch(id: string): Promise<Guild> {
return await new Promise((resolve, reject) => {
this.client.rest.get(GUILD(id)).then(async (data: any) => {
this.set(id, data)
2020-11-03 09:21:29 +00:00
const guild = new Guild(this.client, data)
2020-11-03 15:19:20 +00:00
if ((data as GuildPayload).members !== undefined) {
2020-11-03 09:21:29 +00:00
const members = new MembersManager(this.client, guild)
await members.fromPayload((data as GuildPayload).members as MemberPayload[])
guild.members = members
}
2020-11-03 09:21:29 +00:00
resolve(guild)
}).catch(e => reject(e))
})
}
}