56 lines
1.3 KiB
TypeScript
56 lines
1.3 KiB
TypeScript
import { createAuthClient } from 'better-auth/react';
|
|
import * as api from './api';
|
|
|
|
const apiBaseUrl = api.apiBaseUrl;
|
|
|
|
export const authClient = createAuthClient({
|
|
baseURL: apiBaseUrl,
|
|
fetchOptions: {
|
|
credentials: 'include',
|
|
},
|
|
});
|
|
|
|
export class ApiClientError extends Error {
|
|
status?: number;
|
|
details?: unknown;
|
|
causeError?: unknown;
|
|
|
|
constructor(
|
|
message: string,
|
|
options?: { status?: number; details?: unknown; causeError?: unknown }
|
|
) {
|
|
super(message);
|
|
this.name = 'ApiClientError';
|
|
this.status = options?.status;
|
|
this.details = options?.details;
|
|
this.causeError = options?.causeError;
|
|
}
|
|
}
|
|
|
|
export const apiClient = {
|
|
onboarding: api.onboarding,
|
|
plans: api.plans,
|
|
user: api.user,
|
|
complexes: api.complexes,
|
|
sports: api.sports,
|
|
courts: api.courts,
|
|
publicBookings: {
|
|
getAvailability: api.getAvailability,
|
|
create: api.createPublic,
|
|
getConfirmation: api.getConfirmation,
|
|
},
|
|
adminBookings: {
|
|
listByComplex: api.listByComplex,
|
|
create: api.createAdmin,
|
|
updateStatus: api.updateStatus,
|
|
},
|
|
};
|
|
|
|
export type { ErrorHandlers } from './api';
|
|
export { configureApiClient } from './api';
|
|
|
|
export function setApiAccessToken(_token: string | null) {
|
|
// accessToken = token;
|
|
}
|
|
|
|
export type ApiClient = typeof apiClient; |