@cognigy/rest-api-client
Version:
Cognigy REST-Client
128 lines • 4.78 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.TRANSFER_VOICE = void 0;
/** Custom Modules */
const createNodeDescriptor_1 = require("../../../createNodeDescriptor");
/** Helper Modules */
const design_1 = require("../utils/design");
const transfer_mapper_1 = require("../mappers/transfer.mapper");
const helper_1 = require("../../voicegateway2/utils/helper");
const logFullConfigToDebugMode_1 = require("../../../../helper/logFullConfigToDebugMode");
exports.TRANSFER_VOICE = (0, createNodeDescriptor_1.createNodeDescriptor)({
type: "transfer",
defaultLabel: "Transfer",
tags: [""],
preview: {
key: "referTo",
type: "text",
},
appearance: {
color: design_1.nodeColor,
},
fields: [
{
key: "transferReason",
label: "UI__NODE_EDITOR__TRANSFER_REASON__FIELDS__TRANSFER_REASON__LABEL",
type: "cognigyText",
params: {
required: true,
},
description: "UI__NODE_EDITOR__TRANSFER_REASON__FIELDS__TRANSFER_REASON__DESCRIPTION",
defaultValue: "Bot initiated transfer.",
},
{
key: "referTo",
label: "UI__NODE_EDITOR__TRANSFER_REASON__FIELDS__REFER_TO__LABEL",
type: "cognigyText",
params: {
required: true,
},
description: "UI__NODE_EDITOR__TRANSFER_REASON__FIELDS__REFER_TO__DESCRIPTION",
defaultValue: "+49123456789",
},
{
key: "referredBy",
label: "UI__NODE_EDITOR__TRANSFER_REASON__FIELDS__FIELDS__REFERRED_BY__LABEL",
type: "cognigyText",
description: "UI__NODE_EDITOR__TRANSFER_REASON__FIELDSFIELDS__REFERRED_BY__DESCRIPTION",
defaultValue: ""
},
{
key: "useTransferSipHeaders",
label: "UI__NODE_EDITOR__TRANSFER_REASON__FIELDS__USE_TRANSFER_SIP_HEADERS__LABEL",
type: "toggle",
description: "UI__NODE_EDITOR__TRANSFER_REASON__FIELDS__USE_TRANSFER_SIP_HEADERS__DESCRIPTION",
defaultValue: false,
},
{
key: "transferSipHeaders",
label: "UI__NODE_EDITOR__TRANSFER_REASON__FIELDS__TRANSFER_SIP_HEADERS__LABEL",
type: "json",
description: "UI__NODE_EDITOR__TRANSFER_REASON__FIELDS__TRANSFER_SIP_HEADERS__DESCRIPTION",
defaultValue: {
"X-Custom-Header": "YourValue",
},
condition: {
key: "useTransferSipHeaders",
value: true,
},
},
],
sections: [
{
key: "advanced",
label: "UI__NODE_EDITOR__TRANSFER_REASON__SECTIONS__ADVANCED__LABEL",
defaultCollapsed: true,
fields: ["referredBy", "useTransferSipHeaders", "transferSipHeaders"],
},
],
form: [
{
type: "field",
key: "transferReason",
},
{
type: "field",
key: "referTo",
},
{
type: "section",
key: "advanced",
},
],
summary: "UI__NODE_EDITOR__TRANSFER__SUMMARY",
function: async ({ cognigy, config }) => {
const { api, input } = cognigy;
const { referTo, useTransferSipHeaders, transferSipHeaders, transferReason, referredBy } = config;
const { endpointType } = input;
try {
if (input.channel === "adminconsole") {
await api.say("Transferring a call is not supported in the Interaction Panel.", null);
return;
}
const transferParams = {
transferReason,
transferTarget: referTo,
referredBy,
useTransferSipHeaders: useTransferSipHeaders,
transferSipHeaders: transferSipHeaders,
};
if (useTransferSipHeaders &&
transferSipHeaders &&
!(0, helper_1.isValidJSON)(transferSipHeaders)) {
delete transferParams.transferSipHeaders;
transferParams.useTransferSipHeaders = false;
api.log("error", "Invalid JSON in Transfer SIP Headers");
}
const payload = transfer_mapper_1.transfer.handleInput(endpointType, transferParams, true);
await api.say(null, {
_cognigy: payload,
});
(0, logFullConfigToDebugMode_1.logFullConfigToDebugMode)(cognigy, config);
}
catch (error) {
throw new Error(`Error on Transfer Node type: refer. Error message: ${error.message}`);
}
},
});
//# sourceMappingURL=transfer.js.map