@microsoft/omnichannel-chat-sdk
Version:
Microsoft Omnichannel Chat SDK
82 lines • 4.26 kB
JavaScript
;
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