UNPKG

@cognigy/rest-api-client

Version:

Cognigy REST-Client

72 lines 2.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.buildUUIValue = exports.isValidJSON = exports.cleanTarget = void 0; function cleanTarget(rawTarget, isPrefixRequired) { if (rawTarget.includes("@")) { const sip = rawTarget.replace(/\s/g, ""); /* Leave the referTo target untouched in case it's already an URI */ if (!rawTarget.startsWith('<') && !rawTarget.startsWith('sip') && !rawTarget.startsWith('"')) { return `sip:${sip}`; } else { return sip; } } // handle telephone refer let processedTarget = rawTarget; if (processedTarget.toLowerCase().startsWith("tel:")) { // remove "tel:" first processedTarget = processedTarget.slice(4); } // clear up invalid chars processedTarget = processedTarget.replace(/\s|\(|\)|\-/g, ""); if (processedTarget.substring(0, 2) === "00") { // replace "00" with "+" processedTarget = `+${processedTarget.slice(2)}`; } return isPrefixRequired ? "tel:" + processedTarget : processedTarget; } exports.cleanTarget = cleanTarget; function isValidJSON(json) { try { if (json && typeof json === "object" && Object.entries(json).length && !Array.isArray(json)) { for (const value of Object.values(json)) { if (!["string", "number", "boolean"].includes(typeof value)) { return false; } } } return true; } catch (error) { return false; } } exports.isValidJSON = isValidJSON; const extractURLToken = (url) => { const [path] = url.split('?'); const [token] = path.split('/').reverse(); return token; }; const encodeHex = (plain) => { return plain.split("") .map(c => c.charCodeAt(0).toString(16).padStart(2, "0")) .join(""); }; const createFullUUIValue = (uui) => { return `00${encodeHex(uui)};encoding=hex`; }; const buildUUIValue = (params) => { const { webhookUrl, userId, sessionId, agentAssistConfigId, } = params; const { AGENT_ASSIST_WORKSPACE_FRONTEND_URL_WITH_PROTOCOL } = process.env; const URLToken = extractURLToken(webhookUrl); const assistUserId = `assist-${userId}`; const assistSessionId = `assist-${sessionId}`; const uui = `${AGENT_ASSIST_WORKSPACE_FRONTEND_URL_WITH_PROTOCOL}/?userId=${assistUserId}&sessionId=${assistSessionId}&URLToken=${URLToken}${agentAssistConfigId ? `&configId=${agentAssistConfigId}` : ''}`; return createFullUUIValue(uui); }; exports.buildUUIValue = buildUUIValue; //# sourceMappingURL=helper.js.map