Initial commit
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
import { zValidator } from '@hono/zod-validator'
|
||||
import {
|
||||
createPublicBookingSchema,
|
||||
publicAvailabilityQuerySchema,
|
||||
} from '@repo/api-contract'
|
||||
import { Hono } from 'hono'
|
||||
import { z } from 'zod'
|
||||
import { createPublicBookingHandler } from '@/modules/public-booking/handlers/create-public-booking.handler'
|
||||
import { getPublicBookingConfirmationHandler } from '@/modules/public-booking/handlers/get-public-booking-confirmation.handler'
|
||||
import { listPublicAvailabilityHandler } from '@/modules/public-booking/handlers/list-public-availability.handler'
|
||||
import type { AppEnv } from '@/types/hono'
|
||||
|
||||
export const publicBookingRoutes = new Hono<AppEnv>()
|
||||
const complexSlugParamsSchema = z.object({ complexSlug: z.string().trim().min(1) })
|
||||
const confirmationParamsSchema = z.object({
|
||||
complexSlug: z.string().trim().min(1),
|
||||
bookingCode: z.string().trim().min(6).max(8),
|
||||
})
|
||||
|
||||
publicBookingRoutes.get(
|
||||
'/complex/:complexSlug/availability',
|
||||
zValidator('param', complexSlugParamsSchema),
|
||||
zValidator('query', publicAvailabilityQuerySchema),
|
||||
listPublicAvailabilityHandler,
|
||||
)
|
||||
|
||||
publicBookingRoutes.post(
|
||||
'/complex/:complexSlug',
|
||||
zValidator('param', complexSlugParamsSchema),
|
||||
zValidator('json', createPublicBookingSchema),
|
||||
createPublicBookingHandler,
|
||||
)
|
||||
|
||||
publicBookingRoutes.get(
|
||||
'/complex/:complexSlug/confirmation/:bookingCode',
|
||||
zValidator('param', confirmationParamsSchema),
|
||||
getPublicBookingConfirmationHandler,
|
||||
)
|
||||
Reference in New Issue
Block a user