node-groupme
Version:
The only GroupMe API library that isn't a million years old.
78 lines • 3.04 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ChannelType = void 0;
const __1 = require("..");
var ChannelType;
(function (ChannelType) {
ChannelType["Chat"] = "chat";
ChannelType["Group"] = "group";
ChannelType["FormerGroup"] = "former_group";
})(ChannelType = exports.ChannelType || (exports.ChannelType = {}));
class Channel extends __1.Base {
constructor(client, data) {
super(client, data.id);
this.messageCount = data.messageCount;
this.lastMessage = data.lastMessage;
this.createdAt = data.createdAt;
this.updatedAt = data.updatedAt;
this.messageDeletionMode = data.messageDeletionMode;
this.messageDeletionPeriod = data.messageDeletionPeriod;
}
static _patch(self, data) {
if (data.messageCount !== undefined)
self.messageCount = data.messageCount;
if (data.lastMessage !== undefined)
self.lastMessage = data.lastMessage;
if (data.createdAt !== undefined)
self.createdAt = data.createdAt;
if (data.updatedAt !== undefined)
self.updatedAt = data.updatedAt;
if (data.messageDeletionMode !== undefined)
self.messageDeletionMode = data.messageDeletionMode;
if (data.messageDeletionPeriod !== undefined)
self.messageDeletionPeriod = data.messageDeletionPeriod;
return self;
}
static dataFromGroup(data) {
return {
id: data.id,
lastMessage: {
id: data.messages.last_message_id,
createdAt: data.messages.last_message_created_at,
text: data.messages.preview.text,
attachments: data.messages.preview.attachments,
user: {
image_url: data.messages.preview.image_url,
nickname: data.messages.preview.nickname,
},
},
messageCount: data.messages.count,
createdAt: data.created_at,
updatedAt: data.updated_at,
messageDeletionMode: data.message_deletion_mode,
messageDeletionPeriod: data.message_deletion_period,
};
}
static dataFromChat(data) {
return {
id: data.other_user.id,
lastMessage: {
id: data.last_message.id,
createdAt: data.last_message.created_at,
text: data.last_message.text,
attachments: data.last_message.attachments,
user: {
nickname: data.last_message.name,
image_url: data.last_message.avatar_url,
},
},
messageCount: data.messages_count,
createdAt: data.created_at,
updatedAt: data.updated_at,
messageDeletionMode: data.message_deletion_mode,
messageDeletionPeriod: data.message_deletion_period,
};
}
}
exports.default = Channel;
//# sourceMappingURL=Channel.js.map