Selaa lähdekoodia

created getwallet api

Ian Fung 1 vuosi sitten
vanhempi
commit
25f3b6690e

+ 4 - 0
component/accountPages/changePasswordPageComponent.tsx

@@ -8,6 +8,8 @@ import NormalInput from '../global/normal_input';
 import NormalButton from '../global/normal_button';
 import * as SecureStore from 'expo-secure-store';
 import { authenticationService } from '../../service/authService';
+import { get } from 'react-native/Libraries/TurboModule/TurboModuleRegistry';
+import { walletService } from '../../service/walletService';
 
 const changePasswordPageComponent = () => {
     const { user, setUser } = useContext(AuthContext);
@@ -31,6 +33,8 @@ const changePasswordPageComponent = () => {
         getToken();
     }, []);
 
+  
+
     const handleVerifyPassword = async (currentPassword: string) => {
         try {
             setIsLoading(true);

+ 25 - 3
component/accountPages/walletPageComponent.tsx

@@ -8,7 +8,9 @@ import {
 import { SafeAreaView } from 'react-native-safe-area-context';
 import { router } from 'expo-router';
 import { CrossLogoSvg } from '../global/SVG';
-
+import { useEffect, useState } from 'react';
+import * as SecureStore from 'expo-secure-store';
+import { walletService } from '../../service/walletService';
 const coupons = [
     {
         title: '迎新優惠券',
@@ -89,7 +91,27 @@ export const IndividualCouponComponent = ({
 );
 
 const WalletPageComponent = () => {
-    const image = { uri: 'https://legacy.reactjs.org/logo-og.png' };
+    const [token, setToken] = useState<string | null>(null);
+    const [walletBalance, setWalletBalance] = useState<string | null>(null);
+    useEffect(() => {
+        const getToken = async () => {
+            const storedToken = await SecureStore.getItemAsync('accessToken');
+            setToken(storedToken);
+        };
+        getToken();
+    }, []);
+
+    useEffect(() => {
+        const fetchWalletBalance = async () => {
+            if (token) {
+                const balance = await walletService.getWalletBalance(token);
+                setWalletBalance(balance);
+            }
+        };
+        fetchWalletBalance();
+    }, [token]);
+
+
 
     return (
         <SafeAreaView
@@ -130,7 +152,7 @@ const WalletPageComponent = () => {
                                         style={{ fontSize: 52 }}
                                         className=" text-white font-bold"
                                     >
-                                        $2711.8
+                                        {walletBalance}
                                     </Text>
                                     <Pressable
                                         className="rounded-2xl items-center justify-center p-3 px-5 pr-6 "

+ 53 - 0
service/walletService.tsx

@@ -0,0 +1,53 @@
+import axios from 'axios';
+
+import { EXPO_PUBLIC_API_URL } from '@env';
+
+class WalletService {
+    private apiUrl: string;
+
+    constructor() {
+        this.apiUrl = EXPO_PUBLIC_API_URL;
+        if (!this.apiUrl) {
+            throw new Error('API URL is not defined in environment variables');
+        }
+    }
+
+    async getWalletBalance(token: string | null) {
+        try {
+            const response = await axios.get(
+                `${this.apiUrl}/clients/customer/wallet`,
+                {
+                    headers: {
+                        Authorization: `Bearer ${token}`
+                    }
+                }
+            );
+            if (response.status === 200) {
+                const walletBalance = response.data.data;
+                // console.log(`i am wallet balance`, walletBalance)
+                // console.log('getWalletBalance successful!');
+
+                return walletBalance;
+            } else {
+                console.error('getWalletBalance failed:', response.status);
+                return false;
+            }
+        } catch (error) {
+            if (axios.isAxiosError(error)) {
+                console.error(
+                    'getWallet error:',
+                    error.response?.data?.message || error.message
+                );
+            } else {
+                console.error('An unexpected error occurred:', error);
+            }
+            return false;
+        }
+    }
+
+    // async logout() {
+    //     await SecureStore.deleteItemAsync('accessToken');
+    //     console.log('log out successfully, accessToken deleted');
+    // }
+}
+export const walletService = new WalletService();