@ovotech/genesys-web-messaging-tester
Version:
43 lines (42 loc) • 1.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SessionTranscriber = void 0;
const events_1 = require("events");
/**
* Transcribes a Web Messenger session into an array of transcribed messages.
*/
class SessionTranscriber extends events_1.EventEmitter {
constructor(messengerSession, { nameForClient = 'You', nameForServer = 'Them', } = {}) {
super();
this.messengerSession = messengerSession;
this.conversation = [];
this._nameForClient = nameForClient;
this._nameForServer = nameForServer;
this.messengerSession.on('structuredMessage', (event) => {
this.recordStructuredMessage(event);
});
}
recordStructuredMessage(event) {
if (event.body.type !== 'Text' && event.body.type !== 'Structured') {
return;
}
const who = event.body.direction === 'Inbound' ? this._nameForClient : this._nameForServer;
const message = event.body.text;
const interaction = {
who,
message,
toString: () => {
return `${who}: ${message}`;
},
};
this.conversation.push(interaction);
this.emitInteraction(interaction);
}
emitInteraction(interaction) {
this.emit('messageTranscribed', interaction);
}
getTranscript() {
return this.conversation;
}
}
exports.SessionTranscriber = SessionTranscriber;