@cognigy/rest-api-client
Version:
Cognigy REST-Client
72 lines • 2.67 kB
JavaScript
;
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