UNPKG

@codebucket/sms

Version:

SMS module

63 lines (62 loc) 2.27 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.SmartSolProvider = void 0; // src/providers/SmartSolProvider.ts const axios_1 = __importDefault(require("axios")); const querystring_1 = __importDefault(require("querystring")); const BaseProvider_1 = require("./BaseProvider"); function interpolate(template, vars) { return template.replace(/\{\{(\w+)\}\}/g, (_, key) => vars[key] !== undefined ? String(vars[key]) : ''); } class SmartSolProvider extends BaseProvider_1.BaseProvider { constructor(cfg) { super(); this.cfg = cfg; this.sendUrl = cfg.useGet ? 'https://api.100coins.co/v3/getsms' : 'https://api.100coins.co/v3/postsms'; } async send(opts) { const mtype = opts.type === 'unicode' ? 2 : 0; const mobno = opts.to.map(m => m.replace(/^91/, '')).join(','); let { variables } = opts; if (Array.isArray(variables)) { let tempVariables = {}; for (let i = 0; i < variables.length; i++) { tempVariables[`var${i + 1}`] = variables[i]; } variables = tempVariables; } const params = { apikey: this.cfg.apiKey, mtype, mask: this.cfg.mask, mobno, peid: this.cfg.peid, }; if (opts.templateId) { params.tempid = opts.templateId; } if (opts.content) { const msg = variables ? interpolate(opts.content, variables) : opts.content; params.message = msg; } if (this.cfg.isFlash) { params.isflash = 1; } if (this.cfg.useGet) { const resp = await axios_1.default.get(this.sendUrl, { params }); return resp.data; } else { const resp = await axios_1.default.post(this.sendUrl, querystring_1.default.stringify(params), { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }); return resp.data; } } } exports.SmartSolProvider = SmartSolProvider;