
com.squareup.square.AsyncTeamClient Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of square Show documentation
Show all versions of square Show documentation
Java client library for the Square API
The newest version!
/**
* This file was auto-generated by Fern from our API Definition.
*/
package com.squareup.square;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.squareup.square.core.ClientOptions;
import com.squareup.square.core.MediaTypes;
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.types.CreateJobRequest;
import com.squareup.square.types.CreateJobResponse;
import com.squareup.square.types.ListJobsRequest;
import com.squareup.square.types.ListJobsResponse;
import com.squareup.square.types.RetrieveJobRequest;
import com.squareup.square.types.RetrieveJobResponse;
import com.squareup.square.types.UpdateJobRequest;
import com.squareup.square.types.UpdateJobResponse;
import java.io.IOException;
import java.util.concurrent.CompletableFuture;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.Headers;
import okhttp3.HttpUrl;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
import okhttp3.ResponseBody;
import org.jetbrains.annotations.NotNull;
public class AsyncTeamClient {
protected final ClientOptions clientOptions;
public AsyncTeamClient(ClientOptions clientOptions) {
this.clientOptions = clientOptions;
}
/**
* Lists jobs in a seller account. Results are sorted by title in ascending order.
*/
public CompletableFuture listJobs() {
return listJobs(ListJobsRequest.builder().build());
}
/**
* Lists jobs in a seller account. Results are sorted by title in ascending order.
*/
public CompletableFuture listJobs(ListJobsRequest request) {
return listJobs(request, null);
}
/**
* Lists jobs in a seller account. Results are sorted by title in ascending order.
*/
public CompletableFuture listJobs(ListJobsRequest request, RequestOptions requestOptions) {
HttpUrl.Builder httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl())
.newBuilder()
.addPathSegments("v2/team-members/jobs");
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);
}
CompletableFuture future = new CompletableFuture<>();
client.newCall(okhttpRequest).enqueue(new Callback() {
@Override
public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {
try (ResponseBody responseBody = response.body()) {
if (response.isSuccessful()) {
future.complete(
ObjectMappers.JSON_MAPPER.readValue(responseBody.string(), ListJobsResponse.class));
return;
}
String responseBodyString = responseBody != null ? responseBody.string() : "{}";
future.completeExceptionally(new SquareApiException(
"Error with status code " + response.code(),
response.code(),
ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.class)));
return;
} catch (IOException e) {
future.completeExceptionally(new SquareException("Network error executing HTTP request", e));
}
}
@Override
public void onFailure(@NotNull Call call, @NotNull IOException e) {
future.completeExceptionally(new SquareException("Network error executing HTTP request", e));
}
});
return future;
}
/**
* Creates a job in a seller account. A job defines a title and tip eligibility. Note that
* compensation is defined in a job assignment in a team member's wage setting.
*/
public CompletableFuture createJob(CreateJobRequest request) {
return createJob(request, null);
}
/**
* Creates a job in a seller account. A job defines a title and tip eligibility. Note that
* compensation is defined in a job assignment in a team member's wage setting.
*/
public CompletableFuture createJob(CreateJobRequest request, RequestOptions requestOptions) {
HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl())
.newBuilder()
.addPathSegments("v2/team-members/jobs")
.build();
RequestBody body;
try {
body = RequestBody.create(
ObjectMappers.JSON_MAPPER.writeValueAsBytes(request), MediaTypes.APPLICATION_JSON);
} catch (JsonProcessingException e) {
throw new SquareException("Failed to serialize request", e);
}
Request okhttpRequest = new Request.Builder()
.url(httpUrl)
.method("POST", body)
.headers(Headers.of(clientOptions.headers(requestOptions)))
.addHeader("Content-Type", "application/json")
.addHeader("Accept", "application/json")
.build();
OkHttpClient client = clientOptions.httpClient();
if (requestOptions != null && requestOptions.getTimeout().isPresent()) {
client = clientOptions.httpClientWithTimeout(requestOptions);
}
CompletableFuture future = new CompletableFuture<>();
client.newCall(okhttpRequest).enqueue(new Callback() {
@Override
public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {
try (ResponseBody responseBody = response.body()) {
if (response.isSuccessful()) {
future.complete(
ObjectMappers.JSON_MAPPER.readValue(responseBody.string(), CreateJobResponse.class));
return;
}
String responseBodyString = responseBody != null ? responseBody.string() : "{}";
future.completeExceptionally(new SquareApiException(
"Error with status code " + response.code(),
response.code(),
ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.class)));
return;
} catch (IOException e) {
future.completeExceptionally(new SquareException("Network error executing HTTP request", e));
}
}
@Override
public void onFailure(@NotNull Call call, @NotNull IOException e) {
future.completeExceptionally(new SquareException("Network error executing HTTP request", e));
}
});
return future;
}
/**
* Retrieves a specified job.
*/
public CompletableFuture retrieveJob(RetrieveJobRequest request) {
return retrieveJob(request, null);
}
/**
* Retrieves a specified job.
*/
public CompletableFuture retrieveJob(
RetrieveJobRequest request, RequestOptions requestOptions) {
HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl())
.newBuilder()
.addPathSegments("v2/team-members/jobs")
.addPathSegment(request.getJobId())
.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);
}
CompletableFuture future = new CompletableFuture<>();
client.newCall(okhttpRequest).enqueue(new Callback() {
@Override
public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {
try (ResponseBody responseBody = response.body()) {
if (response.isSuccessful()) {
future.complete(
ObjectMappers.JSON_MAPPER.readValue(responseBody.string(), RetrieveJobResponse.class));
return;
}
String responseBodyString = responseBody != null ? responseBody.string() : "{}";
future.completeExceptionally(new SquareApiException(
"Error with status code " + response.code(),
response.code(),
ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.class)));
return;
} catch (IOException e) {
future.completeExceptionally(new SquareException("Network error executing HTTP request", e));
}
}
@Override
public void onFailure(@NotNull Call call, @NotNull IOException e) {
future.completeExceptionally(new SquareException("Network error executing HTTP request", e));
}
});
return future;
}
/**
* Updates the title or tip eligibility of a job. Changes to the title propagate to all
* JobAssignment
, Shift
, and TeamMemberWage
objects that reference the job ID. Changes to
* tip eligibility propagate to all TeamMemberWage
objects that reference the job ID.
*/
public CompletableFuture updateJob(UpdateJobRequest request) {
return updateJob(request, null);
}
/**
* Updates the title or tip eligibility of a job. Changes to the title propagate to all
* JobAssignment
, Shift
, and TeamMemberWage
objects that reference the job ID. Changes to
* tip eligibility propagate to all TeamMemberWage
objects that reference the job ID.
*/
public CompletableFuture updateJob(UpdateJobRequest request, RequestOptions requestOptions) {
HttpUrl httpUrl = HttpUrl.parse(this.clientOptions.environment().getUrl())
.newBuilder()
.addPathSegments("v2/team-members/jobs")
.addPathSegment(request.getJobId())
.build();
RequestBody body;
try {
body = RequestBody.create(
ObjectMappers.JSON_MAPPER.writeValueAsBytes(request), MediaTypes.APPLICATION_JSON);
} catch (JsonProcessingException e) {
throw new SquareException("Failed to serialize request", e);
}
Request okhttpRequest = new Request.Builder()
.url(httpUrl)
.method("PUT", body)
.headers(Headers.of(clientOptions.headers(requestOptions)))
.addHeader("Content-Type", "application/json")
.addHeader("Accept", "application/json")
.build();
OkHttpClient client = clientOptions.httpClient();
if (requestOptions != null && requestOptions.getTimeout().isPresent()) {
client = clientOptions.httpClientWithTimeout(requestOptions);
}
CompletableFuture future = new CompletableFuture<>();
client.newCall(okhttpRequest).enqueue(new Callback() {
@Override
public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {
try (ResponseBody responseBody = response.body()) {
if (response.isSuccessful()) {
future.complete(
ObjectMappers.JSON_MAPPER.readValue(responseBody.string(), UpdateJobResponse.class));
return;
}
String responseBodyString = responseBody != null ? responseBody.string() : "{}";
future.completeExceptionally(new SquareApiException(
"Error with status code " + response.code(),
response.code(),
ObjectMappers.JSON_MAPPER.readValue(responseBodyString, Object.class)));
return;
} catch (IOException e) {
future.completeExceptionally(new SquareException("Network error executing HTTP request", e));
}
}
@Override
public void onFailure(@NotNull Call call, @NotNull IOException e) {
future.completeExceptionally(new SquareException("Network error executing HTTP request", e));
}
});
return future;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy