UNPKG

@davidbolaji/termii-node

Version:

Node.js SDK for Termii API – send SMS, voice, OTP, and manage messaging with ease.

148 lines (147 loc) 5.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Termii = void 0; const endpoints_1 = require("./endpoints"); const HttpClient_1 = require("./http/HttpClient"); const InsightService_1 = require("./services/insights/InsightService"); const CampaignService_1 = require("./services/messaging/campaign/CampaignService"); const MessageService_1 = require("./services/messaging/MessageService"); const SenderIdService_1 = require("./services/messaging/SenderIdService"); const TemplateService_1 = require("./services/messaging/TemplateService"); const SotelService_1 = require("./services/sotel/SotelService"); class Termii { constructor(apiKey, baseUrl) { this.http = new HttpClient_1.HttpClient({ apiKey, baseURL: baseUrl }); this.message = new MessageService_1.MessageService(this.http); this.sender = new SenderIdService_1.SenderIdService(this.http); this.template = new TemplateService_1.TemplatesService(this.http); this.campaign = new CampaignService_1.CampaignService(this.http); this.insight = new InsightService_1.InsightService(this.http); this.sotel = new SotelService_1.SotelService(this.http); this.token = new endpoints_1.TokenService(this.http); return new Proxy(this, { get(target, prop, receiver) { if (prop in target) { return Reflect.get(target, prop, receiver); } const services = [ target.message, target.sender, target.template, target.campaign, target.insight, target.sotel, target.token, ]; for (const service of services) { if (service && prop in service) { const value = service[prop]; return typeof value === 'function' ? value.bind(service) : value; } } return undefined; }, }); } // ---------- Explicit Method Forwarding ---------- // Messaging sendMessage(payload) { return this.message.sendMessage(payload); } sendBulkMessage(payload) { return this.message.sendBulkMessage(payload); } // Templates sendTemplate(payload) { return this.template.sendTemplate(payload); } // Campaigns sendCampaign(payload) { return this.campaign.campaign.sendCampaign(payload); } fetchCampaigns() { return this.campaign.campaign.fetchCampaigns(); } fetchCampaignHistory(campaignId) { return this.campaign.campaign.fetchCampaignHistory(campaignId); } retryCampaign(campaignId) { return this.campaign.campaign.retryCampaign(campaignId); } // Contacts fetchContacts(phonebookId) { return this.campaign.contact.fetchContacts(phonebookId); } addContact(phonebookId, contact) { return this.campaign.contact.addContact(phonebookId, contact); } uploadContacts(request) { return this.campaign.contact.uploadContacts(request); } deleteContact(contactId) { return this.campaign.contact.deleteContact(contactId); } // Phonebooks fetchPhonebooks() { return this.campaign.phonebook.fetchPhonebooks(); } createPhonebook(payload) { return this.campaign.phonebook.createPhonebook(payload); } updatePhonebook(phonebookId, payload) { return this.campaign.phonebook.updatePhonebook(phonebookId, payload); } deletePhonebook(phonebookId) { return this.campaign.phonebook.deletePhonebook(phonebookId); } // Sender IDs fetchSenderIds(page) { return this.sender.fetchSenderIds(page); } requestSenderId(payload) { return this.sender.requestSenderId(payload); } // Token sendToken(payload) { return this.token.sendToken(payload); } sendVoiceToken(payload) { return this.token.sendVoiceToken(payload); } sendVoiceCall(payload) { return this.token.sendVoiceCall(payload); } sendEmailToken(payload) { return this.token.email.sendEmailToken(payload); } generateToken(payload) { return this.token.inApp.generate(payload); } verifyToken(payload) { return this.token.verify.verifyToken(payload); } // Insights getBalance() { return this.insight.balance.getBalance(); } // Sotel / eSIM authenticateEsim(payload) { return this.sotel.esim.authenticate(payload); } fetchEsimPlans(payload) { return this.sotel.esim.fetchPlans(payload); } createEsim(payload) { return this.sotel.esim.createEsim(payload); } getEsimQrCode(iccid) { return this.sotel.esim.getQrCode(iccid); } getEsimUsage(iccid) { return this.sotel.esim.getUsage(iccid); } fetchEsims(page, size) { return this.sotel.esim.fetchEsims(page, size); } } exports.Termii = Termii;