Files
playzer/apps/frontend/src/lib/api-client.ts

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;