Newer
Older
import axios, { AxiosRequestConfig } from 'axios';
import { ApiRequest, RequestParams } from './types';
function userRestQueries(
// When a request needs more config like CancelToken, etc.
config?: AxiosRequestConfig,
): Record<string, <Data>(path: string) => ApiRequest<Data>> {
return {
get: <Data>(path: string) => (params: RequestParams) =>
axios.get<Data>(path, { ...config, ...params }),
post: <Data>(path: string) => (params: RequestParams) =>
axios.post<Data>(path, params.body ?? {}, { ...config, ...params }),
put: <Data>(path: string) => (params: RequestParams) =>
axios.put<Data>(path, params.body ?? {}, { ...config, ...params }),
delete: (path: string) => (params: RequestParams) =>
axios.delete(path, { ...config, ...params }),
};
}
export default userRestQueries;