wechaty-puppet
Version:
Abstract Puppet for Wechaty
59 lines • 2.34 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.roomInvitationMixin = void 0;
const config_js_1 = require("../config.js");
const roomInvitationMixin = (mixinBase) => {
class RoomInvitationMixin extends mixinBase {
constructor(...args) {
super(...args);
config_js_1.log.verbose('PuppetRoomInvitationMixin', 'constructor()');
}
/**
*
* Room Invitation
*
*/
/**
* Issue #155 - https://github.com/wechaty/puppet/issues/155
*
* @protected
*/
roomInvitationPayloadCache(roomInvitationId) {
// log.silly('PuppetRoomInvitationMixin', 'roomInvitationPayloadCache(id=%s) @ %s', friendshipId, this)
if (!roomInvitationId) {
throw new Error('no id');
}
const cachedPayload = this.cache.roomInvitation.get(roomInvitationId);
if (cachedPayload) {
// log.silly('PuppetRoomInvitationMixin', 'roomInvitationPayloadCache(%s) cache HIT', roomInvitationId)
}
else {
config_js_1.log.silly('PuppetRoomInvitationMixin', 'roomInvitationPayloadCache(%s) cache MISS', roomInvitationId);
}
return cachedPayload;
}
async roomInvitationPayload(roomInvitationId, newPayload) {
config_js_1.log.verbose('PuppetRoomInvitationMixin', 'roomInvitationPayload(%s)', roomInvitationId);
if (typeof newPayload === 'object') {
this.cache.roomInvitation.set(roomInvitationId, newPayload);
return;
}
/**
* 1. Try to get from cache first
*/
const cachedPayload = this.roomInvitationPayloadCache(roomInvitationId);
if (cachedPayload) {
return cachedPayload;
}
/**
* 2. Cache not found
*/
const rawPayload = await this.roomInvitationRawPayload(roomInvitationId);
const payload = await this.roomInvitationRawPayloadParser(rawPayload);
return payload;
}
}
return RoomInvitationMixin;
};
exports.roomInvitationMixin = roomInvitationMixin;
//# sourceMappingURL=room-invitation-mixin.js.map
;