walletService.tsx 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. import axios from 'axios';
  2. import * as SecureStore from 'expo-secure-store';
  3. import { EXPO_PUBLIC_API_URL } from '@env';
  4. class WalletService {
  5. private apiUrl: string;
  6. constructor() {
  7. this.apiUrl = EXPO_PUBLIC_API_URL;
  8. if (!this.apiUrl) {
  9. throw new Error('API URL is not defined in environment variables');
  10. }
  11. }
  12. async getCoupon() {
  13. try {
  14. const response = await axios.get(
  15. `${this.apiUrl}/clients/promotion/coupons`,
  16. {
  17. headers: {
  18. Authorization: `Bearer ${await SecureStore.getItemAsync(
  19. 'accessToken'
  20. )}`
  21. }
  22. }
  23. );
  24. if (response.status === 200) {
  25. console.log('getCoupon successful!');
  26. return response.data;
  27. } else {
  28. console.log('getCoupon failed:', response.status);
  29. }
  30. } catch (error) {
  31. console.log(error);
  32. }
  33. }
  34. async getWalletBalance() {
  35. try {
  36. const response = await axios.get(
  37. `${this.apiUrl}/clients/customer/wallet`,
  38. {
  39. headers: {
  40. Authorization: `Bearer ${await SecureStore.getItemAsync(
  41. 'accessToken'
  42. )}`
  43. }
  44. }
  45. );
  46. if (response.status === 200) {
  47. const walletBalance = response.data.data;
  48. // console.log(`i am wallet balance`, walletBalance)
  49. // console.log('getWalletBalance successful!');
  50. return walletBalance;
  51. } else {
  52. console.error('getWalletBalance failed:', response.status);
  53. return false;
  54. }
  55. } catch (error) {
  56. if (axios.isAxiosError(error)) {
  57. console.error(
  58. 'getWallet error:',
  59. error.response?.data?.message || error.message
  60. );
  61. } else {
  62. console.error('An unexpected error occurred:', error);
  63. }
  64. return false;
  65. }
  66. }
  67. // async logout() {
  68. // await SecureStore.deleteItemAsync('accessToken');
  69. // console.log('log out successfully, accessToken deleted');
  70. // }
  71. }
  72. export const walletService = new WalletService();