UNPKG

node-groupme

Version:

The only GroupMe API library that isn't a million years old.

46 lines 1.72 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const __1 = require(".."); class MemberManager extends __1.BaseManager { constructor(client, group) { super(client, __1.Member); this.group = group; this.former = new __1.FormerMemberManager(client, group); } fetch(id) { if (typeof id === 'string') { return this.fetchId(id); } return this.fetchAll(); } fetchId(id) { throw new Error('Method not implemented.'); } async fetchAll() { // The /members endpoint is reserved for admins, so to be safe we just fetch the group instead const groupResponse = await this.client.rest.api('GET', `groups/${this.group.id}`); const batch = new __1.Collection(); groupResponse.members?.forEach(data => { const user = this.client.users._add({ id: data.user_id, avatar_url: data.image_url, name: data.name, }); const member = this._upsert(new __1.Member(this.client, this.group, user, data)); batch.set(member.memberID, member); }); return batch; } add(ids) { throw new Error('Method not implemented.'); } async remove(member) { await this.client.rest.api('POST', `groups/${this.group.id}/members/${member.memberID}/remove`); const formerMember = new __1.FormerMember(this.client, this.group, member.user, member, __1.FormerMemberState.Removed); this.former._upsert(formerMember); this._remove(member); return formerMember; } } exports.default = MemberManager; //# sourceMappingURL=MemberManager.js.map