UNPKG

@botonic/plugin-flow-builder

Version:

Use Flow Builder to show your contents

45 lines 1.93 kB
import { __awaiter } from "tslib"; import axios from '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 = {})); export function conditionalQueueStatus({ queue_id, check_available_agents, }) { return __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; }); } export class HubtypeQueuesApi { constructor(queueId, checkAvailableAgents) { this.queueId = queueId; this.checkAvailableAgents = checkAvailableAgents || false; } getAvailability() { return __awaiter(this, void 0, void 0, function* () { const response = yield axios.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; }); } } export function getQueueAvailability(queueId, checkAvailableAgents = false) { return __awaiter(this, void 0, void 0, function* () { const queuesApi = new HubtypeQueuesApi(queueId, checkAvailableAgents); return yield queuesApi.getAvailability(); }); } //# sourceMappingURL=conditional-queue-status.js.map