mirror of
https://github.com/jambonz/jambonz-api-server.git
synced 2026-07-05 03:31:56 +00:00
41 lines
1.1 KiB
JavaScript
41 lines
1.1 KiB
JavaScript
const providers = new Map();
|
|
let init = false;
|
|
|
|
function initProviders(logger) {
|
|
if (init) return;
|
|
if (process.env.JAMBONES_MESSAGING) {
|
|
try {
|
|
const obj = JSON.parse(process.env.JAMBONES_MESSAGING);
|
|
for (const [key, value] of Object.entries(obj)) {
|
|
logger.debug({config: value}, `Adding SMS provider ${key}`);
|
|
providers.set(key, value);
|
|
}
|
|
logger.info(`Configured ${providers.size} SMS providers`);
|
|
} catch (err) {
|
|
logger.error(err, `expected JSON for JAMBONES_MESSAGING : ${process.env.JAMBONES_MESSAGING}`);
|
|
}
|
|
}
|
|
else {
|
|
logger.info('no JAMBONES_MESSAGING env var, messaging is disabled');
|
|
}
|
|
init = true;
|
|
}
|
|
|
|
function getProvider(logger, partner) {
|
|
initProviders(logger);
|
|
if (typeof partner === 'string') {
|
|
const config = providers.get(partner);
|
|
const arr = [partner, config];
|
|
logger.debug({arr}, 'getProvider by name');
|
|
return arr;
|
|
}
|
|
else if (providers.size) {
|
|
const arr = providers.entries().next().value;
|
|
logger.debug({arr}, 'getProvider by first available');
|
|
return arr;
|
|
}
|
|
}
|
|
|
|
module.exports = getProvider;
|
|
|