diff options
| -rw-r--r-- | package.json | 1 | ||||
| -rw-r--r-- | src/helpers/apiOdoo.js | 25 |
2 files changed, 22 insertions, 4 deletions
diff --git a/package.json b/package.json index da136fd0..dc088461 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ }, "dependencies": { "axios": "^1.1.3", + "cookies-next": "^2.1.1", "next": "13.0.0", "next-progress": "^2.2.0", "react": "18.2.0", diff --git a/src/helpers/apiOdoo.js b/src/helpers/apiOdoo.js index 559c31c3..aff27bc3 100644 --- a/src/helpers/apiOdoo.js +++ b/src/helpers/apiOdoo.js @@ -1,14 +1,31 @@ +import { getCookie, setCookie } from 'cookies-next'; + const axios = require('axios'); +const renewToken = async () => { + let res = await axios.get(process.env.DB_HOST + '/api/token'); + setCookie('token', res.data.result); + return res.data.result; +}; + +const getToken = async () => { + let token = getCookie('token'); + if (token == undefined) token = await renewToken(); + return token; +}; + const getOdoo = async (url) => { try { - let res = await axios.get(process.env.DB_HOST + url); + let token = await getToken(); + let res = await axios.get(process.env.DB_HOST + url, {headers: {Authorization: token}}); + if (res.data.status.code == 401) { + await renewToken(); + return getOdoo(url); + } return res.data.result || []; } catch (error) { console.log(error); } } -export { - getOdoo, -};
\ No newline at end of file +export { getOdoo };
\ No newline at end of file |
