Skip to content
Snippets Groups Projects
Commit a93532e8 authored by Fikri Naufal Hamdi's avatar Fikri Naufal Hamdi
Browse files

feat: add api for inserting a bulk of order_product

parent 25d8a744
Branches
Tags
3 merge requests!50feat: merge with master,!43feat(UC04): merge with develop,!38feat: merge to add api for inserting a bulk of order_product
......@@ -24,6 +24,37 @@ class OrderProductController {
}
}
async createOrderProductBulk(req: Request, res: Response) {
try {
const newOrderProducts = req.body.map(
(orderProduct: OrderProduct) => {
const newOrderProduct = new OrderProduct();
newOrderProduct.id_order = orderProduct.id_order;
newOrderProduct.id_product = orderProduct.id_product;
newOrderProduct.num_product = orderProduct.num_product;
return newOrderProduct;
},
);
console.log(newOrderProducts);
await new OrderProductRepo().createOrderProductBulk(
newOrderProducts,
);
res.status(201).json({
status: "Created!",
message: "Successfully created order product batch!",
});
} catch (error) {
console.log(error);
res.status(500).json({
status: "Internal Server Error!",
message: "Internal Server Error!",
});
}
}
async deleteOrderProduct(req: Request, res: Response) {
try {
const id_order = parseInt(req.params["id_order"]);
......
......@@ -76,6 +76,28 @@ export default class OrderProductRepo implements IOrderProductRepo {
}
}
async createOrderProductBulk(
orderProducts: readonly Partial<OrderProduct>[],
): Promise<void> {
try {
console.log(orderProducts);
const newOrderProducts = orderProducts.map(
(orderProduct: Partial<OrderProduct>) => {
return {
id_order: orderProduct.id_order,
id_product: orderProduct.id_product,
num_product: orderProduct.num_product,
};
},
);
await OrderProduct.bulkCreate(newOrderProducts);
} catch (error: any) {
throw new Error(
`Error while creating order product batch: ${error.message}`,
);
}
}
async updateOrderProduct(orderProduct: OrderProduct): Promise<void> {
try {
const existingOrderProduct = await OrderProduct.findOne({
......
......@@ -14,6 +14,10 @@ class OrderProductRoutes extends BaseRoutes {
validate(createOrderProductSchema),
OrderProductController.createOrderProduct,
);
this.router.post(
"/bulk",
OrderProductController.createOrderProductBulk,
);
this.router.patch(
"/:orderId/:productId",
validate(updateOrderProductSchema),
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment