UNPKG

node-groupme

Version:

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

61 lines 1.86 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const groupme_api_types_1 = require("groupme-api-types"); const __1 = require(".."); class Member extends __1.Base { constructor(client, group, user, data) { super(client, user.id); this.user = user; this.group = group; this.memberID = data.id; this.nickname = data.nickname; this.image_url = data.image_url; this.muted = data.muted; // this.autokicked = data.autokicked this.roles = data.roles; } _patch(data) { this.user._patch({ name: data.name, // don't bother updating the user avatar because we don't know whether it's real or not }); if (data.nickname !== undefined) this.nickname = data.nickname; if (data.image_url !== undefined) this.image_url = data.image_url; if (data.muted !== undefined) this.muted = data.muted; if (data.roles !== undefined) this.roles = data.roles; return this; } get isAdmin() { return this.roles.includes(groupme_api_types_1.MemberRole.Admin) || this.isOwner; } get isOwner() { return this.user.id === this.group.creatorID; } get canLeaveGroup() { return !this.isOwner; } get canUpdateGroup() { return this.isAdmin || !this.group.closed; } get canAddMembers() { return this.isAdmin || !this.group.closed; } get canRemoveMembers() { return this.isAdmin || !this.group.closed; } get canDeleteGroup() { return this.isOwner; } get canTransferGroup() { return this.isOwner; } async remove() { return this.group.members.remove(this); } } exports.default = Member; //# sourceMappingURL=Member.js.map