-
Notifications
You must be signed in to change notification settings - Fork 121
Expand file tree
/
Copy pathorder.ts
More file actions
46 lines (37 loc) · 1 KB
/
order.ts
File metadata and controls
46 lines (37 loc) · 1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import type { Context } from "hono";
import { getOrder, logRequest, saveOrder } from "../data/index.js";
import type { Order } from "../models";
/**
* Service for managing orders.
*/
export class OrderService {
getOrder = async (c: Context) => {
const id = c.req.param("id");
// Log Request
logRequest("GET", `/orders/${id}`, undefined, {});
const order = getOrder(id);
if (!order) {
return c.json({ error: "Order not found" }, 404);
}
return c.json(order, 200);
};
updateOrder = async (c: Context) => {
const id = c.req.param("id");
const updateRequest = await c.req.json<Order>();
// Log Request
logRequest(
"PUT",
`/orders/${id}`,
updateRequest.checkout_id,
updateRequest,
);
const existing = getOrder(id);
if (!existing) {
return c.json({ error: "Order not found" }, 404);
}
// Ensure ID matches
updateRequest.id = id;
saveOrder(id, updateRequest);
return c.json(updateRequest, 200);
};
}