@termii/node
Version:
Nodejs SDK wrapper for Termii API written with Typescript support
1,307 lines (1,290 loc) • 50.2 kB
JavaScript
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
var axios = _interopDefault(require('axios'));
function _regeneratorRuntime() {
_regeneratorRuntime = function () {
return exports;
};
var exports = {},
Op = Object.prototype,
hasOwn = Op.hasOwnProperty,
defineProperty = Object.defineProperty || function (obj, key, desc) {
obj[key] = desc.value;
},
$Symbol = "function" == typeof Symbol ? Symbol : {},
iteratorSymbol = $Symbol.iterator || "@@iterator",
asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator",
toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";
function define(obj, key, value) {
return Object.defineProperty(obj, key, {
value: value,
enumerable: !0,
configurable: !0,
writable: !0
}), obj[key];
}
try {
define({}, "");
} catch (err) {
define = function (obj, key, value) {
return obj[key] = value;
};
}
function wrap(innerFn, outerFn, self, tryLocsList) {
var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,
generator = Object.create(protoGenerator.prototype),
context = new Context(tryLocsList || []);
return defineProperty(generator, "_invoke", {
value: makeInvokeMethod(innerFn, self, context)
}), generator;
}
function tryCatch(fn, obj, arg) {
try {
return {
type: "normal",
arg: fn.call(obj, arg)
};
} catch (err) {
return {
type: "throw",
arg: err
};
}
}
exports.wrap = wrap;
var ContinueSentinel = {};
function Generator() {}
function GeneratorFunction() {}
function GeneratorFunctionPrototype() {}
var IteratorPrototype = {};
define(IteratorPrototype, iteratorSymbol, function () {
return this;
});
var getProto = Object.getPrototypeOf,
NativeIteratorPrototype = getProto && getProto(getProto(values([])));
NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);
var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);
function defineIteratorMethods(prototype) {
["next", "throw", "return"].forEach(function (method) {
define(prototype, method, function (arg) {
return this._invoke(method, arg);
});
});
}
function AsyncIterator(generator, PromiseImpl) {
function invoke(method, arg, resolve, reject) {
var record = tryCatch(generator[method], generator, arg);
if ("throw" !== record.type) {
var result = record.arg,
value = result.value;
return value && "object" == typeof value && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) {
invoke("next", value, resolve, reject);
}, function (err) {
invoke("throw", err, resolve, reject);
}) : PromiseImpl.resolve(value).then(function (unwrapped) {
result.value = unwrapped, resolve(result);
}, function (error) {
return invoke("throw", error, resolve, reject);
});
}
reject(record.arg);
}
var previousPromise;
defineProperty(this, "_invoke", {
value: function (method, arg) {
function callInvokeWithMethodAndArg() {
return new PromiseImpl(function (resolve, reject) {
invoke(method, arg, resolve, reject);
});
}
return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();
}
});
}
function makeInvokeMethod(innerFn, self, context) {
var state = "suspendedStart";
return function (method, arg) {
if ("executing" === state) throw new Error("Generator is already running");
if ("completed" === state) {
if ("throw" === method) throw arg;
return doneResult();
}
for (context.method = method, context.arg = arg;;) {
var delegate = context.delegate;
if (delegate) {
var delegateResult = maybeInvokeDelegate(delegate, context);
if (delegateResult) {
if (delegateResult === ContinueSentinel) continue;
return delegateResult;
}
}
if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) {
if ("suspendedStart" === state) throw state = "completed", context.arg;
context.dispatchException(context.arg);
} else "return" === context.method && context.abrupt("return", context.arg);
state = "executing";
var record = tryCatch(innerFn, self, context);
if ("normal" === record.type) {
if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue;
return {
value: record.arg,
done: context.done
};
}
"throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg);
}
};
}
function maybeInvokeDelegate(delegate, context) {
var methodName = context.method,
method = delegate.iterator[methodName];
if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel;
var record = tryCatch(method, delegate.iterator, context.arg);
if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel;
var info = record.arg;
return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel);
}
function pushTryEntry(locs) {
var entry = {
tryLoc: locs[0]
};
1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);
}
function resetTryEntry(entry) {
var record = entry.completion || {};
record.type = "normal", delete record.arg, entry.completion = record;
}
function Context(tryLocsList) {
this.tryEntries = [{
tryLoc: "root"
}], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);
}
function values(iterable) {
if (iterable) {
var iteratorMethod = iterable[iteratorSymbol];
if (iteratorMethod) return iteratorMethod.call(iterable);
if ("function" == typeof iterable.next) return iterable;
if (!isNaN(iterable.length)) {
var i = -1,
next = function next() {
for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;
return next.value = undefined, next.done = !0, next;
};
return next.next = next;
}
}
return {
next: doneResult
};
}
function doneResult() {
return {
value: undefined,
done: !0
};
}
return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", {
value: GeneratorFunctionPrototype,
configurable: !0
}), defineProperty(GeneratorFunctionPrototype, "constructor", {
value: GeneratorFunction,
configurable: !0
}), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) {
var ctor = "function" == typeof genFun && genFun.constructor;
return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name));
}, exports.mark = function (genFun) {
return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun;
}, exports.awrap = function (arg) {
return {
__await: arg
};
}, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {
return this;
}), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {
void 0 === PromiseImpl && (PromiseImpl = Promise);
var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);
return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {
return result.done ? result.value : iter.next();
});
}, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () {
return this;
}), define(Gp, "toString", function () {
return "[object Generator]";
}), exports.keys = function (val) {
var object = Object(val),
keys = [];
for (var key in object) keys.push(key);
return keys.reverse(), function next() {
for (; keys.length;) {
var key = keys.pop();
if (key in object) return next.value = key, next.done = !1, next;
}
return next.done = !0, next;
};
}, exports.values = values, Context.prototype = {
constructor: Context,
reset: function (skipTempReset) {
if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);
},
stop: function () {
this.done = !0;
var rootRecord = this.tryEntries[0].completion;
if ("throw" === rootRecord.type) throw rootRecord.arg;
return this.rval;
},
dispatchException: function (exception) {
if (this.done) throw exception;
var context = this;
function handle(loc, caught) {
return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught;
}
for (var i = this.tryEntries.length - 1; i >= 0; --i) {
var entry = this.tryEntries[i],
record = entry.completion;
if ("root" === entry.tryLoc) return handle("end");
if (entry.tryLoc <= this.prev) {
var hasCatch = hasOwn.call(entry, "catchLoc"),
hasFinally = hasOwn.call(entry, "finallyLoc");
if (hasCatch && hasFinally) {
if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);
if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);
} else if (hasCatch) {
if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);
} else {
if (!hasFinally) throw new Error("try statement without catch or finally");
if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);
}
}
}
},
abrupt: function (type, arg) {
for (var i = this.tryEntries.length - 1; i >= 0; --i) {
var entry = this.tryEntries[i];
if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) {
var finallyEntry = entry;
break;
}
}
finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);
var record = finallyEntry ? finallyEntry.completion : {};
return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);
},
complete: function (record, afterLoc) {
if ("throw" === record.type) throw record.arg;
return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;
},
finish: function (finallyLoc) {
for (var i = this.tryEntries.length - 1; i >= 0; --i) {
var entry = this.tryEntries[i];
if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;
}
},
catch: function (tryLoc) {
for (var i = this.tryEntries.length - 1; i >= 0; --i) {
var entry = this.tryEntries[i];
if (entry.tryLoc === tryLoc) {
var record = entry.completion;
if ("throw" === record.type) {
var thrown = record.arg;
resetTryEntry(entry);
}
return thrown;
}
}
throw new Error("illegal catch attempt");
},
delegateYield: function (iterable, resultName, nextLoc) {
return this.delegate = {
iterator: values(iterable),
resultName: resultName,
nextLoc: nextLoc
}, "next" === this.method && (this.arg = undefined), ContinueSentinel;
}
}, exports;
}
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
try {
var info = gen[key](arg);
var value = info.value;
} catch (error) {
reject(error);
return;
}
if (info.done) {
resolve(value);
} else {
Promise.resolve(value).then(_next, _throw);
}
}
function _asyncToGenerator(fn) {
return function () {
var self = this,
args = arguments;
return new Promise(function (resolve, reject) {
var gen = fn.apply(self, args);
function _next(value) {
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
}
function _throw(err) {
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
}
_next(undefined);
});
};
}
function _defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor) descriptor.writable = true;
Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);
}
}
function _createClass(Constructor, protoProps, staticProps) {
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
if (staticProps) _defineProperties(Constructor, staticProps);
Object.defineProperty(Constructor, "prototype", {
writable: false
});
return Constructor;
}
function _extends() {
_extends = Object.assign ? Object.assign.bind() : function (target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i];
for (var key in source) {
if (Object.prototype.hasOwnProperty.call(source, key)) {
target[key] = source[key];
}
}
}
return target;
};
return _extends.apply(this, arguments);
}
function _inheritsLoose(subClass, superClass) {
subClass.prototype = Object.create(superClass.prototype);
subClass.prototype.constructor = subClass;
_setPrototypeOf(subClass, superClass);
}
function _getPrototypeOf(o) {
_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {
return o.__proto__ || Object.getPrototypeOf(o);
};
return _getPrototypeOf(o);
}
function _setPrototypeOf(o, p) {
_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {
o.__proto__ = p;
return o;
};
return _setPrototypeOf(o, p);
}
function _isNativeReflectConstruct() {
if (typeof Reflect === "undefined" || !Reflect.construct) return false;
if (Reflect.construct.sham) return false;
if (typeof Proxy === "function") return true;
try {
Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
return true;
} catch (e) {
return false;
}
}
function _construct(Parent, args, Class) {
if (_isNativeReflectConstruct()) {
_construct = Reflect.construct.bind();
} else {
_construct = function _construct(Parent, args, Class) {
var a = [null];
a.push.apply(a, args);
var Constructor = Function.bind.apply(Parent, a);
var instance = new Constructor();
if (Class) _setPrototypeOf(instance, Class.prototype);
return instance;
};
}
return _construct.apply(null, arguments);
}
function _isNativeFunction(fn) {
return Function.toString.call(fn).indexOf("[native code]") !== -1;
}
function _wrapNativeSuper(Class) {
var _cache = typeof Map === "function" ? new Map() : undefined;
_wrapNativeSuper = function _wrapNativeSuper(Class) {
if (Class === null || !_isNativeFunction(Class)) return Class;
if (typeof Class !== "function") {
throw new TypeError("Super expression must either be null or a function");
}
if (typeof _cache !== "undefined") {
if (_cache.has(Class)) return _cache.get(Class);
_cache.set(Class, Wrapper);
}
function Wrapper() {
return _construct(Class, arguments, _getPrototypeOf(this).constructor);
}
Wrapper.prototype = Object.create(Class.prototype, {
constructor: {
value: Wrapper,
enumerable: false,
writable: true,
configurable: true
}
});
return _setPrototypeOf(Wrapper, Class);
};
return _wrapNativeSuper(Class);
}
function _assertThisInitialized(self) {
if (self === void 0) {
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
}
return self;
}
function _toPrimitive(input, hint) {
if (typeof input !== "object" || input === null) return input;
var prim = input[Symbol.toPrimitive];
if (prim !== undefined) {
var res = prim.call(input, hint || "default");
if (typeof res !== "object") return res;
throw new TypeError("@@toPrimitive must return a primitive value.");
}
return (hint === "string" ? String : Number)(input);
}
function _toPropertyKey(arg) {
var key = _toPrimitive(arg, "string");
return typeof key === "symbol" ? key : String(key);
}
/**
* A custom error class for handling the library related errors.
* @class BaseError
*/
var BaseError = /*#__PURE__*/function (_Error) {
_inheritsLoose(BaseError, _Error);
/**
* The BaseError Constructor.
* @param {Record<any,any>} options - A configuration object for errors.
* @param {String} options.message - The error message if any.
* @constructor BaseError
*/
function BaseError(options) {
var _this;
if (options === void 0) {
options = {};
}
// const errorMessage = options.message || '' // Default to an empty string if options.message is not provided
// super(errorMessage)
// // Error.captureStackTrace(this, this.constructor)
// this.name = this.constructor.name
// this.message = options.message
// this.stack = new Error().stack
_this = _Error.call(this) || this;
Error.captureStackTrace(_assertThisInitialized(_this), _this.constructor);
_this.name = _this.constructor.name;
_this.message = options.message;
return _this;
}
return BaseError;
}( /*#__PURE__*/_wrapNativeSuper(Error));
var BASE_URL = 'https://api.ng.termii.com/api';
var handleErrors = function handleErrors(error) {
var _error$response;
return error == null || (_error$response = error.response) == null ? void 0 : _error$response.data;
};
/**
* Represents the TermiiCore class, which provides an interface for making HTTP requests using Axios with a specific API key.
*/
var TermiiCore = /*#__PURE__*/function () {
/**
* Constructs a new TermiiCore instance.
* @param {string} apiKey - The API key used for authentication in API requests.
*/
function TermiiCore(apiKey) {
this.apiKey = apiKey;
this.apiKey = apiKey;
// Create an Axios instance with a base URL and common headers.
this.request = axios.create({
baseURL: BASE_URL,
headers: {
Accept: 'application/json',
'Content-Type': 'application/json'
}
});
}
/**
* Makes an HTTP request using Axios based on the provided request structure.
* @param {IAxiosStruct} req - The request structure containing method, URL, and data.
* @returns {Promise} A promise that resolves with the Axios response or rejects with an error.
*/
var _proto = TermiiCore.prototype;
_proto.useRequest =
/*#__PURE__*/
function () {
var _useRequest = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(req) {
var method, url, data, page, params;
return _regeneratorRuntime().wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
_context.prev = 0;
method = req.method, url = req.url, data = req.data, page = req.page;
if (!(method === 'GET' || method === 'DELETE')) {
_context.next = 8;
break;
}
params = {
api_key: this.apiKey
}; // Add 'page' to the params if it's provided in the request
if (method === 'GET' && page !== undefined) {
params.page = page;
}
return _context.abrupt("return", this.request({
method: method,
url: url,
params: params
}));
case 8:
if (!(method === 'POST' || method === 'PATCH')) {
_context.next = 12;
break;
}
return _context.abrupt("return", this.request({
method: method,
url: url,
data: _extends({}, data, {
api_key: this.apiKey
})
}));
case 12:
throw new BaseError({
message: 'Invalid HTTP method'
});
case 13:
_context.next = 18;
break;
case 15:
_context.prev = 15;
_context.t0 = _context["catch"](0);
throw new BaseError({
message: handleErrors(_context.t0)
});
case 18:
case "end":
return _context.stop();
}
}, _callee, this, [[0, 15]]);
}));
function useRequest(_x) {
return _useRequest.apply(this, arguments);
}
return useRequest;
}();
return TermiiCore;
}();
/**
* The Message class extends the TermiiCore class and provides methods for sending messages.
* @class Message
* @extends {TermiiCore}
*/
var Message = /*#__PURE__*/function (_TermiiCore) {
_inheritsLoose(Message, _TermiiCore);
/**
* Constructs a new Message instance with the provided API key.
* @constructor
* @param {string} apiKey - The API key used for authorization.
*/
function Message(apiKey) {
return _TermiiCore.call(this, apiKey) || this;
}
/**
* Sends a single message using the Termii API.
* @param {ISendMessage} data - The message data to be sent.
* @returns {Promise<ISendMessageResponse>} A promise that resolves with the API response for the sent message.
*/
var _proto = Message.prototype;
_proto.sendMessage =
/*#__PURE__*/
function () {
var _sendMessage = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(data) {
var requestObj, response;
return _regeneratorRuntime().wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
_context.prev = 0;
requestObj = {
method: 'POST',
url: "/sms/send",
data: data
};
_context.next = 4;
return this.useRequest(requestObj);
case 4:
response = _context.sent;
return _context.abrupt("return", response == null ? void 0 : response.data);
case 8:
_context.prev = 8;
_context.t0 = _context["catch"](0);
return _context.abrupt("return", handleErrors(_context.t0));
case 11:
case "end":
return _context.stop();
}
}, _callee, this, [[0, 8]]);
}));
function sendMessage(_x) {
return _sendMessage.apply(this, arguments);
}
return sendMessage;
}()
/**
* Sends messages in bulk using the Termii API.
* @param {ISendBulkMessage} data - The bulk message data to be sent.
* @returns {Promise<ISendBulkMessageResponse>} A promise that resolves with the API response for the sent bulk messages.
*/
;
_proto.sendBulkMessage =
/*#__PURE__*/
function () {
var _sendBulkMessage = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(data) {
var requestObj, response;
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
while (1) switch (_context2.prev = _context2.next) {
case 0:
_context2.prev = 0;
requestObj = {
method: 'POST',
url: "/sms/send/bulk",
data: data
};
_context2.next = 4;
return this.useRequest(requestObj);
case 4:
response = _context2.sent;
return _context2.abrupt("return", response == null ? void 0 : response.data);
case 8:
_context2.prev = 8;
_context2.t0 = _context2["catch"](0);
return _context2.abrupt("return", handleErrors(_context2.t0));
case 11:
case "end":
return _context2.stop();
}
}, _callee2, this, [[0, 8]]);
}));
function sendBulkMessage(_x2) {
return _sendBulkMessage.apply(this, arguments);
}
return sendBulkMessage;
}();
return Message;
}(TermiiCore);
/**
* A class handling Sender ID functionalities, extends TermiiCore.
*/
var SenderId = /*#__PURE__*/function (_TermiiCore) {
_inheritsLoose(SenderId, _TermiiCore);
function SenderId(apiKey) {
return _TermiiCore.call(this, apiKey) || this;
}
/**
* Fetches sender IDs.
* @param {number} [page] - Optional page number for pagination.
* @returns {Promise<ISenderIDResponse>} - A promise containing the response with sender IDs.
*/
var _proto = SenderId.prototype;
_proto.fetchSenderIDs =
/*#__PURE__*/
function () {
var _fetchSenderIDs = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(page) {
var requestObj, response;
return _regeneratorRuntime().wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
_context.prev = 0;
requestObj = {
method: 'GET',
url: "/sender-id",
page: page
};
_context.next = 4;
return this.useRequest(requestObj);
case 4:
response = _context.sent;
return _context.abrupt("return", response == null ? void 0 : response.data);
case 8:
_context.prev = 8;
_context.t0 = _context["catch"](0);
return _context.abrupt("return", handleErrors(_context.t0));
case 11:
case "end":
return _context.stop();
}
}, _callee, this, [[0, 8]]);
}));
function fetchSenderIDs(_x) {
return _fetchSenderIDs.apply(this, arguments);
}
return fetchSenderIDs;
}()
/**
* Requests a new Sender ID.
* @param {IRequestSenderID} data - Data for requesting a new Sender ID.
* @returns {Promise<IRequestSenderIDResponse>} - A promise containing the response to the Sender ID request.
*/
;
_proto.requestSenderID =
/*#__PURE__*/
function () {
var _requestSenderID = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(data) {
var requestObj, response;
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
while (1) switch (_context2.prev = _context2.next) {
case 0:
_context2.prev = 0;
requestObj = {
method: 'POST',
url: "/sender-id/request",
data: data
};
_context2.next = 4;
return this.useRequest(requestObj);
case 4:
response = _context2.sent;
return _context2.abrupt("return", response == null ? void 0 : response.data);
case 8:
_context2.prev = 8;
_context2.t0 = _context2["catch"](0);
return _context2.abrupt("return", handleErrors(_context2.t0));
case 11:
case "end":
return _context2.stop();
}
}, _callee2, this, [[0, 8]]);
}));
function requestSenderID(_x2) {
return _requestSenderID.apply(this, arguments);
}
return requestSenderID;
}();
return SenderId;
}(TermiiCore);
var Number$1 = /*#__PURE__*/function (_TermiiCore) {
_inheritsLoose(Number, _TermiiCore);
function Number(apiKey) {
return _TermiiCore.call(this, apiKey) || this;
}
var _proto = Number.prototype;
_proto.sendMessageWithNumber = /*#__PURE__*/function () {
var _sendMessageWithNumber = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(data) {
var requestObj, response;
return _regeneratorRuntime().wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
_context.prev = 0;
requestObj = {
method: 'POST',
url: "/sms/number/send",
data: data
};
_context.next = 4;
return this.useRequest(requestObj);
case 4:
response = _context.sent;
return _context.abrupt("return", response == null ? void 0 : response.data);
case 8:
_context.prev = 8;
_context.t0 = _context["catch"](0);
return _context.abrupt("return", handleErrors(_context.t0));
case 11:
case "end":
return _context.stop();
}
}, _callee, this, [[0, 8]]);
}));
function sendMessageWithNumber(_x) {
return _sendMessageWithNumber.apply(this, arguments);
}
return sendMessageWithNumber;
}();
return Number;
}(TermiiCore);
var Template = /*#__PURE__*/function (_TermiiCore) {
_inheritsLoose(Template, _TermiiCore);
function Template(apiKey) {
return _TermiiCore.call(this, apiKey) || this;
}
var _proto = Template.prototype;
_proto.sendMessageWithTemplate = /*#__PURE__*/function () {
var _sendMessageWithTemplate = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(data) {
var requestObj, response;
return _regeneratorRuntime().wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
_context.prev = 0;
requestObj = {
method: 'POST',
url: "/send/template",
data: data
};
_context.next = 4;
return this.useRequest(requestObj);
case 4:
response = _context.sent;
return _context.abrupt("return", response == null ? void 0 : response.data);
case 8:
_context.prev = 8;
_context.t0 = _context["catch"](0);
return _context.abrupt("return", handleErrors(_context.t0));
case 11:
case "end":
return _context.stop();
}
}, _callee, this, [[0, 8]]);
}));
function sendMessageWithTemplate(_x) {
return _sendMessageWithTemplate.apply(this, arguments);
}
return sendMessageWithTemplate;
}();
return Template;
}(TermiiCore);
var Phonebook = /*#__PURE__*/function (_TermiiCore) {
_inheritsLoose(Phonebook, _TermiiCore);
function Phonebook(apiKey) {
return _TermiiCore.call(this, apiKey) || this;
}
var _proto = Phonebook.prototype;
_proto.fetchPhonebooks = /*#__PURE__*/function () {
var _fetchPhonebooks = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(page) {
var requestObj, response;
return _regeneratorRuntime().wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
_context.prev = 0;
requestObj = {
method: 'GET',
url: "/phonebooks",
page: page
};
_context.next = 4;
return this.useRequest(requestObj);
case 4:
response = _context.sent;
return _context.abrupt("return", response == null ? void 0 : response.data);
case 8:
_context.prev = 8;
_context.t0 = _context["catch"](0);
return _context.abrupt("return", handleErrors(_context.t0));
case 11:
case "end":
return _context.stop();
}
}, _callee, this, [[0, 8]]);
}));
function fetchPhonebooks(_x) {
return _fetchPhonebooks.apply(this, arguments);
}
return fetchPhonebooks;
}();
_proto.createPhonebook = /*#__PURE__*/function () {
var _createPhonebook = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(data) {
var requestObj, response;
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
while (1) switch (_context2.prev = _context2.next) {
case 0:
_context2.prev = 0;
requestObj = {
method: 'POST',
url: "/phonebooks",
data: data
};
_context2.next = 4;
return this.useRequest(requestObj);
case 4:
response = _context2.sent;
return _context2.abrupt("return", response == null ? void 0 : response.data);
case 8:
_context2.prev = 8;
_context2.t0 = _context2["catch"](0);
return _context2.abrupt("return", handleErrors(_context2.t0));
case 11:
case "end":
return _context2.stop();
}
}, _callee2, this, [[0, 8]]);
}));
function createPhonebook(_x2) {
return _createPhonebook.apply(this, arguments);
}
return createPhonebook;
}();
_proto.updatePhonebook = /*#__PURE__*/function () {
var _updatePhonebook = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(phonebook_id, data) {
var requestObj, response;
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
while (1) switch (_context3.prev = _context3.next) {
case 0:
_context3.prev = 0;
requestObj = {
method: 'PATCH',
url: "/phonebooks/" + phonebook_id,
data: data
};
_context3.next = 4;
return this.useRequest(requestObj);
case 4:
response = _context3.sent;
return _context3.abrupt("return", response == null ? void 0 : response.data);
case 8:
_context3.prev = 8;
_context3.t0 = _context3["catch"](0);
return _context3.abrupt("return", handleErrors(_context3.t0));
case 11:
case "end":
return _context3.stop();
}
}, _callee3, this, [[0, 8]]);
}));
function updatePhonebook(_x3, _x4) {
return _updatePhonebook.apply(this, arguments);
}
return updatePhonebook;
}();
_proto.deletePhonebook = /*#__PURE__*/function () {
var _deletePhonebook = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(phonebook_id) {
var requestObj, response;
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
while (1) switch (_context4.prev = _context4.next) {
case 0:
_context4.prev = 0;
requestObj = {
method: 'DELETE',
url: "/phonebooks/" + phonebook_id
};
_context4.next = 4;
return this.useRequest(requestObj);
case 4:
response = _context4.sent;
return _context4.abrupt("return", response == null ? void 0 : response.data);
case 8:
_context4.prev = 8;
_context4.t0 = _context4["catch"](0);
return _context4.abrupt("return", handleErrors(_context4.t0));
case 11:
case "end":
return _context4.stop();
}
}, _callee4, this, [[0, 8]]);
}));
function deletePhonebook(_x5) {
return _deletePhonebook.apply(this, arguments);
}
return deletePhonebook;
}();
return Phonebook;
}(TermiiCore);
var Contact = /*#__PURE__*/function (_TermiiCore) {
_inheritsLoose(Contact, _TermiiCore);
function Contact(apiKey) {
return _TermiiCore.call(this, apiKey) || this;
}
var _proto = Contact.prototype;
_proto.fetchContacts = /*#__PURE__*/function () {
var _fetchContacts = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(phonebook_id, page) {
var requestObj, response;
return _regeneratorRuntime().wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
_context.prev = 0;
requestObj = {
method: 'GET',
url: "/phonebooks/" + phonebook_id + "/contacts",
page: page
};
_context.next = 4;
return this.useRequest(requestObj);
case 4:
response = _context.sent;
return _context.abrupt("return", response == null ? void 0 : response.data);
case 8:
_context.prev = 8;
_context.t0 = _context["catch"](0);
return _context.abrupt("return", handleErrors(_context.t0));
case 11:
case "end":
return _context.stop();
}
}, _callee, this, [[0, 8]]);
}));
function fetchContacts(_x, _x2) {
return _fetchContacts.apply(this, arguments);
}
return fetchContacts;
}();
_proto.createContact = /*#__PURE__*/function () {
var _createContact = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(phonebook_id, data) {
var requestObj, response;
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
while (1) switch (_context2.prev = _context2.next) {
case 0:
_context2.prev = 0;
requestObj = {
method: 'POST',
url: "/phonebooks/" + phonebook_id + "/contacts",
data: data
};
_context2.next = 4;
return this.useRequest(requestObj);
case 4:
response = _context2.sent;
return _context2.abrupt("return", response == null ? void 0 : response.data);
case 8:
_context2.prev = 8;
_context2.t0 = _context2["catch"](0);
return _context2.abrupt("return", handleErrors(_context2.t0));
case 11:
case "end":
return _context2.stop();
}
}, _callee2, this, [[0, 8]]);
}));
function createContact(_x3, _x4) {
return _createContact.apply(this, arguments);
}
return createContact;
}();
_proto.deleteContact = /*#__PURE__*/function () {
var _deleteContact = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(contact_id) {
var requestObj, response;
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
while (1) switch (_context3.prev = _context3.next) {
case 0:
_context3.prev = 0;
requestObj = {
method: 'DELETE',
url: "/phonebook/contact/" + contact_id
};
_context3.next = 4;
return this.useRequest(requestObj);
case 4:
response = _context3.sent;
return _context3.abrupt("return", response == null ? void 0 : response.data);
case 8:
_context3.prev = 8;
_context3.t0 = _context3["catch"](0);
return _context3.abrupt("return", handleErrors(_context3.t0));
case 11:
case "end":
return _context3.stop();
}
}, _callee3, this, [[0, 8]]);
}));
function deleteContact(_x5) {
return _deleteContact.apply(this, arguments);
}
return deleteContact;
}();
return Contact;
}(TermiiCore);
var Campaign = /*#__PURE__*/function (_TermiiCore) {
_inheritsLoose(Campaign, _TermiiCore);
function Campaign(apiKey) {
return _TermiiCore.call(this, apiKey) || this;
}
var _proto = Campaign.prototype;
_proto.fetchCampaigns = /*#__PURE__*/function () {
var _fetchCampaigns = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(page) {
var requestObj, response;
return _regeneratorRuntime().wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
_context.prev = 0;
requestObj = {
method: 'GET',
url: "sms/campaigns",
page: page
};
_context.next = 4;
return this.useRequest(requestObj);
case 4:
response = _context.sent;
return _context.abrupt("return", response == null ? void 0 : response.data);
case 8:
_context.prev = 8;
_context.t0 = _context["catch"](0);
return _context.abrupt("return", handleErrors(_context.t0));
case 11:
case "end":
return _context.stop();
}
}, _callee, this, [[0, 8]]);
}));
function fetchCampaigns(_x) {
return _fetchCampaigns.apply(this, arguments);
}
return fetchCampaigns;
}();
_proto.fetchCampaignHistory = /*#__PURE__*/function () {
var _fetchCampaignHistory = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(campaign_id, page) {
var requestObj, response;
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
while (1) switch (_context2.prev = _context2.next) {
case 0:
_context2.prev = 0;
requestObj = {
method: 'GET',
url: "sms/campaigns/" + campaign_id,
page: page
};
_context2.next = 4;
return this.useRequest(requestObj);
case 4:
response = _context2.sent;
return _context2.abrupt("return", response == null ? void 0 : response.data);
case 8:
_context2.prev = 8;
_context2.t0 = _context2["catch"](0);
console.error(_context2.t0);
return _context2.abrupt("return", handleErrors(_context2.t0));
case 12:
case "end":
return _context2.stop();
}
}, _callee2, this, [[0, 8]]);
}));
function fetchCampaignHistory(_x2, _x3) {
return _fetchCampaignHistory.apply(this, arguments);
}
return fetchCampaignHistory;
}();
_proto.sendCampaign = /*#__PURE__*/function () {
var _sendCampaign = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(data) {
var requestObj, response;
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
while (1) switch (_context3.prev = _context3.next) {
case 0:
_context3.prev = 0;
requestObj = {
method: 'POST',
url: "/sms/campaigns/send",
data: data
};
_context3.next = 4;
return this.useRequest(requestObj);
case 4:
response = _context3.sent;
return _context3.abrupt("return", response == null ? void 0 : response.data);
case 8:
_context3.prev = 8;
_context3.t0 = _context3["catch"](0);
return _context3.abrupt("return", handleErrors(_context3.t0));
case 11:
case "end":
return _context3.stop();
}
}, _callee3, this, [[0, 8]]);
}));
function sendCampaign(_x4) {
return _sendCampaign.apply(this, arguments);
}
return sendCampaign;
}();
return Campaign;
}(TermiiCore);
/**
* The MessageHandler class handles message-related functionalities by providing access to message and sender ID instances.
*/
var MessageHandler = /*#__PURE__*/function () {
/**
* Constructs a MessageHandler instance.
* @constructor
* @param {string} apiKey - The API key used for authorization.
*/
function MessageHandler(apiKey) {
// Initialize the message and sender ID instances with the provided API key.
this.messageInstance = new Message(apiKey);
this.senderIdInstance = new SenderId(apiKey);
this.numberInstance = new Number$1(apiKey);
this.templateInstance = new Template(apiKey);
this.phonebookInstance = new Phonebook(apiKey);
this.contactInstance = new Contact(apiKey);
this.campaignInstance = new Campaign(apiKey);
}
/**
* Provides access to message-related methods.
* @type {Object}
* @property {Function} sendMessage - Sends a single message.
* @property {Function} sendBulkMessage - Sends messages in bulk.
* @property {Function} fetchSenderIDs - Retrieves sender IDs.
* @property {Function} requestSenderID - Requests a sender ID.
* @property {Function} sendMessageWithNumber - Sends a message with autogenerated number ID.
* @property {Function} sendMessageWithTemplate - Sends a message with template.
* @returns {Object} - Object containing methods related to messages and sender IDs.
*/
_createClass(MessageHandler, [{
key: "message",
get: function get() {
return {
// Method to send a single message
sendMessage: this.messageInstance.sendMessage.bind(this.messageInstance),
// Method to send messages in bulk
sendBulkMessage: this.messageInstance.sendBulkMessage.bind(this.messageInstance),
// Method to fetch sender IDs
fetchSenderIDs: this.senderIdInstance.fetchSenderIDs.bind(this.senderIdInstance),
// Method to request a sender ID
requestSenderID: this.senderIdInstance.requestSenderID.bind(this.senderIdInstance),
// Method to send a message with autogenerated number
sendMessageWithNumber: this.numberInstance.sendMessageWithNumber.bind(this.numberInstance),
// Method to send a message with template
sendMessageWithTemplate: this.templateInstance.sendMessageWithTemplate.bind(this.templateInstance),
// Method to fetch phonebooks
fetchPhonebooks: this.phonebookInstance.fetchPhonebooks.bind(this.phonebookInstance),
// Method to create phonebook
createPhonebook: this.phonebookInstance.createPhonebook.bind(this.phonebookInstance),
// Method to update phonebook
updatePhonebook: this.phonebookInstance.updatePhonebook.bind(this.phonebookInstance),
// Method to delete phonebook
deletePhonebook: this.phonebookInstance.deletePhonebook.bind(this.phonebookInstance),
// Method to fetch contacts
fetchContacts: this.contactInstance.fetchContacts.bind(this.contactInstance),
// Method to create contact
createContact: this.contactInstance.createContact.bind(this.contactInstance),
// Method to delete a contact
deleteContact: this.contactInstance.deleteContact.bind(this.contactInstance),
// Method to fetch campaigns
fetchCampaigns: this.campaignInstance.fetchCampaigns.bind(this.campaignInstance),
// Method to fetch campaign history
fetchCampaignHistory: this.campaignInstance.fetchCampaignHistory.bind(this.campaignInstance),
// Method to send campaign
sendCampaign: this.campaignInstance.sendCampaign.bind(this.campaignInstance)
};
}
}]);
return MessageHandler;
}();
/**
* The Termii class is the main class used to access the other classes in the Termii library.
* @class Termii
* @param {string} apiKey - The API key used for authorization.
* @returns An instance of the Termii class.
* @example
* const termii = new Termii('pk_NjI3ZmVmYmU1YTY1ZWM5OWJhOWFmMGJlOjoxMjE2NzA);
**/
var Termii = /*#__PURE__*/function () {
/**
* Creates an instance of Termii.
* @constructor
* @param {string} apiKey - The API key used for authorization.
*/
function Termii(apiKey) {
this.apiKey = apiKey;
// Initialize the MessageHandler instance with the API key.
this.messageInstance = new MessageHandler(apiKey);
}
/**
* Provides access to the MessageHandler instance for sending messages.
* @type {MessageHandler}
* @example
* const termii = new Termii('pk_NjI3ZmVmYmU1YTY1ZWM5OWJhOWFmMGJlOjoxMjE2NzA');
* termii.switch.sendMessage(<!-- message data --