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

com.squareup.square.disputes.EvidenceClient Maven / Gradle / Ivy

The newest version!
/**
 * This file was auto-generated by Fern from our API Definition.
 */
package com.squareup.square.disputes;

import com.squareup.square.core.ClientOptions;
import com.squareup.square.core.ObjectMappers;
import com.squareup.square.core.QueryStringMapper;
import com.squareup.square.core.RequestOptions;
import com.squareup.square.core.SquareApiException;
import com.squareup.square.core.SquareException;
import com.squareup.square.core.SyncPagingIterable;
import com.squareup.square.disputes.types.DeleteEvidenceRequest;
import com.squareup.square.disputes.types.GetEvidenceRequest;
import com.squareup.square.disputes.types.ListEvidenceRequest;
import com.squareup.square.types.DeleteDisputeEvidenceResponse;
import com.squareup.square.types.DisputeEvidence;
import com.squareup.square.types.GetDisputeEvidenceResponse;
import com.squareup.square.types.ListDisputeEvidenceResponse;
import java.io.IOException;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
import okhttp3.Headers;
import okhttp3.HttpUrl;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import okhttp3.ResponseBody;

public class EvidenceClient {
    protected final ClientOptions clientOptions;

    public EvidenceClient(ClientOptions clientOptions) {
        this.clientOptions = clientOptions;
    }

    /**
     * Returns a list of evidence associated with a dispute.
     */
    public SyncPagingIterable list(ListEvidenceRequest request) {
        return list(request, null);
    }

    /**
     * Returns a list of evidence associated with a dispute.
     */
    public SyncPagingIterable list(ListEvidenceRequest request, RequestOptions requestOptions) {
        HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl())
                .newBuilder()
                .addPathSegments("v2/disputes")
                .addPathSegment(request.getDisputeId())
                .addPathSegments("evidence");
        if (request.getCursor().isPresent()) {
            QueryStringMapper.addQueryParameter(
                    httpUrl, "cursor", request.getCursor().get(), false);
        }
        Request.Builder _requestBuilder = new Request.Builder()
                .url(httpUrl.build())
                .method("GET", null)
                .headers(Headers.of(clientOptions.headers(requestOptions)))
                .addHeader("Content-Type", "application/json")
                .addHeader("Accept", "application/json");
        Request okhttpRequest = _requestBuilder.build();
        OkHttpClient client = clientOptions.httpClient();
        if (requestOptions != null && requestOptions.getTimeout().isPresent()) {
            client = clientOptions.httpClientWithTimeout(requestOptions);
        }
        try (Response response = client.newCall(okhttpRequest).execute()) {
            ResponseBody responseBody = response.body();
            if (response.isSuccessful()) {
                ListDisputeEvidenceResponse parsedResponse =
                        ObjectMappers.JSON_MAPPER.readValue(responseBody.string(), ListDisputeEvidenceResponse.class);
                Optional startingAfter = parsedResponse.getCursor();
                ListEvidenceRequest nextRequest = ListEvidenceRequest.builder()
                        .from(request)
                        .cursor(startingAfter)
                        .build();
                List result = parsedResponse.getEvidence().orElse(Collections.emptyList());
                return new SyncPagingIterable(
                        startingAfter.isPresent(), result, () -> list(nextRequest, requestOptions));
            }
            String responseBodyString = responseBody != null ? responseBody.string() : "{}";
            throw new SquareApiException(
                    "Error with status code " + response.code(),
                    response.code(),
                    ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.class));
        } catch (IOException e) {
            throw new SquareException("Network error executing HTTP request", e);
        }
    }

    /**
     * Returns the metadata for the evidence specified in the request URL path.
     * 

You must maintain a copy of any evidence uploaded if you want to reference it later. Evidence cannot be downloaded after you upload it.

*/ public GetDisputeEvidenceResponse get(GetEvidenceRequest request) { return get(request, null); } /** * Returns the metadata for the evidence specified in the request URL path. *

You must maintain a copy of any evidence uploaded if you want to reference it later. Evidence cannot be downloaded after you upload it.

*/ public GetDisputeEvidenceResponse get(GetEvidenceRequest request, RequestOptions requestOptions) { HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/disputes") .addPathSegment(request.getDisputeId()) .addPathSegments("evidence") .addPathSegment(request.getEvidenceId()) .build(); Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl) .method("GET", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") .addHeader("Accept", "application/json"); Request okhttpRequest = _requestBuilder.build(); OkHttpClient client = clientOptions.httpClient(); if (requestOptions != null && requestOptions.getTimeout().isPresent()) { client = clientOptions.httpClientWithTimeout(requestOptions); } try (Response response = client.newCall(okhttpRequest).execute()) { ResponseBody responseBody = response.body(); if (response.isSuccessful()) { return ObjectMappers.JSON_MAPPER.readValue(responseBody.string(), GetDisputeEvidenceResponse.class); } String responseBodyString = responseBody != null ? responseBody.string() : "{}"; throw new SquareApiException( "Error with status code " + response.code(), response.code(), ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.class)); } catch (IOException e) { throw new SquareException("Network error executing HTTP request", e); } } /** * Removes specified evidence from a dispute. * Square does not send the bank any evidence that is removed. */ public DeleteDisputeEvidenceResponse delete(DeleteEvidenceRequest request) { return delete(request, null); } /** * Removes specified evidence from a dispute. * Square does not send the bank any evidence that is removed. */ public DeleteDisputeEvidenceResponse delete(DeleteEvidenceRequest request, RequestOptions requestOptions) { HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl()) .newBuilder() .addPathSegments("v2/disputes") .addPathSegment(request.getDisputeId()) .addPathSegments("evidence") .addPathSegment(request.getEvidenceId()) .build(); Request.Builder _requestBuilder = new Request.Builder() .url(httpUrl) .method("DELETE", null) .headers(Headers.of(clientOptions.headers(requestOptions))) .addHeader("Content-Type", "application/json") .addHeader("Accept", "application/json"); Request okhttpRequest = _requestBuilder.build(); OkHttpClient client = clientOptions.httpClient(); if (requestOptions != null && requestOptions.getTimeout().isPresent()) { client = clientOptions.httpClientWithTimeout(requestOptions); } try (Response response = client.newCall(okhttpRequest).execute()) { ResponseBody responseBody = response.body(); if (response.isSuccessful()) { return ObjectMappers.JSON_MAPPER.readValue(responseBody.string(), DeleteDisputeEvidenceResponse.class); } String responseBodyString = responseBody != null ? responseBody.string() : "{}"; throw new SquareApiException( "Error with status code " + response.code(), response.code(), ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.class)); } catch (IOException e) { throw new SquareException("Network error executing HTTP request", e); } } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy