diff --git a/src/handler/order/order.router.ts b/src/handler/order/order.router.ts new file mode 100644 index 0000000000000000000000000000000000000000..41e41b0539f4088cad44d2f35140bcdaddf85252 --- /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 0000000000000000000000000000000000000000..9140dac1ed03a4ee802b2fc6efe06b124bff9a72 --- /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 0000000000000000000000000000000000000000..46cf53060e1c2400bdf37ead9dd0ecfe0edb2b81 --- /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 0000000000000000000000000000000000000000..39b914dfcc7751a15bf9b1e940e440af69ee8f4a --- /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 0000000000000000000000000000000000000000..a49f9585cb85e6386385958d13025693cb168f2e --- /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