UNPKG

node-easysms

Version:

EasySMS is an SMS sender for Node.js

84 lines (83 loc) 2.58 kB
'use strict'; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Messenger = void 0; const NoGatewayAvailableException_1 = require("./Exceptions/NoGatewayAvailableException"); /** * 消息发送器 */ class Messenger { constructor() { this.app = null; } /** * 设置应用实例 * @param app * @returns */ setApp(app) { this.app = app; return this; } /** * 调用网关进行发送 * @param to 电话号码对象 * @param message 消息对象 * @param gateways 网关标识列表 * @returns */ send(to, message, gateways) { return __awaiter(this, void 0, void 0, function* () { let results = []; let isSuccess = false; for (let gateway of gateways) { try { results.push({ gateway, status: Messenger.STATUS_SUCCESS, result: yield this.app.gateway(gateway).send(to, message), }); isSuccess = true; break; } catch (e) { results.push({ gateway, status: Messenger.STATUS_FAILURE, exception: e, }); } } if (!isSuccess) { throw new NoGatewayAvailableException_1.NoGatewayAvailableException(results); } return results; }); } } exports.Messenger = Messenger; /** * 成果状态 */ Messenger.STATUS_SUCCESS = 'success'; /** * 失败状态 */ Messenger.STATUS_FAILURE = 'failure'; /** * 执行策略,顺序执行 */ Messenger.STRATEGY_ORDER = 'order'; /** * 执行策略,随机执行 */ Messenger.STRATEGY_RANDOM = 'random'; ;