UNPKG

@cognigy/rest-api-client

Version:

Cognigy REST-Client

126 lines 4.64 kB
import { __awaiter } from "tslib"; /** Custom Modules */ import { createNodeDescriptor } from "../../../createNodeDescriptor"; /** Helper Modules */ import { nodeColor } from "../utils/design"; import { transfer } from "../mappers/transfer.mapper"; import { isValidJSON } from "../../voicegateway2/utils/helper"; import { logFullConfigToDebugMode } from "../../../../helper/logFullConfigToDebugMode"; export const TRANSFER_VOICE = createNodeDescriptor({ type: "transfer", defaultLabel: "Transfer", tags: [""], preview: { key: "referTo", type: "text", }, appearance: { color: 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: ({ cognigy, config }) => __awaiter(void 0, void 0, void 0, function* () { const { api, input } = cognigy; const { referTo, useTransferSipHeaders, transferSipHeaders, transferReason, referredBy } = config; const { endpointType } = input; try { if (input.channel === "adminconsole") { yield 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 && !isValidJSON(transferSipHeaders)) { delete transferParams.transferSipHeaders; transferParams.useTransferSipHeaders = false; api.log("error", "Invalid JSON in Transfer SIP Headers"); } const payload = transfer.handleInput(endpointType, transferParams, true); yield api.say(null, { _cognigy: payload, }); logFullConfigToDebugMode(cognigy, config); } catch (error) { throw new Error(`Error on Transfer Node type: refer. Error message: ${error.message}`); } }), }); //# sourceMappingURL=transfer.js.map