All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.braintreegateway.ReportGateway Maven / Gradle / Ivy

The newest version!
package com.braintreegateway;

import com.braintreegateway.util.GraphQLClient;
import com.braintreegateway.util.Http;
import java.io.IOException;
import java.text.ParseException;
import java.util.Map;

/**
 * Provides methods to interact with reports.
 * This class does not need to be instantiated directly.
 * Instead, use {@link BraintreeGateway#transaction()} to get an instance of this class:
 *
 * 
 * BraintreeGateway gateway = new BraintreeGateway(...);
 * gateway.report().transactionLevelFees(...)
 * 
*/ public class ReportGateway { private Http http; private GraphQLClient graphQLClient; private Configuration configuration; private static final String TRANSACTION_LEVEL_FEES_QUERY = "query TransactionLevelFeeReport($date: Date!, $merchantAccountId: ID) {" + " report {" + " transactionLevelFees(date: $date, merchantAccountId: $merchantAccountId) {" + " url" + " }" + " }" + "}"; public ReportGateway(Http http, GraphQLClient graphQLClient, Configuration configuration) { this.http = http; this.graphQLClient = graphQLClient; this.configuration = configuration; } /** * Retrieves a Transaction-Level Fee Report. * * @param request the request. * @return a {@link Result} * @throws IOException when data is malforned * @throws ParseException when parsing fails */ public Result transactionLevelFees(TransactionLevelFeeReportRequest request) throws IOException, ParseException { String url = null; Map response = graphQLClient.query(TRANSACTION_LEVEL_FEES_QUERY, request); ValidationErrors errors = GraphQLClient.getErrors(response); if (errors != null) { return new Result(errors); } try { Map data = (Map) response.get("data"); Map report = (Map) data.get("report"); Map transactionLevelFees = (Map) report.get("transactionLevelFees"); url = (String) transactionLevelFees.get("url"); } catch (NullPointerException e) { url = null; } return new Result(new TransactionLevelFeeReport(url)); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy