@voyantjs/bookings 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"suppliers.d.ts","sourceRoot":"","sources":["../../src/extensions/suppliers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAgK1D,eAAO,MAAM,yBAAyB,EAAE,aAGvC,CAAA"}
1
+ {"version":3,"file":"suppliers.d.ts","sourceRoot":"","sources":["../../src/extensions/suppliers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAgK1D,eAAO,MAAM,yBAAyB,EAAE,aAGvC,CAAA"}
@@ -1,3 +1,4 @@
1
+ import { parseJsonBody } from "@voyantjs/hono";
1
2
  import { asc, eq } from "drizzle-orm";
2
3
  import { Hono } from "hono";
3
4
  import { z } from "zod";
@@ -79,14 +80,14 @@ const supplierStatusRoutes = new Hono()
79
80
  });
80
81
  })
81
82
  .post("/:id/supplier-statuses", async (c) => {
82
- const row = await supplierStatusService.createSupplierStatus(c.get("db"), c.req.param("id"), insertSupplierStatusSchema.parse(await c.req.json()), c.get("userId"));
83
+ const row = await supplierStatusService.createSupplierStatus(c.get("db"), c.req.param("id"), await parseJsonBody(c, insertSupplierStatusSchema), c.get("userId"));
83
84
  if (!row) {
84
85
  return c.json({ error: "Booking not found" }, 404);
85
86
  }
86
87
  return c.json({ data: row }, 201);
87
88
  })
88
89
  .patch("/:id/supplier-statuses/:statusId", async (c) => {
89
- const row = await supplierStatusService.updateSupplierStatus(c.get("db"), c.req.param("id"), c.req.param("statusId"), updateSupplierStatusSchema.parse(await c.req.json()), c.get("userId"));
90
+ const row = await supplierStatusService.updateSupplierStatus(c.get("db"), c.req.param("id"), c.req.param("statusId"), await parseJsonBody(c, updateSupplierStatusSchema), c.get("userId"));
90
91
  if (!row) {
91
92
  return c.json({ error: "Supplier status not found" }, 404);
92
93
  }
package/dist/index.d.ts CHANGED
@@ -11,7 +11,10 @@ export declare const bookingsLinkable: {
11
11
  booking: LinkableDefinition;
12
12
  };
13
13
  export declare const bookingsModule: Module;
14
+ export declare function createBookingsHonoModule(): HonoModule;
14
15
  export declare const bookingsHonoModule: HonoModule;
16
+ export type { BookingRouteRuntime } from "./route-runtime.js";
17
+ export { BOOKING_ROUTE_RUNTIME_CONTAINER_KEY, buildBookingRouteRuntime, } from "./route-runtime.js";
15
18
  export type { BookingRoutes } from "./routes.js";
16
19
  export type { PublicBookingRoutes } from "./routes-public.js";
17
20
  export { publicBookingRoutes } from "./routes-public.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { BOOKING_ROUTE_RUNTIME_CONTAINER_KEY, buildBookingRouteRuntime } from "./route-runtime.js";
1
2
  import { bookingRoutes } from "./routes.js";
2
3
  import { publicBookingRoutes } from "./routes-public.js";
3
4
  export { bookingsSupplierExtension } from "./extensions/suppliers.js";
@@ -18,12 +19,22 @@ export const bookingsModule = {
18
19
  name: "bookings",
19
20
  linkable: bookingsLinkable,
20
21
  };
21
- export const bookingsHonoModule = {
22
- module: bookingsModule,
23
- adminRoutes: bookingRoutes,
24
- publicRoutes: publicBookingRoutes,
25
- routes: bookingRoutes,
26
- };
22
+ export function createBookingsHonoModule() {
23
+ const module = {
24
+ ...bookingsModule,
25
+ bootstrap: ({ bindings, container }) => {
26
+ container.register(BOOKING_ROUTE_RUNTIME_CONTAINER_KEY, buildBookingRouteRuntime(bindings));
27
+ },
28
+ };
29
+ return {
30
+ module,
31
+ adminRoutes: bookingRoutes,
32
+ publicRoutes: publicBookingRoutes,
33
+ routes: bookingRoutes,
34
+ };
35
+ }
36
+ export const bookingsHonoModule = createBookingsHonoModule();
37
+ export { BOOKING_ROUTE_RUNTIME_CONTAINER_KEY, buildBookingRouteRuntime, } from "./route-runtime.js";
27
38
  export { publicBookingRoutes } from "./routes-public.js";
28
39
  export { bookingParticipantDietarySchema, bookingParticipantIdentitySchema, bookingParticipantTravelDetailInsertSchema, bookingParticipantTravelDetailSelectSchema, bookingParticipantTravelDetails, bookingParticipantTravelDetailUpdateSchema, decryptedBookingParticipantTravelDetailSchema, } from "./schema/travel-details.js";
29
40
  export { bookingActivityLog, bookingAllocations, bookingDocuments, bookingFulfillments, bookingGroupKindEnum, bookingGroupMemberRoleEnum, bookingGroupMembers, bookingGroups, bookingItemParticipants, bookingItems, bookingNotes, bookingParticipants, bookingPassengers, bookingPiiAccessLog, bookingRedemptionEvents, bookingSessionStates, bookingSupplierStatuses, bookings, } from "./schema.js";
@@ -0,0 +1,8 @@
1
+ import { type KmsProvider } from "@voyantjs/utils";
2
+ import type { KmsBindings } from "./routes-shared.js";
3
+ export declare const BOOKING_ROUTE_RUNTIME_CONTAINER_KEY = "runtime.bookings.routes";
4
+ export interface BookingRouteRuntime {
5
+ getKmsProvider(): KmsProvider;
6
+ }
7
+ export declare function buildBookingRouteRuntime(bindings: KmsBindings): BookingRouteRuntime;
8
+ //# sourceMappingURL=route-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route-runtime.d.ts","sourceRoot":"","sources":["../src/route-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAE5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAErD,eAAO,MAAM,mCAAmC,4BAA4B,CAAA;AAE5E,MAAM,WAAW,mBAAmB;IAClC,cAAc,IAAI,WAAW,CAAA;CAC9B;AAgBD,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,WAAW,GAAG,mBAAmB,CAQnF"}
@@ -0,0 +1,17 @@
1
+ import { createKmsProviderFromEnv } from "@voyantjs/utils";
2
+ export const BOOKING_ROUTE_RUNTIME_CONTAINER_KEY = "runtime.bookings.routes";
3
+ function buildRuntimeEnv(bindings) {
4
+ const processEnv = globalThis.process?.env ?? {};
5
+ return {
6
+ ...processEnv,
7
+ ...(bindings ?? {}),
8
+ };
9
+ }
10
+ export function buildBookingRouteRuntime(bindings) {
11
+ const runtimeEnv = buildRuntimeEnv(bindings);
12
+ return {
13
+ getKmsProvider() {
14
+ return createKmsProviderFromEnv(runtimeEnv);
15
+ },
16
+ };
17
+ }
@@ -91,7 +91,7 @@ export declare const bookingGroupRoutes: import("hono/hono-base").HonoBase<Env,
91
91
  endDate: string | null;
92
92
  bookingNumber: string;
93
93
  personId: string | null;
94
- sourceType: "internal" | "direct" | "manual" | "affiliate" | "ota" | "reseller" | "api_partner";
94
+ sourceType: "internal" | "reseller" | "direct" | "manual" | "affiliate" | "ota" | "api_partner";
95
95
  externalBookingRef: string | null;
96
96
  communicationLanguage: string | null;
97
97
  sellCurrency: string;
@@ -217,7 +217,7 @@ export declare const bookingGroupRoutes: import("hono/hono-base").HonoBase<Env,
217
217
  endDate: string | null;
218
218
  bookingNumber: string;
219
219
  personId: string | null;
220
- sourceType: "internal" | "direct" | "manual" | "affiliate" | "ota" | "reseller" | "api_partner";
220
+ sourceType: "internal" | "reseller" | "direct" | "manual" | "affiliate" | "ota" | "api_partner";
221
221
  externalBookingRef: string | null;
222
222
  communicationLanguage: string | null;
223
223
  sellCurrency: string;
@@ -1 +1 @@
1
- {"version":3,"file":"routes-groups.d.ts","sourceRoot":"","sources":["../src/routes-groups.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAQ1D,KAAK,GAAG,GAAG;IACT,SAAS,EAAE;QACT,EAAE,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAA;QAChE,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;CACF,CAAA;AAED,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BA4E3B,CAAA;AAEJ,MAAM,MAAM,kBAAkB,GAAG,OAAO,kBAAkB,CAAA"}
1
+ {"version":3,"file":"routes-groups.d.ts","sourceRoot":"","sources":["../src/routes-groups.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAQ1D,KAAK,GAAG,GAAG;IACT,SAAS,EAAE;QACT,EAAE,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAA;QAChE,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;CACF,CAAA;AAED,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BA0E3B,CAAA;AAEJ,MAAM,MAAM,kBAAkB,GAAG,OAAO,kBAAkB,CAAA"}
@@ -1,13 +1,14 @@
1
+ import { parseJsonBody, parseQuery } from "@voyantjs/hono";
1
2
  import { Hono } from "hono";
2
3
  import { bookingGroupsService } from "./service-groups.js";
3
4
  import { addBookingGroupMemberSchema, bookingGroupListQuerySchema, insertBookingGroupSchema, updateBookingGroupSchema, } from "./validation.js";
4
5
  export const bookingGroupRoutes = new Hono()
5
6
  .get("/", async (c) => {
6
- const query = bookingGroupListQuerySchema.parse(Object.fromEntries(new URL(c.req.url).searchParams));
7
+ const query = await parseQuery(c, bookingGroupListQuerySchema);
7
8
  return c.json(await bookingGroupsService.listBookingGroups(c.get("db"), query));
8
9
  })
9
10
  .post("/", async (c) => {
10
- const row = await bookingGroupsService.createBookingGroup(c.get("db"), insertBookingGroupSchema.parse(await c.req.json()));
11
+ const row = await bookingGroupsService.createBookingGroup(c.get("db"), await parseJsonBody(c, insertBookingGroupSchema));
11
12
  return c.json({ data: row }, 201);
12
13
  })
13
14
  .get("/:id", async (c) => {
@@ -18,7 +19,7 @@ export const bookingGroupRoutes = new Hono()
18
19
  return c.json({ data: { ...row, members } });
19
20
  })
20
21
  .patch("/:id", async (c) => {
21
- const row = await bookingGroupsService.updateBookingGroup(c.get("db"), c.req.param("id"), updateBookingGroupSchema.parse(await c.req.json()));
22
+ const row = await bookingGroupsService.updateBookingGroup(c.get("db"), c.req.param("id"), await parseJsonBody(c, updateBookingGroupSchema));
22
23
  if (!row)
23
24
  return c.json({ error: "Booking group not found" }, 404);
24
25
  return c.json({ data: row });
@@ -34,7 +35,7 @@ export const bookingGroupRoutes = new Hono()
34
35
  return c.json({ data: members });
35
36
  })
36
37
  .post("/:id/members", async (c) => {
37
- const result = await bookingGroupsService.addGroupMember(c.get("db"), c.req.param("id"), addBookingGroupMemberSchema.parse(await c.req.json()));
38
+ const result = await bookingGroupsService.addGroupMember(c.get("db"), c.req.param("id"), await parseJsonBody(c, addBookingGroupMemberSchema));
38
39
  if (result.status === "group_not_found") {
39
40
  return c.json({ error: "Booking group not found" }, 404);
40
41
  }
@@ -78,7 +78,7 @@ export declare const publicBookingRoutes: import("hono/hono-base").HonoBase<Env,
78
78
  id: string;
79
79
  title: string;
80
80
  description: string | null;
81
- itemType: "other" | "unit" | "extra" | "service" | "fee" | "tax" | "discount" | "adjustment" | "accommodation" | "transport";
81
+ itemType: "service" | "other" | "unit" | "extra" | "fee" | "tax" | "discount" | "adjustment" | "accommodation" | "transport";
82
82
  status: "cancelled" | "draft" | "on_hold" | "confirmed" | "expired" | "fulfilled";
83
83
  serviceDate: string | null;
84
84
  startsAt: string | null;
@@ -111,7 +111,7 @@ export declare const publicBookingRoutes: import("hono/hono-base").HonoBase<Env,
111
111
  pricingCategoryId: string | null;
112
112
  availabilitySlotId: string | null;
113
113
  quantity: number;
114
- allocationType: "unit" | "pickup" | "resource";
114
+ allocationType: "resource" | "unit" | "pickup";
115
115
  status: "cancelled" | "confirmed" | "expired" | "fulfilled" | "held" | "released";
116
116
  holdExpiresAt: string | null;
117
117
  confirmedAt: string | null;
@@ -354,7 +354,7 @@ export declare const publicBookingRoutes: import("hono/hono-base").HonoBase<Env,
354
354
  id: string;
355
355
  title: string;
356
356
  description: string | null;
357
- itemType: "other" | "unit" | "extra" | "service" | "fee" | "tax" | "discount" | "adjustment" | "accommodation" | "transport";
357
+ itemType: "service" | "other" | "unit" | "extra" | "fee" | "tax" | "discount" | "adjustment" | "accommodation" | "transport";
358
358
  status: "cancelled" | "draft" | "on_hold" | "confirmed" | "expired" | "fulfilled";
359
359
  serviceDate: string | null;
360
360
  startsAt: string | null;
@@ -387,7 +387,7 @@ export declare const publicBookingRoutes: import("hono/hono-base").HonoBase<Env,
387
387
  pricingCategoryId: string | null;
388
388
  availabilitySlotId: string | null;
389
389
  quantity: number;
390
- allocationType: "unit" | "pickup" | "resource";
390
+ allocationType: "resource" | "unit" | "pickup";
391
391
  status: "cancelled" | "confirmed" | "expired" | "fulfilled" | "held" | "released";
392
392
  holdExpiresAt: string | null;
393
393
  confirmedAt: string | null;
@@ -529,7 +529,7 @@ export declare const publicBookingRoutes: import("hono/hono-base").HonoBase<Env,
529
529
  id: string;
530
530
  title: string;
531
531
  description: string | null;
532
- itemType: "other" | "unit" | "extra" | "service" | "fee" | "tax" | "discount" | "adjustment" | "accommodation" | "transport";
532
+ itemType: "service" | "other" | "unit" | "extra" | "fee" | "tax" | "discount" | "adjustment" | "accommodation" | "transport";
533
533
  status: "cancelled" | "draft" | "on_hold" | "confirmed" | "expired" | "fulfilled";
534
534
  serviceDate: string | null;
535
535
  startsAt: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"routes-public.d.ts","sourceRoot":"","sources":["../src/routes-public.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,GAAG,EAAY,MAAM,oBAAoB,CAAA;AAsCvD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAqI5B,CAAA;AAEJ,MAAM,MAAM,mBAAmB,GAAG,OAAO,mBAAmB,CAAA"}
1
+ {"version":3,"file":"routes-public.d.ts","sourceRoot":"","sources":["../src/routes-public.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,GAAG,EAAY,MAAM,oBAAoB,CAAA;AAsCvD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAmI5B,CAAA;AAEJ,MAAM,MAAM,mBAAmB,GAAG,OAAO,mBAAmB,CAAA"}
@@ -1,3 +1,4 @@
1
+ import { parseJsonBody, parseQuery } from "@voyantjs/hono";
1
2
  import { Hono } from "hono";
2
3
  import { notFound } from "./routes-shared.js";
3
4
  import { publicBookingsService } from "./service-public.js";
@@ -27,7 +28,7 @@ function sessionConflictError(status) {
27
28
  }
28
29
  export const publicBookingRoutes = new Hono()
29
30
  .post("/sessions", async (c) => {
30
- const result = await publicBookingsService.createSession(c.get("db"), publicCreateBookingSessionSchema.parse(await c.req.json()), c.get("userId"));
31
+ const result = await publicBookingsService.createSession(c.get("db"), await parseJsonBody(c, publicCreateBookingSessionSchema), c.get("userId"));
31
32
  if (result.status === "slot_not_found") {
32
33
  return notFound(c, "Availability slot not found");
33
34
  }
@@ -41,7 +42,7 @@ export const publicBookingRoutes = new Hono()
41
42
  return session ? c.json({ data: session }) : notFound(c, "Booking session not found");
42
43
  })
43
44
  .patch("/sessions/:sessionId", async (c) => {
44
- const result = await publicBookingsService.updateSession(c.get("db"), c.req.param("sessionId"), publicUpdateBookingSessionSchema.parse(await c.req.json()), c.get("userId"));
45
+ const result = await publicBookingsService.updateSession(c.get("db"), c.req.param("sessionId"), await parseJsonBody(c, publicUpdateBookingSessionSchema), c.get("userId"));
45
46
  if (result.status === "not_found") {
46
47
  return notFound(c, "Booking session not found");
47
48
  }
@@ -55,14 +56,14 @@ export const publicBookingRoutes = new Hono()
55
56
  return state ? c.json({ data: state }) : notFound(c, "Booking session not found");
56
57
  })
57
58
  .put("/sessions/:sessionId/state", async (c) => {
58
- const result = await publicBookingsService.updateSessionState(c.get("db"), c.req.param("sessionId"), publicUpsertBookingSessionStateSchema.parse(await c.req.json()));
59
+ const result = await publicBookingsService.updateSessionState(c.get("db"), c.req.param("sessionId"), await parseJsonBody(c, publicUpsertBookingSessionStateSchema));
59
60
  if (result.status === "not_found") {
60
61
  return notFound(c, "Booking session not found");
61
62
  }
62
63
  return c.json({ data: result.state });
63
64
  })
64
65
  .post("/sessions/:sessionId/reprice", async (c) => {
65
- const result = await publicBookingsService.repriceSession(c.get("db"), c.req.param("sessionId"), publicRepriceBookingSessionSchema.parse(await c.req.json()));
66
+ const result = await publicBookingsService.repriceSession(c.get("db"), c.req.param("sessionId"), await parseJsonBody(c, publicRepriceBookingSessionSchema));
66
67
  if (result.status === "not_found") {
67
68
  return notFound(c, "Booking session not found");
68
69
  }
@@ -80,7 +81,7 @@ export const publicBookingRoutes = new Hono()
80
81
  });
81
82
  })
82
83
  .post("/sessions/:sessionId/confirm", async (c) => {
83
- const result = await publicBookingsService.confirmSession(c.get("db"), c.req.param("sessionId"), publicBookingSessionMutationSchema.parse(await c.req.json()), c.get("userId"));
84
+ const result = await publicBookingsService.confirmSession(c.get("db"), c.req.param("sessionId"), await parseJsonBody(c, publicBookingSessionMutationSchema), c.get("userId"));
84
85
  if (result.status === "not_found") {
85
86
  return notFound(c, "Booking session not found");
86
87
  }
@@ -90,7 +91,7 @@ export const publicBookingRoutes = new Hono()
90
91
  return c.json({ data: result.session });
91
92
  })
92
93
  .post("/sessions/:sessionId/expire", async (c) => {
93
- const result = await publicBookingsService.expireSession(c.get("db"), c.req.param("sessionId"), publicBookingSessionMutationSchema.parse(await c.req.json()), c.get("userId"));
94
+ const result = await publicBookingsService.expireSession(c.get("db"), c.req.param("sessionId"), await parseJsonBody(c, publicBookingSessionMutationSchema), c.get("userId"));
94
95
  if (result.status === "not_found") {
95
96
  return notFound(c, "Booking session not found");
96
97
  }
@@ -100,6 +101,6 @@ export const publicBookingRoutes = new Hono()
100
101
  return c.json({ data: result.session });
101
102
  })
102
103
  .get("/overview", async (c) => {
103
- const overview = await publicBookingsService.getOverview(c.get("db"), publicBookingOverviewLookupQuerySchema.parse(Object.fromEntries(new URL(c.req.url).searchParams)));
104
+ const overview = await publicBookingsService.getOverview(c.get("db"), await parseQuery(c, publicBookingOverviewLookupQuerySchema));
104
105
  return overview ? c.json({ data: overview }) : notFound(c, "Booking overview not found");
105
106
  });
@@ -1,3 +1,4 @@
1
+ import type { ModuleContainer } from "@voyantjs/core";
1
2
  import type { PostgresJsDatabase } from "drizzle-orm/postgres-js";
2
3
  import type { Context } from "hono";
3
4
  export type KmsBindings = Partial<{
@@ -22,6 +23,7 @@ export type KmsBindings = Partial<{
22
23
  export type Env = {
23
24
  Bindings: KmsBindings;
24
25
  Variables: {
26
+ container?: ModuleContainer;
25
27
  db: PostgresJsDatabase;
26
28
  userId?: string;
27
29
  actor?: "staff" | "customer" | "partner" | "supplier";
@@ -1 +1 @@
1
- {"version":3,"file":"routes-shared.d.ts","sourceRoot":"","sources":["../src/routes-shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AACjE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC;IAChC,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,yBAAyB,EAAE,MAAM,CAAA;IACjC,eAAe,EAAE,MAAM,CAAA;IACvB,eAAe,EAAE,MAAM,CAAA;IACvB,gBAAgB,EAAE,MAAM,CAAA;IACxB,uBAAuB,EAAE,MAAM,CAAA;IAC/B,6BAA6B,EAAE,MAAM,CAAA;IACrC,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB,EAAE,MAAM,CAAA;IACzB,qBAAqB,EAAE,MAAM,CAAA;IAC7B,iBAAiB,EAAE,MAAM,CAAA;IACzB,gBAAgB,EAAE,MAAM,CAAA;IACxB,qBAAqB,EAAE,MAAM,CAAA;IAC7B,2BAA2B,EAAE,MAAM,CAAA;CACpC,CAAC,CAAA;AAEF,MAAM,MAAM,GAAG,GAAG;IAChB,QAAQ,EAAE,WAAW,CAAA;IACrB,SAAS,EAAE;QACT,EAAE,EAAE,kBAAkB,CAAA;QACtB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,KAAK,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,CAAA;QACrD,UAAU,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,CAAA;QAC/C,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;QACxB,iBAAiB,CAAC,EAAE,OAAO,CAAA;QAC3B,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE;YAC3B,EAAE,EAAE,kBAAkB,CAAA;YACtB,MAAM,CAAC,EAAE,MAAM,CAAA;YACf,KAAK,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,CAAA;YACrD,UAAU,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,CAAA;YAC/C,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;YACxB,iBAAiB,CAAC,EAAE,OAAO,CAAA;YAC3B,SAAS,EAAE,MAAM,CAAA;YACjB,aAAa,EAAE,MAAM,CAAA;YACrB,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAA;SACrC,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;KACjC,CAAA;CACF,CAAA;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;EAY5C;AAED,wBAAgB,QAAQ,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM;;gBAEnE"}
1
+ {"version":3,"file":"routes-shared.d.ts","sourceRoot":"","sources":["../src/routes-shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AACjE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC;IAChC,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,yBAAyB,EAAE,MAAM,CAAA;IACjC,eAAe,EAAE,MAAM,CAAA;IACvB,eAAe,EAAE,MAAM,CAAA;IACvB,gBAAgB,EAAE,MAAM,CAAA;IACxB,uBAAuB,EAAE,MAAM,CAAA;IAC/B,6BAA6B,EAAE,MAAM,CAAA;IACrC,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB,EAAE,MAAM,CAAA;IACzB,qBAAqB,EAAE,MAAM,CAAA;IAC7B,iBAAiB,EAAE,MAAM,CAAA;IACzB,gBAAgB,EAAE,MAAM,CAAA;IACxB,qBAAqB,EAAE,MAAM,CAAA;IAC7B,2BAA2B,EAAE,MAAM,CAAA;CACpC,CAAC,CAAA;AAEF,MAAM,MAAM,GAAG,GAAG;IAChB,QAAQ,EAAE,WAAW,CAAA;IACrB,SAAS,EAAE;QACT,SAAS,CAAC,EAAE,eAAe,CAAA;QAC3B,EAAE,EAAE,kBAAkB,CAAA;QACtB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,KAAK,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,CAAA;QACrD,UAAU,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,CAAA;QAC/C,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;QACxB,iBAAiB,CAAC,EAAE,OAAO,CAAA;QAC3B,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE;YAC3B,EAAE,EAAE,kBAAkB,CAAA;YACtB,MAAM,CAAC,EAAE,MAAM,CAAA;YACf,KAAK,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,CAAA;YACrD,UAAU,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,CAAA;YAC/C,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;YACxB,iBAAiB,CAAC,EAAE,OAAO,CAAA;YAC3B,SAAS,EAAE,MAAM,CAAA;YACjB,aAAa,EAAE,MAAM,CAAA;YACrB,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAA;SACrC,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;KACjC,CAAA;CACF,CAAA;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;EAY5C;AAED,wBAAgB,QAAQ,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM;;gBAEnE"}