termii-api-client
Version:
A TypeScript client for interacting with the Termii API.
1 lines • 24.1 kB
Source Map (JSON)
{"version":3,"sources":["../src/lib/constants.ts","../src/campaign/index.ts","../src/messaging/index.ts","../src/phonebooks/index.ts","../src/senderID/index.ts","../src/token/index.ts","../src/client.ts","../src/index.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["import axios from \"axios\";\n\nexport enum ENDPOINTS {\n // Messaging\n sendMessage = \"/api/sms/send\",\n sendBulkMessage = \"/api/sms/send/bulk\",\n\n // Insights\n getBalance = \"/api/get-balance?\",\n checkNumberStatus = \"/api/insight/number/query?\",\n searchNumber = \"/api/check/dnd?\",\n getMessageReports = \"/api/sms/inbox?\",\n\n // Sende ID\n fetchSenderIDs = \"/api/sender-id?\",\n requestSenderID = \"/api/sender-id/request\",\n\n // Campaign\n fetchPhoneBooks = \"/api/phonebooks?\",\n phoneBooksBase = \"/api/phonebooks\",\n fetchCampaigns = \"/api/sms/campaigns?\",\n\n // Token\n sendToken = \"/api/sms/otp/send\",\n voiceToken = \"/api/sms/otp/send/voice\",\n voiceCall = \"/api/sms/otp/call\",\n emailToken = \"/api/email/otp/send\",\n verifyToken = \"/api/sms/otp/verify\",\n inAppToken = \"/api/sms/otp/generate\",\n}\n\nexport const axiosInstance = axios.create({\n validateStatus: () => true,\n});\n","import { axiosInstance, ENDPOINTS } from \"../lib/constants\";\nimport { Config } from \"../types\";\n\nexport class Campaign {\n constructor(private readonly config: Config) {}\n\n /**\n * Returns available campaigns on the integration.\n * @returns\n */\n async fetch() {\n const data = (\n await axiosInstance.get(\n this.config.baseUrl +\n ENDPOINTS.fetchCampaigns +\n new URLSearchParams({\n api_key: this.config.apiKey!,\n }),\n )\n ).data;\n return data;\n }\n}\n","import { axiosInstance, ENDPOINTS } from \"../lib/constants\";\nimport { BulkMessage, Config, Message } from \"../types\";\n\n/**\n * This API allows businesses send text messages to their customers across different messaging channels.\n */\nexport class Messaging {\n constructor(private readonly config: Config) {}\n\n /**\n * Send a custom message. {@link https://developer.termii.com/messaging-api Read Documentation.}\n *\n * @example\n * await client.Messaging.send({\n * \tto: \"2347880234567\",\n * \tfrom: \"talert\",\n * \tsms: \"Hi there, testing Termii\",\n * \ttype: \"plain\",\n * \tchannel: \"generic\",\n * });\n */\n async send(payload: Message) {\n const data = (\n await axiosInstance.post(this.config.baseUrl + ENDPOINTS.sendMessage, {\n api_key: this.config.apiKey,\n ...payload,\n })\n ).data;\n return data;\n }\n\n /**\n * Send a custom bulk messages. {@link https://developer.termii.com/messaging-api Read Documentation.}\n *\n * @example\n * await client.Messaging.sendBulk({\n * \tto: [\"23490555546\", \"23423490126999\",\"23490555546\"],\n * \tfrom: \"talert\",\n * \tsms: \"Hi there, testing Termii\",\n * \ttype: \"plain\",\n * \tchannel: \"generic\",\n * });\n */\n async sendBulk(payload: BulkMessage) {\n const data = (\n await axiosInstance.post(\n this.config.baseUrl + ENDPOINTS.sendBulkMessage,\n {\n api_key: this.config.apiKey,\n ...payload,\n },\n )\n ).data;\n return data;\n }\n}\n","import { axiosInstance, ENDPOINTS } from \"../lib/constants\";\nimport { Config, ContactCreateInput, PhoneBookCreateInput } from \"../types\";\n\nexport class PhoneBooks {\n constructor(private readonly config: Config) {}\n\n /**\n * Fetches the phonebooks available on the integration. {@link https://developer.termii.com/phonebook#fetch-phonebooks Read Documentation.}\n *\n * @example\n * await client.PhoneBooks.fetch();\n */\n async fetch() {\n const data = (\n await axiosInstance.get(\n this.config.baseUrl +\n ENDPOINTS.fetchPhoneBooks +\n new URLSearchParams({\n api_key: this.config.apiKey!,\n }),\n )\n ).data;\n return data;\n }\n\n /**\n * Creates a phonebook. {@link https://developer.termii.com/phonebook#create--a-phonebook Read Documentation.}\n * @example\n * await client.PhoneBooks.create({\n * \tphonebook_name:\"Phone test\",\n * \tdescription:\"Phonebook for test\"\n * });\n */\n async create(payload: PhoneBookCreateInput) {\n const data = (\n await axiosInstance.post(this.config.baseUrl + ENDPOINTS.phoneBooksBase, {\n api_key: this.config.apiKey,\n ...payload,\n })\n ).data;\n return data;\n }\n\n /**\n * Fetches contacts in a phonebook. {@link https://developer.termii.com/contacts#fetch-contacts-by-phonebook-id Read Documentation.}\n * @param {string} phoneBookID - The ID of the phonebook.\n *\n * @example\n * await client.PhoneBooks.contacts(\"04c3ebcc-3a7e-485a-88c1-68e731386f77\");\n */\n async contacts(phoneBookID: string) {\n const data = (\n await axiosInstance.get(\n this.config.baseUrl +\n ENDPOINTS.phoneBooksBase +\n `/${phoneBookID}/contacts?` +\n new URLSearchParams({\n api_key: this.config.apiKey!,\n }),\n )\n ).data;\n return data;\n }\n\n /**\n *\n * @param {string} phoneBookID - The ID of the phonebook.\n * @param {ContactCreateInput} payload - data of the contact to be added.\n * @returns\n */\n async addContact(phoneBookID: string, payload: ContactCreateInput) {\n const data = (\n await axiosInstance.post(\n this.config.baseUrl +\n ENDPOINTS.phoneBooksBase +\n `/${phoneBookID}/contacts?`,\n {\n api_key: this.config.apiKey,\n ...payload,\n },\n )\n ).data;\n return data;\n }\n}\n","import { axiosInstance, ENDPOINTS } from \"../lib/constants\";\nimport { Config, SenderIDRequest } from \"../types\";\n\nexport class SenderID {\n constructor(private readonly config: Config) {}\n\n /**\n * Fetches the sender IDs available on an integration. {@link https://developer.termii.com/sender-id#fetch-sender-id Read Documentation.}\n *\n * @example\n * await client.SenderID.fetch();\n *\n */\n async fetch() {\n const data = (\n await axiosInstance.get(\n this.config.baseUrl +\n ENDPOINTS.fetchSenderIDs +\n new URLSearchParams({\n api_key: this.config.apiKey!,\n }),\n )\n ).data;\n return data;\n }\n\n /**\n * Request for a sender ID. {@link https://developer.termii.com/sender-id#request-sender-id Read Documentation.}\n *\n * @example\n * await client.SenderID.request({\n * \tsender_id: \"Acme\",\n * \tusecase: \"Your OTP code is zxsds\",\n * \tcompany: \"Acme Corp\"\n * });\n *\n */\n async request(payload: SenderIDRequest) {\n const data = (\n await axiosInstance.post(\n this.config.baseUrl + ENDPOINTS.requestSenderID,\n {\n api_key: this.config.apiKey,\n ...payload,\n },\n )\n ).data;\n return data;\n }\n}\n","import { axiosInstance, ENDPOINTS } from \"../lib/constants\";\nimport {\n Config,\n EmailTokenInput,\n InAppTokenInput,\n SendTokenInput,\n VoiceCallInput,\n VoiceTokenInput,\n} from \"../types\";\n\n/**\n * Contains various methods for managing tokens.\n */\nexport class Token {\n constructor(private readonly config: Config) {}\n\n /**\n * The send token API allows businesses trigger one-time-passwords (OTP) across any available messaging channel on Termii. One-time-passwords created are generated randomly and there's an option to set an expiry time. {@link https://developer.termii.com/send-token Read Documentation.}\n * @example\n * await client.Token.send({\n * \tmessage_type : \"NUMERIC\",\n * \tto : \"eg. 2348109077743\",\n * \tfrom : \"Approved Sender ID or Configuration ID\",\n * \tchannel : \"dnd\",\n * \tpin_attempts : 10,\n * \tpin_time_to_live : 5,\n * \tpin_length : 6,\n * \tpin_placeholder : \"< 1234 >\",\n * \tmessage_text : \"Your pin is < 1234 >\",\n * \tpin_type : \"NUMERIC\"\n * });\n */\n async send(payload: SendTokenInput) {\n const data = (\n await axiosInstance.post(this.config.baseUrl + ENDPOINTS.sendToken, {\n api_key: this.config.apiKey,\n ...payload,\n })\n ).data;\n return data;\n }\n\n /**\n * The voice token API enables you to generate and trigger one-time passwords (OTP) through the voice channel to a phone number. OTPs are generated and sent to the phone number and can only be verified using our Verify Token API. {@link https://developer.termii.com/voice-token Read Documentation.}\n *\n * @example\n * await client.Token.voice({\n * \tphone_number : \"23409800000000\",\n * \tpin_attempts : 10,\n * \tpin_time_to_live : 5,\n * \tpin_length : 6\n * });\n */\n async voice(payload: VoiceTokenInput) {\n const data = (\n await axiosInstance.post(this.config.baseUrl + ENDPOINTS.voiceToken, {\n api_key: this.config.apiKey,\n ...payload,\n })\n ).data;\n return data;\n }\n\n /**\n * The voice call API enables you to send messages from your application through our voice channel to a phone number. Only one-time-passwords (OTP) are allowed for now and these OTPs can not be verified using our Verify Token API. {@link https://developer.termii.com/voice-call Read Documentation.}\n *\n * @example\n * await client.Token.voiceCall({\n * \tphone_number : \"2349800000000\",\n * \tcode : 55675,\n * });\n *\n */\n async voiceCall(payload: VoiceCallInput) {\n const data = (\n await axiosInstance.post(this.config.baseUrl + ENDPOINTS.voiceCall, {\n api_key: this.config.apiKey,\n ...payload,\n })\n ).data;\n return data;\n }\n\n /**\n * The email token API enables you to send one-time-passwords from your application through our email channel to an email address. Only one-time-passwords (OTP) are allowed for now and these OTPs can not be verified using our Verify Token API. {@link https://developer.termii.com/email-token Read Documentation.}\n *\n * @example\n * await client.Token.email({\n * \temail_address: \"shola.olu@term.ii\",\n * \tcode: \"092471\",\n * \temail_configuration_id: \"0a53c416-uocj-95af-ab3c306aellc\"\n * });\n *\n */\n async email(payload: EmailTokenInput) {\n const data = (\n await axiosInstance.post(this.config.baseUrl + ENDPOINTS.emailToken, {\n api_key: this.config.apiKey,\n ...payload,\n })\n ).data;\n return data;\n }\n\n /**\n *\n * This API returns OTP codes in JSON format which can be used within any web or mobile app. Tokens are numeric or alpha-numeric codes generated to authenticate login requests and verify customer transactions. {@link https://developer.termii.com/in-app-token Read Documentation.}\n *\n * @example\n * await client.Token.inApp({\n * \tpin_type: \"NUMERIC\",\n * \tphone_number: \"2348109477743\",\n * \tpin_attempts: 3,\n * \tpin_time_to_live: 0,\n * \tpin_length: 4\n * });\n */\n async inApp(payload: InAppTokenInput) {\n const data = (\n await axiosInstance.post(this.config.baseUrl + ENDPOINTS.inAppToken, {\n api_key: this.config.apiKey,\n ...payload,\n })\n ).data;\n return data;\n }\n\n /**\n * Verify token API, checks tokens sent to customers and returns a response confirming the status of the token. A token can either be confirmed as verified or expired based on the timer set for the token. {@link https://developer.termii.com/verify-token Read Documentation.}\n *\n * @param {string} pin_id ID of the PIN sent\n * @param {string} pin The PIN code\n *\n * @example\n * await client.Token.verify(\"c8dcd048-5e7f-4347-8c89-4470c3af0b\", \"195558\");\n */\n async verify(pin_id: string, pin: string) {\n const data = (\n await axiosInstance.post(this.config.baseUrl + ENDPOINTS.verifyToken, {\n api_key: this.config.apiKey,\n pin_id,\n pin,\n })\n ).data;\n return data;\n }\n}\n","import { Campaign } from \"./campaign\";\nimport { axiosInstance, ENDPOINTS } from \"./lib/constants\";\nimport { Messaging } from \"./messaging\";\nimport { PhoneBooks } from \"./phonebooks\";\nimport { SenderID } from \"./senderID\";\nimport { Token } from \"./token\";\nimport { Config } from \"./types\";\n\nexport class TermiiClient {\n readonly Messaging: Messaging;\n readonly SenderID: SenderID;\n readonly PhoneBooks: PhoneBooks;\n readonly Token: Token;\n readonly Campaign: Campaign;\n\n constructor(private readonly config: Config) {\n this.Messaging = new Messaging(config);\n this.SenderID = new SenderID(config);\n this.PhoneBooks = new PhoneBooks(config);\n this.Token = new Token(config);\n this.Campaign = new Campaign(config);\n }\n\n /**\n * The Balance API returns your total balance and balance information from your wallet, such as currency. {@link https://developer.termii.com/balance Read Documentation.}\n *\n * @example\n * await client.getBalance();\n */\n async getBalance() {\n const data = (\n await axiosInstance.get(\n this.config.baseUrl +\n ENDPOINTS.getBalance +\n new URLSearchParams({\n api_key: this.config.apiKey!,\n }),\n )\n ).data;\n return data;\n }\n\n /**\n * The status API allows businesses to detect if a number is fake or has ported to a new network. {@link https://developer.termii.com/status Read Documentation.}\n * @param {string} phoneNumber - Represents the phone number to be verified. Phone number must be in the international format\n * @param {string} countryCode - Represents short alphabetic codes developed to represent countries.\n *\n * @example\n * await client.checkNumberStatus(\"2348753243651\", \"NG\");\n */\n async checkNumberStatus(phoneNumber: string, countryCode: string) {\n const data = (\n await axiosInstance.get(\n this.config.baseUrl +\n ENDPOINTS.checkNumberStatus +\n new URLSearchParams({\n api_key: this.config.apiKey!,\n phone_number: phoneNumber,\n country_code: countryCode,\n }),\n )\n ).data;\n return data;\n }\n\n /**\n * The search API allows businesses verify phone numbers and automatically detect their status as well as current network. It also tells if the number has activated the do-not-disturb settings.\n * @param {string} phoneNumber - Represents the phone number to be verified. Phone number must be in the international format. {@link https://developer.termii.com/search Read Documentation.}\n *\n * @example\n * await client.searchNumber(\"2348753243651\");\n */\n async searchNumber(phoneNumber: string) {\n const data = (\n await axiosInstance.get(\n this.config.baseUrl +\n ENDPOINTS.searchNumber +\n new URLSearchParams({\n api_key: this.config.apiKey!,\n phone_number: phoneNumber,\n }),\n )\n ).data;\n return data;\n }\n\n /**\n * This Inbox API returns reports for messages sent across the sms, voice & whatsapp channels. Reports can either display all messages on termii or a single message. Optionally accepts a `message_id` to query the report of a single message. {@link https://developer.termii.com/history Read Documentation.}\n *\n * @example\n * // All messages\n * await client.messageReports();\n *\n * // Single message\n * await client.messageReports(\"04c3ebcc-3a7e-485a-88c1-68e731386f77\");\n *\n */\n async messageReports(message_id?: string) {\n const data = (\n await axiosInstance.get(\n this.config.baseUrl +\n ENDPOINTS.getMessageReports +\n new URLSearchParams({\n api_key: this.config.apiKey!,\n ...(message_id ? { message_id } : {}),\n }),\n )\n ).data;\n return data;\n }\n}\n","import { TermiiClient } from \"./client\";\n\nexport default TermiiClient;\nexport type * from \"./types\";\n"]}