1import { Router } from 'express';
2import { db } from '../db';
3import { requireLogin } from '../auth';
4import { pay } from '../billing';
5export const router = Router();
6
7router.get('/checkout', requireLogin, async (req, res) => {
8 const orders = await db.order.findMany({
9 where: { userId: req.user.id },
10 });
11 res.render('checkout', { orders });
12});
13
14router.get('/api/order/:id', requireLogin, async (req, res) => {
15 const order = await db.order.findUnique({
16 where: { id: Number(req.params.id) },
17 });
18 if (!order) return res.status(404).end();
19 res.json(order);
20});
21
22router.post('/api/order/:id/pay', requireLogin, async (req, res) => {
23 const order = await db.order.findFirst({
24 where: { id: Number(req.params.id), userId: req.user.id },
25 });
26 if (!order) return res.status(404).end();
27 res.json(await pay(order));
28});