first commit
This commit is contained in:
62
lib/Screens/all_transaction/repo/transaction_repo.dart
Normal file
62
lib/Screens/all_transaction/repo/transaction_repo.dart
Normal file
@@ -0,0 +1,62 @@
|
||||
import 'dart:convert';
|
||||
import 'package:http/http.dart' as http;
|
||||
import '../../../Const/api_config.dart';
|
||||
import '../../../http_client/customer_http_client_get.dart';
|
||||
import '../model/transaction_model.dart';
|
||||
|
||||
class TransactionRepo {
|
||||
Future<TransactionModel> fetchTransactionList({
|
||||
required String duration,
|
||||
String? fromDate,
|
||||
String? toDate,
|
||||
String? platform,
|
||||
int? partyId,
|
||||
}) async {
|
||||
try {
|
||||
final client = CustomHttpClientGet(client: http.Client());
|
||||
final List<String> queryList = [];
|
||||
|
||||
// Add required duration parameter
|
||||
queryList.add('duration=$duration');
|
||||
|
||||
// Add date parameters only if duration is custom_date
|
||||
if (duration == 'custom_date') {
|
||||
if (fromDate != null && fromDate.isNotEmpty) {
|
||||
queryList.add('from_date=$fromDate');
|
||||
}
|
||||
if (toDate != null && toDate.isNotEmpty) {
|
||||
queryList.add('to_date=$toDate');
|
||||
}
|
||||
}
|
||||
|
||||
// Add platform filter if specified and not "all_transaction"
|
||||
if (platform != null && platform.isNotEmpty && platform != 'all_transaction') {
|
||||
queryList.add('platform=$platform');
|
||||
}
|
||||
|
||||
// Add party filter if specified
|
||||
if (partyId != null) {
|
||||
queryList.add('party_id=$partyId');
|
||||
}
|
||||
|
||||
final uri = Uri.parse(
|
||||
'${APIConfig.url}/transactions?${queryList.join('&')}',
|
||||
);
|
||||
|
||||
print('Fetching transactions from: $uri'); // Debug print
|
||||
|
||||
final response = await client.get(url: uri);
|
||||
|
||||
if (response.statusCode == 200) {
|
||||
final jsonData = jsonDecode(response.body);
|
||||
return TransactionModel.fromJson(jsonData);
|
||||
} else {
|
||||
print('API Error: ${response.statusCode} - ${response.body}');
|
||||
throw Exception('Failed to fetch transactions: ${response.statusCode}');
|
||||
}
|
||||
} catch (e) {
|
||||
print('TransactionRepo error: $e');
|
||||
throw Exception('Failed to fetch transactions: $e');
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user