vibecoded-personal-site/server/lib/sms-gateway.js

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,
);
}