UNPKG

@financial-times/n-gage

Version:
33 lines (29 loc) 1.19 kB
const fetch = require('@financial-times/n-fetch'); module.exports = (keys) => { const { TEST_USER_TYPES, TEST_SESSIONS_URL, TEST_SESSIONS_API_KEY } = keys; if (!(TEST_USER_TYPES && TEST_SESSIONS_API_KEY && TEST_SESSIONS_URL)) { return keys; } const userTypes = TEST_USER_TYPES.split(','); return Promise.all(userTypes.map((type) => appendToken(keys, type.trim().toLowerCase(), TEST_SESSIONS_URL, TEST_SESSIONS_API_KEY))) .then(() => keys) .catch((e) => { console.error(e); console.log('Couldn\'t fetch the test session tokens. Please check TEST_SESSIONS_URL and TEST_SESSIONS_API_KEY environment variables.'); }); }; const appendToken = (keys, userType, url, apiKey) => { return fetch(`${url}/${userType}?api_key=${apiKey}`) .then((tokens) => { if (tokens.FTSession) { keys[`${userType.toUpperCase()}_FTSession`] = tokens.FTSession; } if (tokens.FTSession_s) { keys[`${userType.toUpperCase()}_FTSession_s`] = tokens.FTSession_s; } }) .catch((e) => { console.error(e); console.log(`Couldn\'t fetch the test session tokens for '${userType}' user. Please check TEST_SESSIONS_URL and TEST_SESSIONS_API_KEY environment variables.`); }); };