refactor: integrate Better-Auth for authentication and remove Supabase dependencies

This commit is contained in:
Jose Selesan
2026-04-16 20:30:01 -03:00
parent f158845279
commit e5002ce440
29 changed files with 165 additions and 211 deletions

View File

@@ -10,10 +10,10 @@ type ComplexIdParams = { complexId: string };
export async function createAdminBookingHandler(c: AppContext) {
const { complexId } = c.req.valid('param' as never) as ComplexIdParams;
const payload = c.req.valid('json' as never) as CreateAdminBookingInput;
const appUserId = c.get('appUserId');
const user = c.get('user');
try {
const booking = await createAdminBooking(appUserId, complexId, payload);
const booking = await createAdminBooking(user.id, complexId, payload);
return c.json(booking, 201);
} catch (error) {
if (error instanceof AdminBookingServiceError) {

View File

@@ -10,10 +10,10 @@ type ComplexIdParams = { complexId: string };
export async function listAdminBookingsHandler(c: AppContext) {
const { complexId } = c.req.valid('param' as never) as ComplexIdParams;
const query = c.req.valid('query' as never) as ListAdminBookingsQuery;
const appUserId = c.get('appUserId');
const user = c.get('user');
try {
const response = await listAdminBookings(appUserId, complexId, query);
const response = await listAdminBookings(user.id, complexId, query);
return c.json(response);
} catch (error) {
if (error instanceof AdminBookingServiceError) {

View File

@@ -10,10 +10,10 @@ type BookingIdParams = { id: string };
export async function updateAdminBookingStatusHandler(c: AppContext) {
const { id } = c.req.valid('param' as never) as BookingIdParams;
const payload = c.req.valid('json' as never) as UpdateAdminBookingStatusInput;
const appUserId = c.get('appUserId');
const user = c.get('user');
try {
const booking = await updateAdminBookingStatus(appUserId, id, payload);
const booking = await updateAdminBookingStatus(user.id, id, payload);
return c.json(booking);
} catch (error) {
if (error instanceof AdminBookingServiceError) {

View File

@@ -126,12 +126,12 @@ function buildSlots(
return slots;
}
async function ensureComplexAccess(complexId: string, appUserId: string) {
async function ensureComplexAccess(complexId: string, userId: string) {
const complexUser = await db.complexUser.findUnique({
where: {
complexId_userId: {
complexId,
userId: appUserId,
userId,
},
},
include: {
@@ -205,11 +205,11 @@ function mapBookingResponse(booking: {
}
export async function listAdminBookings(
appUserId: string,
userId: string,
complexId: string,
query: ListAdminBookingsQuery
) {
await ensureComplexAccess(complexId, appUserId);
await ensureComplexAccess(complexId, userId);
const fromDate = parseIsoDate(query.fromDate);
const bookings = await db.courtBooking.findMany({
@@ -253,11 +253,11 @@ export async function listAdminBookings(
}
export async function createAdminBooking(
appUserId: string,
userId: string,
complexId: string,
input: CreateAdminBookingInput
) {
const complex = await ensureComplexAccess(complexId, appUserId);
const complex = await ensureComplexAccess(complexId, userId);
const bookingDate = parseIsoDate(input.date);
const dayOfWeek = getDayOfWeek(bookingDate);
@@ -436,7 +436,7 @@ export async function createAdminBooking(
}
export async function updateAdminBookingStatus(
appUserId: string,
userId: string,
bookingId: string,
input: UpdateAdminBookingStatusInput
) {
@@ -447,7 +447,7 @@ export async function updateAdminBookingStatus(
complex: {
users: {
some: {
userId: appUserId,
userId,
},
},
},