walletService.tsx 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import axios from 'axios';
  2. import { EXPO_PUBLIC_API_URL } from '@env';
  3. class WalletService {
  4. private apiUrl: string;
  5. constructor() {
  6. this.apiUrl = EXPO_PUBLIC_API_URL;
  7. if (!this.apiUrl) {
  8. throw new Error('API URL is not defined in environment variables');
  9. }
  10. }
  11. async getWalletBalance(token: string | null) {
  12. try {
  13. const response = await axios.get(
  14. `${this.apiUrl}/clients/customer/wallet`,
  15. {
  16. headers: {
  17. Authorization: `Bearer ${token}`
  18. }
  19. }
  20. );
  21. if (response.status === 200) {
  22. const walletBalance = response.data.data;
  23. // console.log(`i am wallet balance`, walletBalance)
  24. // console.log('getWalletBalance successful!');
  25. return walletBalance;
  26. } else {
  27. console.error('getWalletBalance failed:', response.status);
  28. return false;
  29. }
  30. } catch (error) {
  31. if (axios.isAxiosError(error)) {
  32. console.error(
  33. 'getWallet error:',
  34. error.response?.data?.message || error.message
  35. );
  36. } else {
  37. console.error('An unexpected error occurred:', error);
  38. }
  39. return false;
  40. }
  41. }
  42. // async logout() {
  43. // await SecureStore.deleteItemAsync('accessToken');
  44. // console.log('log out successfully, accessToken deleted');
  45. // }
  46. }
  47. export const walletService = new WalletService();