fetchFeeAmount method

  1. @action
Future<ValueResult<DepositRequestFeeResponse>> fetchFeeAmount(
  1. String depositRequestId,
  2. double amount,
  3. PaymentMethodType selectedMethod
)

Implementation

@action
Future<ValueResult<DepositRequestFeeResponse>> fetchFeeAmount(
  String depositRequestId,
  double amount,
  PaymentMethodType selectedMethod,
) async {
  setLoading(true);
  clearError();

  try {
    final result = await _checkoutService.getDepositRequestFee(
      depositRequestId,
      selectedMethod,
    );
    if (result.isError) {
      setError(result.error);
      return result;
    }

    final feeResponse = result.value;
    if (feeResponse == null) {
      setError('Valor da taxa indisponível.');
      return ValueResult.failure('Valor da taxa indisponível.');
    }

    final currentFee = feeResponse.feeAmount ?? 0;
    setFeeAmount(currentFee);
    setTotalAmount(amount + currentFee);
    return result;
  } catch (e) {
    setError(e.toString());
    return ValueResult.failure(e.toString());
  } finally {
    setLoading(false);
  }
}