diff options
| author | Rafi Zadanly <zadanlyr@gmail.com> | 2024-01-13 10:35:22 +0700 |
|---|---|---|
| committer | Rafi Zadanly <zadanlyr@gmail.com> | 2024-01-13 10:35:22 +0700 |
| commit | f62b2345f463695ef0f8f79830cd76b6e0332821 (patch) | |
| tree | c06ff12a8312e3a02b0203f588db0f4da044c911 /src-migrate/common/libs/odooApi.ts | |
| parent | ee0b5893ac039ab05fe8247647364a923d707da3 (diff) | |
Refactor src migrate folder
Diffstat (limited to 'src-migrate/common/libs/odooApi.ts')
| -rw-r--r-- | src-migrate/common/libs/odooApi.ts | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/src-migrate/common/libs/odooApi.ts b/src-migrate/common/libs/odooApi.ts deleted file mode 100644 index 2dbc18d3..00000000 --- a/src-migrate/common/libs/odooApi.ts +++ /dev/null @@ -1,81 +0,0 @@ -import axios, { AxiosRequestConfig, Method } from 'axios'; -import { getCookie, setCookie } from 'cookies-next'; -import { getAuth } from './auth'; -import { AuthApiProps, AuthProps } from '../types/auth'; - -const ODOO_HOST = process.env.NEXT_PUBLIC_ODOO_API_HOST as string; - -const renewToken = async () => { - let token = await axios.get(`${ODOO_HOST}/api/token`); - setCookie('token', token.data.result); - - return token.data.result; -}; - -const getToken = async () => { - let token = getCookie('token'); - if (token == undefined) token = await renewToken(); - - return token; -}; - -const maxConnectionAttempt = 15; -let connectionAttempt = 0; - -const odooApi = async ( - method: Method, - url: string, - data = {}, - headers = {} -): Promise<any> => { - connectionAttempt++; - - try { - let token = await getToken(); - const auth = getAuth(); - - let axiosParameter: AxiosRequestConfig = { - method, - url: process.env.NEXT_PUBLIC_ODOO_API_HOST + url, - headers: { Authorization: token, ...headers }, - }; - - if (typeof auth === 'object' && 'token' in auth) { - axiosParameter.headers = { - ...axiosParameter.headers, - Token: auth.token, - }; - } - - if (method.toUpperCase() === 'POST') { - axiosParameter.headers = { - ...axiosParameter.headers, - 'Content-Type': 'application/x-www-form-urlencoded', - }; - } - - if (Object.keys(data).length > 0) { - axiosParameter.data = new URLSearchParams( - Object.entries(data) - ).toString(); - } - - let res = await axios(axiosParameter); - const authResponse: AuthApiProps = res.data; - - if ( - authResponse.status.code == 401 && - connectionAttempt < maxConnectionAttempt - ) { - await renewToken(); - return odooApi(method, url, data, headers); - } - - return authResponse.result || null; - } catch (error) { - console.log(error); - return null; - } -}; - -export default odooApi; |
