UNPKG

@netgsm/sms

Version:

Netgsm API Client for SMS sending and reporting

79 lines (78 loc) 3.25 kB
/** * @module Netgsm * @description Netgsm SMS API client implementation */ import { NetgsmConfig, ReportPayload, ReportResponse, HeaderQueryResponse, HeaderQueryPayload, BalanceResponse, BalancePayload, CancelSmsPayload, CancelSmsResponse, SmsInboxResponse, SmsInboxPayload, RestSmsPayload, RestSmsResponse, OtpSmsPayload, OtpSmsResponse, StatsPayload, StatsResponse } from "./types"; /** * Netgsm API Client * * Provides methods to interact with Netgsm's REST API for sending SMS. */ declare class Netgsm { private config; private baseURL; private headers; private sdkAppName?; /** * Initialize the Netgsm client. * @param {NetgsmConfig} config - Configuration object containing username and password. */ constructor(config: NetgsmConfig); /** * Generate Base64 encoded authorization token * @param {string} username - Username for authentication. * @param {string} password - Password for authentication. * @returns {string} - Base64 encoded token. */ private generateAuthToken; /** * Send SMS using REST v2 API * @param {RestSmsPayload} payload - JSON payload for sending SMS. * @returns {Promise<RestSmsResponse>} - The API response. */ sendRestSms(payload: RestSmsPayload): Promise<RestSmsResponse>; /** * Send OTP SMS using REST v2 API * @param {OtpSmsPayload} payload - JSON payload for sending OTP SMS. * @returns {Promise<OtpSmsResponse>} - The API response. */ sendOtpSms(payload: OtpSmsPayload): Promise<OtpSmsResponse>; /** * Cancel a scheduled SMS * @param {CancelSmsPayload} payload - JSON payload for cancelling SMS. * @returns {Promise<CancelSmsResponse>} - The API response. */ cancelSms(payload: CancelSmsPayload): Promise<CancelSmsResponse>; /** * Get SMS report using REST v2 API * @param {ReportPayload} payload - JSON payload for fetching SMS report. * @returns {Promise<ReportResponse>} - The API response containing report details. */ getReport(payload: ReportPayload): Promise<ReportResponse>; /** * Get SMS statistics using REST v2 API * @param {StatsPayload} payload - JSON payload for fetching SMS report. * @returns {Promise<StatsResponse>} - The API response containing report details. */ getStats(payload: StatsPayload): Promise<StatsResponse>; /** * Get registered sender IDs/headers using REST v2 API * @param {HeaderQueryPayload} payload - Optional payload for the query * @returns {Promise<HeaderQueryResponse>} - The API response containing header details. */ getHeaders(payload?: HeaderQueryPayload): Promise<HeaderQueryResponse>; /** * Get inbox messages * @param {SmsInboxPayload} payload - Optional payload for the query * @returns {Promise<SmsInboxResponse>} - The API response containing inbox messages. */ getInbox(payload?: SmsInboxPayload): Promise<SmsInboxResponse>; /** * Checks balance/package information * @param payload Balance query parameters * @returns Balance information */ checkBalance(payload: BalancePayload): Promise<BalanceResponse>; private handleResponse; } export default Netgsm;