UNPKG

@enplug/scripts

Version:
64 lines (57 loc) 1.8 kB
const loadDevPrivateFile = require('../functions/loadDevPrivateFile'); const request = require('request'); /** * Send an authorized request to a given Enplug endpoint. * @param {string} env `production`, `staging`, or `dev` * @param {string} token Valid auth token to sign the request with. * @param {string} url Request url. * @param {string} method HTTTP verb.L0 * @param {Object?} queryParams Request query paramaters. Optional. * @param {string|Buffer?} body Request body. Optional. */ function sendSecureRequest(env, token, url, method, queryParams, body) { return new Promise((resolve, reject) => { const cookieJar = request.jar(); // Set the correct auth cookie setAuthCookie(cookieJar, env, token, url); // Prepare the request requestObj = { method: method, uri: url, jar: cookieJar } if (queryParams) { requestObj.qs = queryParams; } if (body) { requestObj.body = body; requestObj.json = true; } // Send the request request(requestObj, (error, resp, body) => { if (error) { console.log('Error requesting Enplug backend: ', error); reject(error); } else { resolve(body); } }) }); } function setAuthCookie(cookieJar, environment, token, url) { switch (environment) { case 'dev': const devCookie = request.cookie(`dev_auth_token=${token}`); cookieJar.setCookie(devCookie, url); break; case 'staging': const stagingCookie = request.cookie(`staging_auth_token=${token}`); cookieJar.setCookie(stagingCookie, url); break; case 'production': const prodCookie = request.cookie(`auth_token=${token}`); cookieJar.setCookie(prodCookie, url); break; } } module.exports = sendSecureRequest;