diff --git a/environment.env b/environment.env index 4409e6d..bbe8c64 100644 --- a/environment.env +++ b/environment.env @@ -1,7 +1,6 @@ BASIC_AUTH_USERNAME=username BASIC_AUTH_PASSWORD=password -OFFICE_RnD_TOKEN=token for Office RnD API requests MAX_BACK_TO_BACK_DIFFERENCE=Time in minutes EARLIEST_UNLOCK=Time in minutes diff --git a/helpers/api.js b/helpers/api.js index 441105d..b56e6d7 100644 --- a/helpers/api.js +++ b/helpers/api.js @@ -1,10 +1,28 @@ const axios = require('axios'); -const officeRnDToken = process.env.OFFICE_RnD_TOKEN; +const { getToken } = require('../services/officeRnD/oauth'); +console.log('API file'); const API = axios.create({ baseURL: 'https://app.officernd.com/api/v1/organizations/sima-space-test-environment', - headers: {'Authorization': `Bearer ${officeRnDToken}`} + headers: {'Authorization': `Bearer TOKEN`} +}); + +// request interceptor +API.interceptors.request.use((config) => { + return new Promise((resolve, reject) => { + getToken(true) + .then((token) => { + config.headers.Authorization = `Bearer ${token}`; + resolve(config); + }) + .catch((error) => { + reject(error); + }); + }); +}, (error) => { + // Do something with request error + return Promise.reject(error); }); module.exports = { diff --git a/services/officeRnD/oauth.js b/services/officeRnD/oauth.js index c2778d5..b046e29 100644 --- a/services/officeRnD/oauth.js +++ b/services/officeRnD/oauth.js @@ -26,7 +26,7 @@ const updateToken = (token, validUntil) => { }); }; -const getToken = () => { +const getToken = (returnTokenOnly = false) => { return new Promise((resolve, reject) => { db.accessToken.findAll() .then((results) => { @@ -36,14 +36,30 @@ const getToken = () => { const validUntilMoment = moment(validUntil); if (validUntilMoment.isBefore(moment())){ refreshOauthToken() - .then((oauthResult) => resolve(oauthResult)) + .then((oauthResult) => { + if (returnTokenOnly){ + resolve(oauthResult.token); + }else{ + resolve(oauthResult); + } + }) .catch((error) => reject(error)); }else{ - resolve({token, validUntil}); + if (returnTokenOnly){ + resolve(token); + }else { + resolve({token, validUntil}); + } } }else{ refreshOauthToken() - .then((oauthResult) => resolve(oauthResult)) + .then((oauthResult) => { + if (returnTokenOnly){ + resolve(oauthResult.token); + }else{ + resolve(oauthResult); + } + }) .catch((error) => reject(error)); } })