From d51302dc639292e9c6e32e3c43207faa4bdda275 Mon Sep 17 00:00:00 2001 From: DewanaGustavus <76590469+DewanaGustavus@users.noreply.github.com> Date: Thu, 16 Nov 2023 23:36:24 +0700 Subject: [PATCH] feat: fetching order detail --- src/handler/order/order.router.ts | 19 ++++++++++++++++++- src/handler/order/order.service.ts | 27 ++++++++++++++++----------- src/interfaces/OrderDetail.ts | 2 +- 3 files changed, 35 insertions(+), 13 deletions(-) diff --git a/src/handler/order/order.router.ts b/src/handler/order/order.router.ts index 41e41b0..05cdfc0 100644 --- a/src/handler/order/order.router.ts +++ b/src/handler/order/order.router.ts @@ -12,4 +12,21 @@ OrderRouter.get('/available-order', async (request: Request, response: Response) } catch (error: any) { return response.status(500).json(error.message); } -}) \ No newline at end of file +}) +OrderRouter.get('/order/:id', async (request: Request, response: Response) => { + try { + const order = await OrderServices.getOrderById(parseInt(request.params.id)); + return response.status(200).json(order); + } catch (error: any) { + return response.status(500).json(error.message); + } +}) + +OrderRouter.get('/order-details/:id', async (request: Request, response: Response) => { + try { + const orderDetails = await OrderServices.getOrderDetails(parseInt(request.params.id)); + return response.status(200).json(orderDetails); + } catch (error: any) { + return response.status(500).json(error.message); + } +}) diff --git a/src/handler/order/order.service.ts b/src/handler/order/order.service.ts index 9140dac..883b9a4 100644 --- a/src/handler/order/order.service.ts +++ b/src/handler/order/order.service.ts @@ -1,18 +1,23 @@ -import { getPesananNoKurir } from "../soap-caller/PesananSoapCaller"; +import { getPesananByIdPesanan, getPesananNoKurir } from "../soap-caller/PesananSoapCaller"; import OrderInterface from "../../interfaces/OrderInterface"; +import { getDetailPesanan } from "../soap-caller/DetailPesananSoapCaller"; +import OrderDetail from "../../interfaces/OrderDetail"; +import { ConvertArray, ConvertSingle } from "../../utils/JSONConverter"; export async function getAvailableOrder() { const response = await getPesananNoKurir(); - console.log(response); - if(response === null) { - return []; - } - - const JSONArray = Array.isArray(response) ? response : [response]; + const availableOrder = ConvertArray<OrderInterface>(response); + return availableOrder; +} - const availableOrder = JSONArray.map((item: any) => { - return JSON.parse(JSON.stringify(item)) as OrderInterface; - }); +export async function getOrderById(orderId : number) { + const response = await getPesananByIdPesanan(orderId); + const order = ConvertSingle(response); + return order; +} - return availableOrder; +export async function getOrderDetails(orderId : number) { + const response = await getDetailPesanan(orderId); + const orderDetails = ConvertArray<OrderDetail>(response); + return orderDetails; } \ No newline at end of file diff --git a/src/interfaces/OrderDetail.ts b/src/interfaces/OrderDetail.ts index 46cf530..b6e98d5 100644 --- a/src/interfaces/OrderDetail.ts +++ b/src/interfaces/OrderDetail.ts @@ -1,7 +1,7 @@ export default interface OrderDetail { id_pesanan : number - nama_produk : string + nama_product : string quantity : number harga : number } \ No newline at end of file -- GitLab