Skip to content

Commit

Permalink
Clean unnecessary code up
Browse files Browse the repository at this point in the history
  • Loading branch information
pablogadhi committed Sep 19, 2023
1 parent 861e604 commit f6ee0ff
Show file tree
Hide file tree
Showing 6 changed files with 5 additions and 139 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,22 +17,7 @@ import request from './fixtures/request.json'
export const axiosMock = new MockAdapter(axios)

describe('useSimpleTokenUser', () => {
const OLD_ENV = process.env
// let axiosMock: MockAdapter

beforeEach(() => {
// jest.resetModules()
// process.env = { ...OLD_ENV, NEXT_PUBLIC_TOKEN_TYPE: 'simple' }
// const { axios } = require('@baseapp-frontend/utils')
// axiosMock = new MockAdapter(axios)
})

afterAll(() => {
process.env = OLD_ENV
})

test('should user be present for authenticated', async () => {
// const { useSimpleTokenUser } = require('../index')
;(Cookies.get as CookiesGetByNameFn) = jest.fn(() => 'fake token')

axiosMock.onGet('/users/me').reply(200, request)
Expand All @@ -48,7 +33,6 @@ describe('useSimpleTokenUser', () => {
})

test('can use a custom type interface', async () => {
// const { useSimpleTokenUser } = require('../index')
;(Cookies.get as CookiesGetByNameFn) = jest.fn(() => 'fake token')

interface ICustomUser extends IUser {
Expand All @@ -67,7 +51,6 @@ describe('useSimpleTokenUser', () => {
})

test('should remove cookie if 401', async () => {
// const { useSimpleTokenUser } = require('../index')
;(Cookies.get as CookiesGetByNameFn) = jest.fn(() => 'fake token')
;(Cookies.remove as CookiesGetByNameFn) = jest.fn(() => '')

Expand Down
48 changes: 5 additions & 43 deletions packages/core/src/axios.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,8 @@ import _axios from 'axios'
import humps from 'humps'
import Cookies from 'js-cookie'

import { readExpiry, storeExpiry } from './local-storage-helper'
import { buildQueryString } from './queryString'

// decrypt encrypted data
async function refreshToken() {
// place request to backend service to refresh token
const response = await _axios.put('/api/token/refresh/')
// update stored instance
storeExpiry('auth_token', response.data.token, true)
// update axios instance with new token
return response.refresh
}

function createAxiosInstance({ file = false } = {}) {
const instance = _axios.create({
baseURL: process.env.NEXT_PUBLIC_API_BASE_URL,
Expand All @@ -29,19 +18,14 @@ function createAxiosInstance({ file = false } = {}) {
instance.defaults.headers.patch['Content-Type'] = contentType
instance.defaults.headers.put['Content-Type'] = contentType

instance.interceptors.request.use(async (request) => {
let authToken = Cookies.get('Authorization')
instance.interceptors.request.use((request) => {
const authToken = Cookies.get('Authorization')
if (authToken) {
if (request.headers && !request.headers.Authorization) {
const token = readExpiry(authToken)
if (token.response != null && token.expired) {
authToken = await refreshToken()
}
request.headers.Authorization = `Token ${authToken}`
}
}
console.log('!!!authToken', authToken)
console.log('!!!request', request)

if (request.data && !file) {
request.data = JSON.stringify(humps.decamelizeKeys(request.data))
}
Expand All @@ -56,34 +40,12 @@ function createAxiosInstance({ file = false } = {}) {
}
return response
},
async (error) => {
(error) => {
if (error.response.data && error.response.headers?.['content-type'] === 'application/json') {
const newError = { response: { data: {} } }
newError.response.data = humps.camelizeKeys(error.response.data)
}
const { status, data } = error.response
switch (status) {
case 401:
// check if 401 error was token
console.log('!!!data.message', data.message)
if (data.message === 'An unauthenticated request was made, Please try again') {
// token has expired;
try {
// attempting to refresh token;
await refreshToken()
// token refreshed, reattempting request;
const { config } = error
// configure new request in a new instance;
return await _axios({ method: config.method, url: config.url, data: config.data })
} catch (e) {
console.log(e)
}
}
return Promise.reject(error)

default:
return Promise.reject(error)
}
return Promise.reject(error)
},
)

Expand Down
75 changes: 0 additions & 75 deletions packages/core/src/local-storage-helper.ts

This file was deleted.

1 change: 0 additions & 1 deletion packages/provider/tsconfig.tsbuildinfo

This file was deleted.

1 change: 0 additions & 1 deletion packages/test/tsconfig.tsbuildinfo

This file was deleted.

2 changes: 0 additions & 2 deletions packages/utils/functions/axios/utils.ts

This file was deleted.

0 comments on commit f6ee0ff

Please sign in to comment.