verifyTransaction method

  1. @override
Future<Either<Failure, TransactionVerificationResult>> verifyTransaction(
  1. covariant TransactionModel transaction,
  2. Map<String, dynamic>? params
)
override

Implementation

@override
Future<Either<Failure, TransactionVerificationResult>> verifyTransaction(
  covariant TransactionModel transaction,
  Map<String, dynamic>? params,
) async {
  if (config.purchaseVerificationApiEndpoint == null) {
    return left<Failure, TransactionVerificationResult>(
      NotVerificationEndpointProvided(),
    );
  }
  return wrapAndHandleHttpBaseRequest<TransactionVerificationResult>(
    () {
      final request = http.Request(
        "POST",
        config.purchaseVerificationApiEndpoint!(transaction, params),
      )..body = transaction.transactionVerification!.toJson();
      return request;
    },
    onResponse: (response, left, right) {
      return right(
        TransactionVerificationResultModel.fromMap(
          jsonDecode(response.body)["data"],
        ),
      );
    },
    onError: (error, left, right, stackTrace) {
      return null;
    },
  );
}