From f3ae5ca791586f75bb7ff1883648c4d3737da72b Mon Sep 17 00:00:00 2001 From: Prince Date: Wed, 17 Jun 2026 21:35:15 +0200 Subject: [PATCH] minor fixes on status responses --- lib/screens/gateway/gateway_controller.dart | 8 ++++---- lib/screens/groups/controllers/batch_controller.dart | 6 ++---- lib/screens/groups/screens/batch_create_screen.dart | 3 ++- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/lib/screens/gateway/gateway_controller.dart b/lib/screens/gateway/gateway_controller.dart index d40d29d..f303adf 100644 --- a/lib/screens/gateway/gateway_controller.dart +++ b/lib/screens/gateway/gateway_controller.dart @@ -57,7 +57,7 @@ class GatewayController extends ChangeNotifier { dynamic response = workflowResponse['body']; - model.status = response['status']; + model.status = response['pollingStatus']; transactionController.model.paymentStatus = response['paymentStatus']; finishLoading(); @@ -83,7 +83,7 @@ class GatewayController extends ChangeNotifier { } Future>> pollTransaction(String uid) async { - // poll up to 30 times (~5 minutes at 10-second intervals) + // poll up to 15 times (~45 seconds at 3-second intervals) int maxAttempts = 15; int attempt = 0; @@ -100,12 +100,12 @@ class GatewayController extends ChangeNotifier { return result; } - await Future.delayed(const Duration(seconds: 10)); + await Future.delayed(const Duration(seconds: 3)); if (model.isCancelled) break; // Otherwise (e.g. PENDING), continue polling } else { - await Future.delayed(const Duration(seconds: 10)); + await Future.delayed(const Duration(seconds: 3)); if (model.isCancelled) break; // Network error — show failure UI and stop diff --git a/lib/screens/groups/controllers/batch_controller.dart b/lib/screens/groups/controllers/batch_controller.dart index 07e69b5..4a7e05f 100644 --- a/lib/screens/groups/controllers/batch_controller.dart +++ b/lib/screens/groups/controllers/batch_controller.dart @@ -141,9 +141,7 @@ class BatchController extends ChangeNotifier { if (!_disposed) notifyListeners(); try { - final raw = await http.get( - '/public/providers/$providerId/products', - ); + final raw = await http.get('/public/providers/$providerId/products'); final response = _unwrap(raw); final List list = response is List ? response @@ -562,7 +560,7 @@ class BatchController extends ChangeNotifier { ); model.isActing = false; if (!_disposed) notifyListeners(); - if (response['status'] != 'FAILED') { + if (batchTransaction.pollingStatus == 'SUCCESS') { return ApiResponse.success(batchTransaction); } else { return ApiResponse.failure( diff --git a/lib/screens/groups/screens/batch_create_screen.dart b/lib/screens/groups/screens/batch_create_screen.dart index eb6b74b..d80093f 100644 --- a/lib/screens/groups/screens/batch_create_screen.dart +++ b/lib/screens/groups/screens/batch_create_screen.dart @@ -245,7 +245,7 @@ class _BatchCreateScreenState extends State { Row( children: [ Expanded( - flex: 2, + flex: 1, child: TextFormField( controller: _amountController, readOnly: providerController @@ -279,6 +279,7 @@ class _BatchCreateScreenState extends State { ), const SizedBox(width: 12), Expanded( + flex: 1, child: TextFormField( controller: _debitPhoneController, keyboardType: TextInputType.phone,