oriyo_next/src/shared/api/base-api.ts
2025-05-01 01:16:11 +05:00

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: () => ({}),
});