41 lines
929 B
TypeScript
41 lines
929 B
TypeScript
import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react';
|
|
import { toast } from 'sonner';
|
|
|
|
const baseQuery = fetchBaseQuery({
|
|
baseUrl: process.env.NEXT_PUBLIC_API_URL,
|
|
});
|
|
|
|
export const TAGS = {
|
|
STOCKS: 'stocks',
|
|
GAS_STATIONS: 'gas-stations',
|
|
VACANCIES: 'vacancies',
|
|
PARTNERS: 'partners',
|
|
CERTIFICATES: 'certificates',
|
|
CHARITY: 'charity',
|
|
} as const;
|
|
|
|
export const baseAPI = createApi({
|
|
reducerPath: 'baseAPI',
|
|
baseQuery: async (args, api, extraOptions) => {
|
|
const result = await baseQuery(args, api, extraOptions);
|
|
|
|
if (result.error) {
|
|
switch (result.error.status) {
|
|
case 401:
|
|
toast.error('Login credentials error');
|
|
break;
|
|
|
|
case 500:
|
|
toast.error('Server error, please try later');
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
return result;
|
|
},
|
|
tagTypes: Object.values(TAGS),
|
|
endpoints: () => ({}),
|
|
});
|