UNPKG

@botonic/plugin-flow-builder

Version:

Use Flow Builder to show your contents

51 lines 2.31 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getQueueAvailability = exports.HubtypeQueuesApi = exports.conditionalQueueStatus = void 0; const tslib_1 = require("tslib"); const axios_1 = tslib_1.__importDefault(require("axios")); const HUBTYPE_API_URL = process.env.HUBTYPE_API_URL || 'https://api.hubtype.com'; var QueueStatusResult; (function (QueueStatusResult) { QueueStatusResult["OPEN"] = "open"; QueueStatusResult["CLOSED"] = "closed"; QueueStatusResult["OPEN_WITHOUT_AGENTS"] = "open-without-agents"; })(QueueStatusResult || (QueueStatusResult = {})); function conditionalQueueStatus({ queue_id, check_available_agents, }) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const data = yield getQueueAvailability(queue_id, check_available_agents); if (check_available_agents && data.open && data.available_agents === 0) { return QueueStatusResult.OPEN_WITHOUT_AGENTS; } return data.open ? QueueStatusResult.OPEN : QueueStatusResult.CLOSED; }); } exports.conditionalQueueStatus = conditionalQueueStatus; class HubtypeQueuesApi { constructor(queueId, checkAvailableAgents) { this.queueId = queueId; this.checkAvailableAgents = checkAvailableAgents || false; } getAvailability() { return tslib_1.__awaiter(this, void 0, void 0, function* () { const response = yield axios_1.default.get(`${HUBTYPE_API_URL}/external/v1/queues/${this.queueId}/availability/`, // TODO: Make it configurable in the future { params: { check_queue_schedule: true, check_waiting_cases: false, check_available_agents: this.checkAvailableAgents, }, }); return response.data; }); } } exports.HubtypeQueuesApi = HubtypeQueuesApi; function getQueueAvailability(queueId, checkAvailableAgents = false) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const queuesApi = new HubtypeQueuesApi(queueId, checkAvailableAgents); return yield queuesApi.getAvailability(); }); } exports.getQueueAvailability = getQueueAvailability; //# sourceMappingURL=conditional-queue-status.js.map