UNPKG

cecula

Version:

NodeJS library for sending A2P and P2P SMS over the Cecula API

85 lines (72 loc) 2.41 kB
const request = require("request"); const cecula = {}; cecula.apiKey = ""; // Send A2P SMS cecula.sendA2PSMS = (dataObj, callback) => { if (typeof callback !== "function") { console.info("Missing callback argument"); return null; } cecula._sendRequest("send/a2p", dataObj, "POST").then((result) => { callback(result); }); }; // Send P2P SMS cecula.sendP2PSMS = (dataObj, callback) => { if (typeof callback !== "function") { console.info("Missing callback argument"); return null; } cecula._sendRequest("send/p2p", dataObj, "POST").then((result) => { callback(result); }); }; // Get A2P SMS Balance cecula.getA2PBalance = (callback) => { if (typeof callback !== "function") { console.info("Missing callback argument"); return null; } cecula._sendRequest("account/a2pbalance", {}, "GET").then((result) => { callback(result); }); }; // Get Sync Cloud Balance cecula.getSyncCloudBalance = (data, callback) => { if (typeof callback !== "function") { console.info("Missing callback argument"); return null; } cecula._sendRequest("account/scbalance?identity=" + data.identity, {}, "GET").then((result) => { callback(result); }); }; // Endpoing for sending HTTP Request cecula._sendRequest = (endPoint, jsonData, requestMethod, timeoutLimit = 36000) => { return new Promise((resolve, reject) => { var options = { url: "https://api.cecula.com/" + endPoint, // cecula url method: requestMethod, headers: { "Authorization": "Bearer " + cecula.apiKey, "cache-control": "no-cache" }, timeout: timeoutLimit }; if (["POST", "PUT", "OPTIONS", "PATCH"].indexOf(requestMethod) > -1) { options.headers.Accept = "application/json"; options.headers["Content-Type"] = "application/json"; options.json = jsonData; } request(options, (error, res, data) => { if (error) { resolve(error); return; } // convert the response to an object if it didnt come as an object let result = typeof data === "object" ? data : JSON.parse(data); resolve(result); }); }); }; module.exports = cecula;