40 lines
1.3 KiB
JavaScript
40 lines
1.3 KiB
JavaScript
import Client from "android-sms-gateway";
|
|
import { httpFetchClient } from "./http-client";
|
|
|
|
/**
|
|
* Creates and configures an instance of the android-sms-gateway client.
|
|
* It centralizes the client instantiation and ensures that all necessary
|
|
* configuration for the gateway is present.
|
|
*
|
|
* @param {object} config The runtime configuration object from `useRuntimeConfig`.
|
|
* It should contain `androidSmsGatewayLogin`, `androidSmsGatewayPassword`,
|
|
* and `androidSmsGatewayUrl`.
|
|
* @returns {Client} A configured instance of the SMS gateway client.
|
|
* @throws {Error} If the required gateway configuration is missing, prompting
|
|
* a 500-level error in the calling API endpoint.
|
|
*/
|
|
export function createSmsGatewayClient(config) {
|
|
const {
|
|
androidSmsGatewayLogin,
|
|
androidSmsGatewayPassword,
|
|
androidSmsGatewayUrl,
|
|
} = config;
|
|
|
|
if (
|
|
!androidSmsGatewayLogin ||
|
|
!androidSmsGatewayPassword ||
|
|
!androidSmsGatewayUrl
|
|
) {
|
|
console.error(
|
|
"SMS Gateway service is not configured. Missing required environment variables for the gateway.",
|
|
);
|
|
throw new Error("Server is not configured for sending SMS.");
|
|
}
|
|
|
|
return new Client(
|
|
androidSmsGatewayLogin,
|
|
androidSmsGatewayPassword,
|
|
httpFetchClient,
|
|
androidSmsGatewayUrl,
|
|
);
|
|
}
|