talentlms-sdk
Version:
Nodejs SDK for accessing the TalentLMS API
37 lines (27 loc) • 872 B
JavaScript
;
const { global } = require('../../config.js');
/**
* Generates an endpoint string for the TalentLMS API
*
* @param {string} base Endpoint base
* @param {object} params Parameters to apply to the endpoint
*/
const generateEndpoint = (base, params = {}) => {
let endpoint = base;
const paramStrings = [];
for (const key in params) {
let val = params[key];
// Convert arrays into strings
if (Array.isArray(val)) val = val.join(';');
// Convert booleans into strings
if (typeof val === 'boolean') val = val ? 'on' : 'off';
// Check for base64 encoding
if (global.base64parameters[key]) {
val = Buffer.from(val).toString('base64');
}
paramStrings.push(`${key}:${val}`);
}
if (paramStrings.length) endpoint += '/' + paramStrings.join(',');
return endpoint;
};
module.exports = generateEndpoint;