From a785f74e8835314491654f73bdf6e6fd93499c45 Mon Sep 17 00:00:00 2001 From: DewanaGustavus <76590469+DewanaGustavus@users.noreply.github.com> Date: Thu, 16 Nov 2023 21:59:32 +0700 Subject: [PATCH] feat: fetch available order from SOAP --- src/handler/order/order.router.ts | 15 +++++++++++++++ src/handler/order/order.service.ts | 18 ++++++++++++++++++ src/interfaces/OrderDetail.ts | 7 +++++++ src/interfaces/OrderInterface.ts | 13 +++++++++++++ src/interfaces/OrderStatus.ts | 4 ++++ 5 files changed, 57 insertions(+) create mode 100644 src/handler/order/order.router.ts create mode 100644 src/handler/order/order.service.ts create mode 100644 src/interfaces/OrderDetail.ts create mode 100644 src/interfaces/OrderInterface.ts create mode 100644 src/interfaces/OrderStatus.ts diff --git a/src/handler/order/order.router.ts b/src/handler/order/order.router.ts new file mode 100644 index 0000000..41e41b0 --- /dev/null +++ b/src/handler/order/order.router.ts @@ -0,0 +1,15 @@ +import express from "express"; +import type { Request, Response } from "express"; + +import * as OrderServices from './order.service' + +export const OrderRouter = express.Router() + +OrderRouter.get('/available-order', async (request: Request, response: Response) => { + try { + const availableOrder = await OrderServices.getAvailableOrder(); + return response.status(200).json(availableOrder); + } catch (error: any) { + return response.status(500).json(error.message); + } +}) \ No newline at end of file diff --git a/src/handler/order/order.service.ts b/src/handler/order/order.service.ts new file mode 100644 index 0000000..9140dac --- /dev/null +++ b/src/handler/order/order.service.ts @@ -0,0 +1,18 @@ +import { getPesananNoKurir } from "../soap-caller/PesananSoapCaller"; +import OrderInterface from "../../interfaces/OrderInterface"; + +export async function getAvailableOrder() { + const response = await getPesananNoKurir(); + console.log(response); + if(response === null) { + return []; + } + + const JSONArray = Array.isArray(response) ? response : [response]; + + const availableOrder = JSONArray.map((item: any) => { + return JSON.parse(JSON.stringify(item)) as OrderInterface; + }); + + return availableOrder; +} \ No newline at end of file diff --git a/src/interfaces/OrderDetail.ts b/src/interfaces/OrderDetail.ts new file mode 100644 index 0000000..46cf530 --- /dev/null +++ b/src/interfaces/OrderDetail.ts @@ -0,0 +1,7 @@ + +export default interface OrderDetail { + id_pesanan : number + nama_produk : string + quantity : number + harga : number +} \ No newline at end of file diff --git a/src/interfaces/OrderInterface.ts b/src/interfaces/OrderInterface.ts new file mode 100644 index 0000000..39b914d --- /dev/null +++ b/src/interfaces/OrderInterface.ts @@ -0,0 +1,13 @@ +import OrderStatus from "./OrderStatus" + +export default interface OrderInterface { + alamat : string + biaya_pengiriman : number + harga : number + id : number + id_kurir : number + id_pemesan : number + keterangan : string + nama_penerima : string + status : OrderStatus +} \ No newline at end of file diff --git a/src/interfaces/OrderStatus.ts b/src/interfaces/OrderStatus.ts new file mode 100644 index 0000000..a49f958 --- /dev/null +++ b/src/interfaces/OrderStatus.ts @@ -0,0 +1,4 @@ + +type OrderStatus = 'searching_courier' | 'pickup' | 'transit' | 'delivered'; + +export default OrderStatus; \ No newline at end of file -- GitLab