UNPKG

@microsoft/omnichannel-chat-sdk

Version:
82 lines 4.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.messageContentMetadata = exports.isJsonObject = exports.getRuntimeId = exports.isNotEmpty = exports.isClientIdNotFoundErrorMessage = exports.getMessageRole = exports.isCustomerMessage = exports.isSystemMessage = void 0; var ACSParticipantDisplayName_1 = require("../core/messaging/ACSParticipantDisplayName"); var MessageType_1 = require("@microsoft/omnichannel-ic3core/lib/model/MessageType"); var ocsdk_1 = require("@microsoft/ocsdk"); var OmnichannelMessage_1 = require("../core/messaging/OmnichannelMessage"); var isSystemMessage = function (message) { var messageType = message.messageType, properties = message.properties; var conditionV1 = messageType === MessageType_1.default.UserMessage && properties && properties.tags && properties.tags.includes("system"); var conditionV2 = message.tags && message.tags.includes("system"); return conditionV1 || conditionV2 || false; }; exports.isSystemMessage = isSystemMessage; var isCustomerMessage = function (message) { var sender = message.sender; var conditionV1 = sender && sender.id && sender.id.includes('contacts/8:'); var conditionV2 = sender && sender.displayName && sender.displayName === ACSParticipantDisplayName_1.default.Customer; return conditionV1 || conditionV2 || false; }; exports.isCustomerMessage = isCustomerMessage; var getMessageRole = function (message) { var _a; var messageType = message.messageType, properties = message.properties, tags = message.tags; var isBotMessage = (messageType === MessageType_1.default.UserMessage && (!properties.tags || Object.keys(properties.tags).length === 0)) && (tags && tags.length === 0); var isAgentMessage = (messageType === MessageType_1.default.UserMessage && ((_a = properties === null || properties === void 0 ? void 0 : properties.tags) === null || _a === void 0 ? void 0 : _a.includes("public"))) || (tags && tags.includes("public")); if (isBotMessage) return OmnichannelMessage_1.Role.Bot; if (isAgentMessage) return OmnichannelMessage_1.Role.Agent; if ((0, exports.isSystemMessage)(message)) return OmnichannelMessage_1.Role.System; if ((0, exports.isCustomerMessage)(message)) return OmnichannelMessage_1.Role.User; return OmnichannelMessage_1.Role.Unknown; }; exports.getMessageRole = getMessageRole; // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types var isClientIdNotFoundErrorMessage = function (e) { var _a, _b, _c; return ((_a = e === null || e === void 0 ? void 0 : e.response) === null || _a === void 0 ? void 0 : _a.status) === 401 && ((_c = (_b = e === null || e === void 0 ? void 0 : e.response) === null || _b === void 0 ? void 0 : _b.headers) === null || _c === void 0 ? void 0 : _c.message) === "UserId not found"; }; exports.isClientIdNotFoundErrorMessage = isClientIdNotFoundErrorMessage; var isNotEmpty = function (value) { return value !== null && value !== undefined && value.trim() !== ''; }; exports.isNotEmpty = isNotEmpty; var getRuntimeId = function (externalRuntimeId) { if (externalRuntimeId !== null && (0, exports.isNotEmpty)(externalRuntimeId)) { return externalRuntimeId; } return (0, ocsdk_1.uuidv4)(); }; exports.getRuntimeId = getRuntimeId; var isJsonObject = function (input) { try { JSON.parse(input); return true; } catch (_a) { return false; } }; exports.isJsonObject = isJsonObject; var messageContentMetadata = function (message) { if (!message || message.length === 0) { // If the message is empty or null, return '0' return '0'; } var first = message === null || message === void 0 ? void 0 : message.charAt(0); var last = message === null || message === void 0 ? void 0 : message.charAt((message === null || message === void 0 ? void 0 : message.length) - 1); var size = message === null || message === void 0 ? void 0 : message.length; return "".concat(first).concat(size).concat(last); }; exports.messageContentMetadata = messageContentMetadata; //# sourceMappingURL=utilities.js.map