src/instant-messages/InstantMessage.js
import {InstantMessageType} from './InstantMessageType';
/**
* @example <caption>Creating an InstantMessage</caption>
* let im = session.createInstantMessage(recipient, text);
* im.send().then(() => {
* console.warn("Message received by the server");
* })
*/
export class InstantMessage {
/**
* @protected
*/
constructor(wacProxy, type, sender, receiver, message) {
/** @private */
this.wacProxy = wacProxy;
/** @private */
this.type = type;
/** @private */
this.sender = sender;
/** @private */
this.receiver = receiver;
/** @private */
this.message = message;
}
/**
* Get the message's composer
* @return {String} composer
*/
getSender() {
return this.sender;
}
/**
* Get the message' receiver
* @return {String} receiver
*/
getReceiver() {
return this.receiver;
}
/**
* Get the message
* @return {String} message
*/
getMessage() {
return this.message;
}
/**
* Sends the message
* @return {Promise}
*/
send() {
if (this.type !== InstantMessageType.outgoing) {
throw new Error('Outgoing message can not be sent');
}
return this.wacProxy.sendIm(this.receiver, this.message);
}
}