checkStatusTransaction method

  1. @override
Future<Either<NetworkError, DefaultNetworkResponse<DigitalpayeResponsePayment>>> checkStatusTransaction({
  1. required String transactionId,
  2. required String token,
})
override

Implementation

@override
Future<
        Either<NetworkError,
            DefaultNetworkResponse<DigitalpayeResponsePayment>>>
    checkStatusTransaction(
        {required String transactionId, required String token}) async {
  try {
    final url = config.isSandbox
        ? Constantes.apiUrlSandbox
        : '${Constantes.apiUrlProd}/${Constantes.versionApp}/get-status-payment/$transactionId';
    final response = await http.get(
      Uri.parse(url),
      headers: {
        'Authorization': 'Bearer $token',
        'Content-Type': 'application/json',
      },
    );
    if (response.statusCode == 200 ||
        response.statusCode == 201 ||
        response.statusCode == 202) {
      final data = jsonDecode(response.body);
      return Right(
        DefaultNetworkResponse(
          codeStatus: data["code_status"],
          status: data["status"],
          data: DigitalpayeResponsePayment.fromJson(data["data"]),
        ),
      );
    } else {
      final data = jsonDecode(response.body);
      return Left(NetworkError(
        codeStatus: data["code_status"],
        status: data["status"],
        message:
            EnumResponseNetwork.from(value: data["message"]).localizableValue,
      ));
    }
  } catch (e) {
    // Gérer les erreurs
    return Left(NetworkError(
      message: EnumResponseNetwork.from(value: e.toString()).localizableValue,
    ));
  }
}