kod-temp
Version:
Workano Communications SDK
51 lines (50 loc) • 1.63 kB
JavaScript
;
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;
}