UNPKG

ivr-tester

Version:

An automated testing framework for IVR call flows

48 lines (47 loc) 2.31 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.validateConfig = void 0; const joi_1 = __importDefault(require("joi")); const TwilioCallServer_1 = require("../testing/TwilioCallServer"); const twilio_1 = require("twilio"); const UlawDtmfBufferGenerator_1 = require("../call/dtmf/UlawDtmfBufferGenerator"); const defaultTwilioFactory = (auth) => new twilio_1.Twilio(auth.accountSid, auth.authToken); const thirtySeconds = 30 * 1000; const schema = joi_1.default.object({ dtmfGenerator: joi_1.default.object() .optional() .default(() => new UlawDtmfBufferGenerator_1.UlawDtmfBufferGenerator()), transcriber: joi_1.default.object().required(), localServerPort: joi_1.default.number().port().optional().default(8080), publicServerUrl: joi_1.default.string().uri().optional(), twilioAuth: joi_1.default.object({ accountSid: joi_1.default.string().required(), authToken: joi_1.default.string().required(), }).required(), twilioClientFactory: joi_1.default.function() .optional() .default(() => defaultTwilioFactory), msTimeoutWaitingForCall: joi_1.default.number().optional().default(thirtySeconds), recording: joi_1.default.object({ audio: joi_1.default.object({ outputPath: joi_1.default.string().required(), filename: joi_1.default.valid(joi_1.default.string(), joi_1.default.function()).optional(), }).optional(), transcript: joi_1.default.object({ outputPath: joi_1.default.string().required(), filename: joi_1.default.valid(joi_1.default.string(), joi_1.default.function()).optional(), includeResponse: joi_1.default.boolean().optional().default(false), }).optional(), }).optional(), }); const validateConfig = (config) => { const { error, value } = schema.validate(config, { presence: "required" }); if (value.publicServerUrl) { value.publicServerUrl = TwilioCallServer_1.TwilioCallServer.convertToWebSocketUrl(value.publicServerUrl).toString(); } return { config: value, error }; }; exports.validateConfig = validateConfig;