rcs-data
Version:
RCS消息数据结构
52 lines • 1.61 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.RcsConversation = void 0;
const debug = require('debug')('conversation');
class RcsConversation {
constructor() {
this._messages = [];
}
static build(viewer, latestMessage) {
const ins = new RcsConversation();
let { conversationId, from, to } = latestMessage;
if (viewer.uri.toString() === from.uri.toString()) {
ins._viewer = from;
ins._peer = to;
}
else if (viewer.uri.toString() === to.uri.toString()) {
ins._viewer = to;
ins._peer = from;
}
else {
debug(`消息的用户[${from.toString()}][${to.toString()}]与指定的用户[${viewer.toString()}]无关,无法构造会话对象`);
throw Error('消息与指定的用户无关,无法构造会话对象');
}
ins._id = conversationId;
ins._messages.push(latestMessage);
return ins;
}
static create(conversationId, viewer, peer) {
const ins = new RcsConversation();
ins._id = conversationId;
ins._viewer = viewer;
ins._peer = peer;
return ins;
}
get id() {
return this._id;
}
get viewer() {
return this._viewer;
}
get peer() {
return this._peer;
}
get messages() {
return this._messages;
}
get content() {
return this.messages.length ? this.messages[0].content : null;
}
}
exports.RcsConversation = RcsConversation;
//# sourceMappingURL=RcsConversation.js.map