Skip to content

Commit

Permalink
Add listAllOrders, changeStatus, and listUserOrders methods to orders…
Browse files Browse the repository at this point in the history
… controller and corresponding routes
  • Loading branch information
shanthi1710 committed Jun 22, 2024
1 parent 1d3ee77 commit dbf2ce8
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 1 deletion.
53 changes: 53 additions & 0 deletions src/controllers/orders.controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -125,4 +125,57 @@ export default class orders {
throw new NotFoundException("Order not found", ErrorCode.ORDER_NOT_FOUND);
}
};
public static listAllOrders = async (req: Request, res: Response) => {
let whereClause = {};
const skip = req.query.skip ? parseInt(req.query.skip as string, 10) : 0;
const status = req.query.status;
if (status) {
whereClause = {
where: whereClause,
skip: skip,
take: 5,
};
}
};
public static changeStatus = async (req: Request, res: Response) => {
//wrap it inside transaction
try {
const order = await prismaClient.order.update({
where:{
id: +req.params.id
},
data:{
status: req.body.status
}
})
await prismaClient.orderEvent.create({
data:{
orderId: order.id,
status: req.body.status
}
})
res.json(order);
} catch (error) {
throw new NotFoundException("Order not found", ErrorCode.ORDER_NOT_FOUND);
}
};
public static listUserOrders = async (req: Request, res: Response) => {
let whereClause:any={
userId: req.params.id
}
const status = req.params.status
if(status){
whereClause = {
...whereClause,
status
}
}
const skip = req.query.skip ? parseInt(req.query.skip as string, 10) : 0;
const orders = await prismaClient.order.findMany({
where: whereClause,
skip: skip,
take:5
});
res.json(orders);
};
}
6 changes: 5 additions & 1 deletion src/routes/orders.route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import { Router } from "express";
import { errorHandler } from "../error-handler";
import authMiddleware from "../middlewares/auth";
import adminMiddleware from "../middlewares/admin";
import orders from "../controllers/orders.controller";

const router:Router = Router();
Expand All @@ -10,5 +11,8 @@ router.post('/',[authMiddleware],errorHandler(orders.createOrder))
router.get('/',[authMiddleware],errorHandler(orders.listOrders))
router.put('/:id/cancel',[authMiddleware],errorHandler(orders.cancelOrder))
router.get('/:id',[authMiddleware],errorHandler(orders.getOrderById))

router.get('/index',[authMiddleware,adminMiddleware],errorHandler(orders.listAllOrders))
router.get('/users/:id',[authMiddleware,adminMiddleware],errorHandler(orders.listUserOrders))
router.put('/:id/status',[authMiddleware,adminMiddleware],errorHandler(orders.changeStatus))
router.get('/:id',[authMiddleware],errorHandler(orders.getOrderById))
export default router;

0 comments on commit dbf2ce8

Please sign in to comment.