Skip to content

Commit dcee511

Browse files
authored
Merge pull request #67 from mconf/transcript-v2
feat: emit transcript-updated
2 parents 5290c10 + abf819c commit dcee511

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

src/process/event.js

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ export default class WebhooksEvent {
3232
"user-presenter-unassigned",
3333
"user-emoji-changed",
3434
"user-raise-hand-changed",
35+
"transcript-updated",
3536
"chat-group-message-sent",
3637
"rap-published",
3738
"rap-unpublished",
@@ -113,6 +114,9 @@ export default class WebhooksEvent {
113114
"PollStartedEvtMsg",
114115
"UserRespondedToPollRespMsg",
115116
],
117+
TRANSCRIPT_EVENTS: [
118+
"TranscriptUpdatedEvtMsg"
119+
]
116120
}
117121

118122
constructor(inputEvent) {
@@ -137,6 +141,8 @@ export default class WebhooksEvent {
137141
this.padTemplate(this.inputEvent);
138142
} else if (this.mappedEvent(this.inputEvent, WebhooksEvent.RAW.POLL_EVENTS)) {
139143
this.pollTemplate(this.inputEvent);
144+
} else if (this.mappedEvent(this.inputEvent, WebhooksEvent.RAW.TRANSCRIPT_EVENTS)) {
145+
this.transcriptTemplate(this.inputEvent);
140146
} else if (this.mappedEvent(this.inputEvent, WebhooksEvent.OUTPUT_EVENTS)) {
141147
// Check if input is already a mapped event and return it
142148
this.outputEvent = this.inputEvent;
@@ -598,6 +604,39 @@ export default class WebhooksEvent {
598604
}
599605
}
600606

607+
transcriptTemplate(messageObj) {
608+
const { body } = messageObj.core;
609+
const userId = this._extractIntUserID(messageObj);
610+
const extId = UserMapping.get().getExternalUserID(userId) || body.extId || "";
611+
const meetingId = this._extractIntMeetingID(messageObj);
612+
613+
this.outputEvent = {
614+
data: {
615+
"type": "event",
616+
"id": this.mapInternalMessage(messageObj),
617+
"attributes":{
618+
"meeting":{
619+
"internal-meeting-id": meetingId,
620+
"external-meeting-id": IDMapping.get().getExternalMeetingID(meetingId)
621+
},
622+
"user":{
623+
"internal-user-id": userId,
624+
"external-user-id": extId,
625+
},
626+
"transcript":{
627+
"id": body.transcriptId,
628+
"transcript": body.transcript,
629+
"locale": body.locale,
630+
"final": body.result
631+
}
632+
},
633+
"event":{
634+
"ts": Date.now()
635+
}
636+
}
637+
};
638+
}
639+
601640
mapInternalMessage(message) {
602641
const name = message?.envelope?.name || message?.header?.name;
603642

@@ -620,6 +659,7 @@ export default class WebhooksEvent {
620659
case "UserEmojiChangedEvtMsg":
621660
case "UserReactionEmojiChangedEvtMsg": return 'user-emoji-changed';
622661
case "UserRaiseHandChangedEvtMsg": return "user-raise-hand-changed";
662+
case "TranscriptUpdatedEvtMsg": return "transcript-updated";
623663
case "GroupChatMessageBroadcastEvtMsg": return "chat-group-message-sent";
624664
case "PublishedRecordingSysMsg": return "rap-published";
625665
case "UnpublishedRecordingSysMsg": return "rap-unpublished";

0 commit comments

Comments
 (0)