feat: initial commit and template import
This commit is contained in:
36
src/app/api/apiSlice.js
Normal file
36
src/app/api/apiSlice.js
Normal file
@@ -0,0 +1,36 @@
|
||||
import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react';
|
||||
// import { setCredentials, logOut } from '../../features/user/userSlice';
|
||||
|
||||
const baseQuery = fetchBaseQuery({
|
||||
baseUrl: import.meta.env.VITE_API_URL,
|
||||
prepareHeaders: (headers, { getState }) => {
|
||||
const { token } = getState().auth;
|
||||
if (token) {
|
||||
headers.set('Authorization', `Bearer ${token}`);
|
||||
}
|
||||
return headers;
|
||||
},
|
||||
});
|
||||
|
||||
const baseQueryWithReauth = async (args, api, extraOptions) => {
|
||||
const result = await baseQuery(args, api, extraOptions);
|
||||
// ====================== TODO: Implement 401 unauthorized re-authentication ======================
|
||||
// if (result?.error?.status === 401) {
|
||||
// const refreshResult = await baseQuery('/refresh', api, extraOptions);
|
||||
// if (refreshResult?.data) {
|
||||
// const { user } = api.getState().auth;
|
||||
// api.dispatch(setCredentials({ user, ...refreshResult.data }));
|
||||
// result = await baseQuery(args, api, extraOptions);
|
||||
// } else {
|
||||
// api.dispatch(logOut());
|
||||
// }
|
||||
// }
|
||||
return result;
|
||||
};
|
||||
|
||||
const apiSlice = createApi({
|
||||
baseQuery: baseQueryWithReauth,
|
||||
endpoints: () => ({}),
|
||||
});
|
||||
|
||||
export default apiSlice;
|
||||
Reference in New Issue
Block a user