Files
playzer/apps/frontend/src/lib/api-client.ts
Jose Selesan 260d79fc99 feat: implement public booking cancellation feature
- Added cancelPublicBooking handler to manage booking cancellations.
- Updated public booking service to include cancellation logic.
- Created cancelPublicBooking schema for input validation.
- Modified public booking confirmation page to allow users to cancel their bookings.
- Enhanced email service to send cancellation confirmation emails.
- Made customerEmail field required in booking schemas and updated related components.
- Updated API client to support cancellation requests.
- Added migration to enforce non-nullable customer_email fields in the database.
2026-06-05 11:24:02 -03:00

72 lines
1.6 KiB
TypeScript

import { sentinelClient } from '@better-auth/infra/client';
import { inferAdditionalFields } from 'better-auth/client/plugins';
import { createAuthClient } from 'better-auth/react';
import * as api from './api';
const apiBaseUrl = api.apiBaseUrl;
const plugins = [
sentinelClient(),
inferAdditionalFields({
user: {
phone: {
type: 'string',
required: false,
},
},
}),
];
export const authClient = createAuthClient({
baseURL: apiBaseUrl,
fetchOptions: {
credentials: 'include',
},
plugins: import.meta.env.VITE_BETTER_AUTH_INFRA === 'true' ? plugins : [],
});
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 = {
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,
cancelPublic: api.cancelPublic,
},
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;