import 'dart:convert'; import 'package:http/http.dart' as http; import 'package:shared_preferences/shared_preferences.dart'; import '../config/constants/app_constant.dart'; import '../models/WalletTransaction_model.dart'; import '../models/Wallet_model.dart'; import '../providers/utils_singleton.dart'; class WalletService { Future fetchWallet() async { print("data 11 ${utils.token}"); var uri = Uri.https(baseUrl, '/api/wallet/my-wallet'); final response = await http.get( uri, headers: { 'Authorization': 'Bearer ${utils.token}', 'Content-Type': 'application/json', 'Accept': 'application/json', }, ); if (response.statusCode == 200) { final data = json.decode(response.body); print("data $data"); // Simple fix: Use data directly since API returns wallet object directly return Wallet.fromJson(data); } else { throw Exception('Failed to load wallet: ${response.statusCode}'); } } Future> fetchWalletTransactions( {int page = 0, int size = 20}) async { var uri = Uri.https(baseUrl, '/api/wallet/transactions', { 'page': page.toString(), 'size': size.toString(), }); final response = await http.get( uri, headers: { 'Authorization': 'Bearer ${utils.token}', 'Content-Type': 'application/json', 'Accept': 'application/json', }, ); if (response.statusCode == 200) { final data = json.decode(response.body); List transactionsJson = data['result']; return transactionsJson .map((json) => WalletTransaction.fromJson(json)) .toList(); } else { throw Exception('Failed to load wallet transactions'); } } }