@codebucket/sms
Version:
SMS module
63 lines (62 loc) • 2.27 kB
JavaScript
;
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;