UNPKG

@microsoft/omnichannel-chat-sdk

Version:
65 lines 3.55 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; Object.defineProperty(exports, "__esModule", { value: true }); var LiveChatVersion_1 = require("../core/LiveChatVersion"); var OmnichannelMessage_1 = require("../core/messaging/OmnichannelMessage"); var createOmnichannelMessage = function (message, optionalParams) { var omnichannelMessage = {}; omnichannelMessage.liveChatVersion = optionalParams.liveChatVersion || LiveChatVersion_1.default.V1; optionalParams.debug && console.log(message); if (optionalParams.liveChatVersion === LiveChatVersion_1.default.V2) { var _a = message, id = _a.id, content = _a.content, metadata = _a.metadata, sender = _a.sender, senderDisplayName = _a.senderDisplayName, createdOn = _a.createdOn; // eslint-disable-line @typescript-eslint/no-explicit-any omnichannelMessage.id = id; omnichannelMessage.messageid = undefined; omnichannelMessage.clientmessageid = undefined; omnichannelMessage.deliveryMode = undefined; // Backward compatibility omnichannelMessage.properties = {}; // Backward compatibility omnichannelMessage.content = content || ''; omnichannelMessage.properties.tags = metadata && metadata.tags ? metadata.tags : []; omnichannelMessage.tags = metadata && metadata.tags ? metadata.tags.replace(/\"/g, "").split(",").filter(function (tag) { return tag.length > 0; }) : []; // eslint-disable-line no-useless-escape omnichannelMessage.timestamp = createdOn; omnichannelMessage.messageType = OmnichannelMessage_1.MessageType.UserMessage; // Backward compatibility omnichannelMessage.sender = { id: sender.communicationUserId, displayName: senderDisplayName, type: OmnichannelMessage_1.PersonType.Bot }; if (metadata && metadata.amsMetadata && metadata.amsReferences || metadata.amsreferences) { try { var data = JSON.parse(metadata.amsMetadata); // "amsreferences" takes precedence var references = JSON.parse(metadata.amsreferences || metadata.amsReferences); var _b = data[0], fileName = _b.fileName, contentType = _b.contentType; // fileMetadata should be defined only when there's an attachment omnichannelMessage.fileMetadata = {}; // Backward compatibility omnichannelMessage.fileMetadata.fileSharingProtocolType = 0; omnichannelMessage.fileMetadata.id = references[0]; omnichannelMessage.fileMetadata.name = fileName; omnichannelMessage.fileMetadata.size = 0; omnichannelMessage.fileMetadata.type = contentType; omnichannelMessage.fileMetadata.url = ''; } catch (_c) { // Suppress errors to keep chat flowing } } } else { var clientmessageid = message.clientmessageid; omnichannelMessage.id = clientmessageid; omnichannelMessage = __assign({}, message); } return omnichannelMessage; }; exports.default = createOmnichannelMessage; //# sourceMappingURL=createOmnichannelMessage.js.map