From 1dd1d6a84e0a5d6cac261a43032e4817c6db0c08 Mon Sep 17 00:00:00 2001
From: DewanaGustavus <76590469+DewanaGustavus@users.noreply.github.com>
Date: Thu, 16 Nov 2023 23:54:52 +0700
Subject: [PATCH] feat: picked order page

---
 src/api/Order.ts                | 11 ++++++
 src/interfaces/UserInterface.ts |  1 +
 src/pages/PickedOrder.tsx       | 59 ++++++++++-----------------------
 src/utils/Order.ts              | 19 +++++++----
 4 files changed, 42 insertions(+), 48 deletions(-)

diff --git a/src/api/Order.ts b/src/api/Order.ts
index e40bedb..8d2b175 100644
--- a/src/api/Order.ts
+++ b/src/api/Order.ts
@@ -37,3 +37,14 @@ export async function fetchOrderDetails(orderId : number) {
     }
 }
 
+export async function fetchOrderByCourier(courierId : number) {
+    try {
+        const API_URL = REST_URL + "/order/order-courier/" + courierId;
+        const response = await axios.get<OrderDetail[]>(API_URL);
+        return response;
+    } catch(err) {
+        alert(err);
+        throw err;
+    }
+}
+
diff --git a/src/interfaces/UserInterface.ts b/src/interfaces/UserInterface.ts
index f2a6986..4a1de14 100644
--- a/src/interfaces/UserInterface.ts
+++ b/src/interfaces/UserInterface.ts
@@ -1,5 +1,6 @@
 
 export default interface UserInterface {
+    id : number
     username : string
     name : string
     email : string
diff --git a/src/pages/PickedOrder.tsx b/src/pages/PickedOrder.tsx
index f334a6a..076b25b 100644
--- a/src/pages/PickedOrder.tsx
+++ b/src/pages/PickedOrder.tsx
@@ -4,51 +4,28 @@ import {
   Stack,
 } from '@chakra-ui/react'
 import OrderInterface from '../interfaces/OrderInterface';
-import { useState } from 'react'
+import { useEffect, useState } from 'react'
 import PickedOrderCard from '../components/PickedOrderCard';
+import { getOrderByCourier } from '../utils/Order';
+import { getUser } from '../utils/LocalStorage';
+import { getUserDetail } from '../utils/Profile';
 
-// TODO : fetch data from SOAP
-const dummyData : OrderInterface[] = [
-  {
-    alamat : "jl. imam bonjol no.69",
-    nama_penerima : "ukin",
-    biaya_pengiriman : 100,
-    keterangan : "dimas lagi main sama mas ukin"
-  },
-  {
-    alamat : "bullet",
-    nama_penerima : "ishraul",
-    biaya_pengiriman : 1111,
-    keterangan : "aku butuh peluru"
-  },
-  {
-    alamat : "jl.ngawi",
-    nama_penerima : "rusdi",
-    biaya_pengiriman : 69,
-    keterangan : "aku akan datang"
-  },
-  {
-    alamat : "jl.ngawi",
-    nama_penerima : "rusdi",
-    biaya_pengiriman : 69,
-    keterangan : "aku akan datang"
-  },
-  {
-    alamat : "jl.ngawi",
-    nama_penerima : "rusdi",
-    biaya_pengiriman : 69,
-    keterangan : "aku akan datang"
-  },
-  {
-    alamat : "jl.ngawi",
-    nama_penerima : "rusdi",
-    biaya_pengiriman : 69,
-    keterangan : "aku akan datang"
-  }
-];
 
 export default function PickedOrder() {
-  const [orders, setOrders] = useState<OrderInterface[]>(dummyData);
+  const username = getUser();
+  const [orders, setOrders] = useState<OrderInterface[]>([]);
+
+  useEffect(() => {
+    getUserDetail(username ? username : "").then(
+      (userDetail) => {
+        const response = getOrderByCourier(userDetail.data.id);
+        response.then((orders) => {
+          console.log(orders.data);
+          setOrders(orders.data);
+        });
+      }
+    );
+  }, []);
 
   return (
     <Box
diff --git a/src/utils/Order.ts b/src/utils/Order.ts
index 63a48a6..d71de5c 100644
--- a/src/utils/Order.ts
+++ b/src/utils/Order.ts
@@ -1,16 +1,21 @@
-import { fetchAvailableOrder, fetchOrderById, fetchOrderDetails } from "../api/Order";
+import { fetchAvailableOrder, fetchOrderByCourier, fetchOrderById, fetchOrderDetails } from "../api/Order";
 
 export async function getAvailableOrder() {
-    const userDetail = await fetchAvailableOrder();
-    return userDetail;
+    const availableOrders = await fetchAvailableOrder();
+    return availableOrders;
 }
 
 export async function getOrderById(orderId : number) {
-    const userDetail = await fetchOrderById(orderId);
-    return userDetail;
+    const order = await fetchOrderById(orderId);
+    return order;
 }
 
 export async function getOrderDetails(orderId : number) {
-    const userDetail = await fetchOrderDetails(orderId);
-    return userDetail;
+    const orderDetails = await fetchOrderDetails(orderId);
+    return orderDetails;
+}
+
+export async function getOrderByCourier(courierId : number) {
+    const orders = await fetchOrderByCourier(courierId);
+    return orders;
 }
\ No newline at end of file
-- 
GitLab