From 63d73e858ab46b98a52cc69f2f24e2233f26292b Mon Sep 17 00:00:00 2001
From: Michael Utama <michaelu670@gmail.com>
Date: Fri, 17 Nov 2023 10:37:35 +0700
Subject: [PATCH] feat: topup

---
 src/components/WalletManagement/Modal.tsx       |  3 +++
 src/components/WalletManagement/TopUp/TopUp.tsx |  4 +++-
 src/utils/login.ts                              |  2 +-
 src/utils/topup.ts                              | 16 ++++++++++++++++
 4 files changed, 23 insertions(+), 2 deletions(-)
 create mode 100644 src/utils/topup.ts

diff --git a/src/components/WalletManagement/Modal.tsx b/src/components/WalletManagement/Modal.tsx
index 9b22bdf..a02e590 100644
--- a/src/components/WalletManagement/Modal.tsx
+++ b/src/components/WalletManagement/Modal.tsx
@@ -1,9 +1,12 @@
+import { topup } from '@/utils/topup';
 import React from 'react'
 import { FaWallet } from 'react-icons/fa6';
 
 function Modal({ setPopUp, handleValid, modalTitle, modalText, amount, modalTextIng, prePositionWord }) {
     const handleYesClick = () => {
         handleValid();
+        const userId = '1';
+        topup(userId, amount);
         setPopUp(false);
     };
     return (
diff --git a/src/components/WalletManagement/TopUp/TopUp.tsx b/src/components/WalletManagement/TopUp/TopUp.tsx
index 023a869..215729b 100644
--- a/src/components/WalletManagement/TopUp/TopUp.tsx
+++ b/src/components/WalletManagement/TopUp/TopUp.tsx
@@ -11,8 +11,10 @@ import BRI from '../../../assets/briva.png';
 import BNI from '../../../assets/bni.png';
 import BSI from '../../../assets/bsi.png';
 import Modal from "../Modal";
+import { topup } from "@/utils/topup";
 
 const TopUp = () => {
+    const userId = 1;
     const [balance, setBalance] = useState(1000);
     const [topUpAmount, setTopUpAmount] = useState(0);
     const [selectedPaymentMethod, setSelectedPaymentMethod] = useState('');
@@ -157,7 +159,7 @@ const TopUp = () => {
                 </div>
                 {isTopUpValid && (
                     <div>
-                        <button onClick={() => setPopUp(true)} className="flex items-center mt-5 cursor-pointer hover:bg-lightgreen text-lg mx-auto my-auto font-bold border-2 border-white text-white text-center items-center bg-darkgreen rounded-lg p-5 max-w-screen-sm">TOP-UP</button>
+                        <button onClick={() => {setPopUp(true);}} className="flex items-center mt-5 cursor-pointer hover:bg-lightgreen text-lg mx-auto my-auto font-bold border-2 border-white text-white text-center items-center bg-darkgreen rounded-lg p-5 max-w-screen-sm">TOP-UP</button>
                         {popUp && <Modal setPopUp={setPopUp} handleValid={handleTopUpValid} modalTitle={"TOP-UP"} modalText={"top-up"} amount={`${topUpAmount}`} modalTextIng={"top-up"} prePositionWord={"to"}/>} 
                     </div>
                 )}
diff --git a/src/utils/login.ts b/src/utils/login.ts
index ef5b9df..0d4026c 100644
--- a/src/utils/login.ts
+++ b/src/utils/login.ts
@@ -4,7 +4,7 @@ import { setCookie, getCookie } from "cookies-next";
 
 export const login = async (username: string, password: string) => {
     const res = await axios.post (
-        REST_BASE_URL + '/user/login',
+        REST_BASE_URL + '/login',
         {
             username: username,
             password: password,
diff --git a/src/utils/topup.ts b/src/utils/topup.ts
new file mode 100644
index 0000000..9193e3a
--- /dev/null
+++ b/src/utils/topup.ts
@@ -0,0 +1,16 @@
+import { REST_BASE_URL } from "@/constant/constants"
+import axios from "axios";
+
+export const topup = async (userId: string, amount: number) => {
+    const res = await axios.post(
+        REST_BASE_URL + '/topup/' + userId,
+        {
+            amount: amount
+        }
+    );
+
+
+    return {
+        ok: res.data.success
+    };
+}
\ No newline at end of file
-- 
GitLab