UNPKG

kod-temp

Version:

Workano Communications SDK

51 lines (50 loc) 1.63 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateExtens = generateExtens; function generateExtens(context, extenType, extensions) { let rangePropNames; switch (extenType) { case "conference": rangePropNames = ["conference_room_ranges"]; break; case "group": rangePropNames = ["group_ranges"]; break; case "incall": rangePropNames = ["incall_ranges"]; break; case "queue": rangePropNames = ["queue_ranges"]; break; case "user": case "voicemail": rangePropNames = ["user_ranges"]; break; default: rangePropNames = [ "conference_room_ranges", "group_ranges", "incall_ranges", "queue_ranges", "user_ranges", ]; } const reservedExtenSet = new Set(extensions .filter((extension) => extension.context === context.name) .map((extensionItem) => Number(extensionItem.exten))); const extens = []; for (const propName of rangePropNames) { const ranges = context[propName]; for (const range of ranges) { const start = Number(range.start); const end = Number(range.end); for (let i = start; i <= end; i++) { if (extenType !== "voicemail" && reservedExtenSet.has(i)) { continue; } extens.push(i.toString()); } } } return extens; }