feat: implement order and product models, services, and routes with validation

This commit is contained in:
2026-01-13 00:03:48 +03:00
parent 8f2477b25e
commit da428f83bc
13 changed files with 505 additions and 5 deletions
+54
View File
@@ -0,0 +1,54 @@
import { Request, Response, NextFunction } from "express";
import { OrderService } from "../services/order.service";
export class OrderController {
static async create(req: Request, res: Response, next: NextFunction) {
try {
const userId = req.user!.sub;
const { items } = req.body;
const order = await OrderService.createOrder(userId, items);
res.status(201).json(order);
} catch (err) {
next(err);
}
}
static async list(req: Request, res: Response, next: NextFunction) {
try {
const userId = req.user!.sub;
const role = req.user!.role;
const orders = await OrderService.listOrders(userId, role);
res.status(200).json(orders);
} catch (err) {
next(err);
}
}
static async pay(req: Request, res: Response, next: NextFunction) {
try {
const { id } = req.params;
const order = await OrderService.payOrder(id);
res.status(200).json(order);
} catch (err) {
next(err);
}
}
static async cancel(req: Request, res: Response, next: NextFunction) {
try {
const { id } = req.params;
const order = await OrderService.cancelOrder(id);
res.status(200).json(order);
} catch (err) {
next(err);
}
}
}