Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.laserfiche.repository.api.clients.impl.FieldDefinitionsClientImpl Maven / Gradle / Ivy
Go to download
Java implementation of various foundational APIs for Laserfiche, including Repository APIs such as
Entry API flows for secure and easy access to Laserfiche Repository Entries.
package com.laserfiche.repository.api.clients.impl;
import com.laserfiche.api.client.deserialization.ProblemDetailsDeserializer;
import com.laserfiche.api.client.httphandlers.HttpRequestHandler;
import com.laserfiche.api.client.model.ApiException;
import com.laserfiche.api.client.model.ProblemDetails;
import com.laserfiche.repository.api.clients.FieldDefinitionsClient;
import com.laserfiche.repository.api.clients.impl.model.ODataValueContextOfIListOfWFieldInfo;
import com.laserfiche.repository.api.clients.impl.model.WFieldInfo;
import com.laserfiche.repository.api.clients.params.ParametersForGetFieldDefinitionById;
import com.laserfiche.repository.api.clients.params.ParametersForGetFieldDefinitions;
import kong.unirest.HttpResponse;
import kong.unirest.UnirestInstance;
import kong.unirest.json.JSONObject;
import java.util.HashMap;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* The Laserfiche Repository FieldDefinitions API client.
*/
public class FieldDefinitionsClientImpl extends ApiClient implements FieldDefinitionsClient {
public FieldDefinitionsClientImpl(String baseUrl, UnirestInstance httpClient,
HttpRequestHandler httpRequestHandler) {
super(baseUrl, httpClient, httpRequestHandler);
}
@Override
public WFieldInfo getFieldDefinitionById(ParametersForGetFieldDefinitionById parameters) {
Map queryParameters = ApiClientUtils.getParametersWithNonDefaultValue(
new String[]{"String", "String"}, new String[]{"culture", "$select"},
new Object[]{parameters.getCulture(), parameters.getSelect()});
Map pathParameters = ApiClientUtils.getParametersWithNonDefaultValue(
new String[]{"String", "int"}, new String[]{"repoId", "fieldDefinitionId"},
new Object[]{parameters.getRepoId(), parameters.getFieldDefinitionId()});
Function, WFieldInfo> parseResponse = (HttpResponse httpResponse) -> {
Object body = httpResponse.getBody();
Map headersMap = ApiClientUtils.getHeadersMap(httpResponse.getHeaders());
if (httpResponse.getStatus() == 200) {
try {
String responseJson = new JSONObject(body).toString();
return objectMapper.readValue(responseJson, WFieldInfo.class);
} catch (Exception e) {
throw ApiException.create(httpResponse.getStatus(), headersMap, null, e);
}
} else {
ProblemDetails problemDetails;
try {
String jsonString = new JSONObject(body).toString();
problemDetails = ProblemDetailsDeserializer.deserialize(objectMapper, jsonString);
} catch (Exception e) {
throw ApiException.create(httpResponse.getStatus(), headersMap, null, e);
}
throw ApiClientUtils.createApiException(httpResponse, problemDetails);
}
};
return ApiClientUtils.sendRequestWithRetry(httpClient, httpRequestHandler,
baseUrl + "/v1/Repositories/{repoId}/FieldDefinitions/{fieldDefinitionId}", "GET", null, null, null,
null, queryParameters, pathParameters, new HashMap(), false, parseResponse);
}
@Override
public ODataValueContextOfIListOfWFieldInfo getFieldDefinitions(ParametersForGetFieldDefinitions parameters) {
return doGetFieldDefinitions(baseUrl + "/v1/Repositories/{repoId}/FieldDefinitions", parameters);
}
private ODataValueContextOfIListOfWFieldInfo doGetFieldDefinitions(String url,
ParametersForGetFieldDefinitions parameters) {
Map queryParameters = ApiClientUtils.getParametersWithNonDefaultValue(
new String[]{"String", "String", "String", "int", "int", "boolean"},
new String[]{"culture", "$select", "$orderby", "$top", "$skip", "$count"},
new Object[]{parameters.getCulture(), parameters.getSelect(), parameters.getOrderby(), parameters.getTop(), parameters.getSkip(), parameters.isCount()});
Map pathParameters = ApiClientUtils.getParametersWithNonDefaultValue(new String[]{"String"},
new String[]{"repoId"}, new Object[]{parameters.getRepoId()});
Map headerParameters = ApiClientUtils.getParametersWithNonDefaultValue(new String[]{"String"},
new String[]{"prefer"}, new Object[]{parameters.getPrefer()});
Map headerParametersWithStringTypeValue = headerParameters
.entrySet()
.stream()
.collect(Collectors.toMap(Map.Entry::getKey, e -> (String) e.getValue()));
Function, ODataValueContextOfIListOfWFieldInfo> parseResponse = (HttpResponse httpResponse) -> {
Object body = httpResponse.getBody();
Map headersMap = ApiClientUtils.getHeadersMap(httpResponse.getHeaders());
if (httpResponse.getStatus() == 200) {
try {
String responseJson = new JSONObject(body).toString();
return objectMapper.readValue(responseJson, ODataValueContextOfIListOfWFieldInfo.class);
} catch (Exception e) {
throw ApiException.create(httpResponse.getStatus(), headersMap, null, e);
}
} else {
ProblemDetails problemDetails;
try {
String jsonString = new JSONObject(body).toString();
problemDetails = ProblemDetailsDeserializer.deserialize(objectMapper, jsonString);
} catch (Exception e) {
throw ApiException.create(httpResponse.getStatus(), headersMap, null, e);
}
throw ApiClientUtils.createApiException(httpResponse, problemDetails);
}
};
return ApiClientUtils.sendRequestWithRetry(httpClient, httpRequestHandler, url, "GET", null, null, null, null,
queryParameters, pathParameters, headerParametersWithStringTypeValue, false, parseResponse);
}
@Override
public ODataValueContextOfIListOfWFieldInfo getFieldDefinitionsNextLink(String nextLink, int maxPageSize) {
return doGetFieldDefinitions(nextLink, new ParametersForGetFieldDefinitions().setPrefer(
ApiClientUtils.mergeMaxSizeIntoPrefer(maxPageSize, null)));
}
@Override
public void getFieldDefinitionsForEach(Function callback,
Integer maxPageSize, ParametersForGetFieldDefinitions parameters) {
parameters.setPrefer(ApiClientUtils.mergeMaxSizeIntoPrefer(maxPageSize, parameters.getPrefer()));
ODataValueContextOfIListOfWFieldInfo response = getFieldDefinitions(parameters);
while (response != null && callback.apply(response)) {
String nextLink = response.getOdataNextLink();
response = getFieldDefinitionsNextLink(nextLink, maxPageSize);
}
}
}