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.AttributesClientImpl Maven / Gradle / Ivy
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.AttributesClient;
import com.laserfiche.repository.api.clients.impl.model.Attribute;
import com.laserfiche.repository.api.clients.impl.model.ODataValueContextOfListOfAttribute;
import com.laserfiche.repository.api.clients.params.ParametersForGetTrusteeAttributeKeyValuePairs;
import com.laserfiche.repository.api.clients.params.ParametersForGetTrusteeAttributeValueByKey;
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 Attributes API client.
*/
public class AttributesClientImpl extends ApiClient implements AttributesClient {
public AttributesClientImpl(String baseUrl, UnirestInstance httpClient, HttpRequestHandler httpRequestHandler) {
super(baseUrl, httpClient, httpRequestHandler);
}
@Override
public Attribute getTrusteeAttributeValueByKey(ParametersForGetTrusteeAttributeValueByKey parameters) {
Map queryParameters = ApiClientUtils.getParametersWithNonDefaultValue(new String[]{"boolean"},
new String[]{"everyone"}, new Object[]{parameters.isEveryone()});
Map pathParameters = ApiClientUtils.getParametersWithNonDefaultValue(
new String[]{"String", "String"}, new String[]{"repoId", "attributeKey"},
new Object[]{parameters.getRepoId(), parameters.getAttributeKey()});
Function, Attribute> 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, Attribute.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}/Attributes/{attributeKey}", "GET", null, null, null, null,
queryParameters, pathParameters, new HashMap(), false, parseResponse);
}
@Override
public ODataValueContextOfListOfAttribute getTrusteeAttributeKeyValuePairs(
ParametersForGetTrusteeAttributeKeyValuePairs parameters) {
return doGetTrusteeAttributeKeyValuePairs(baseUrl + "/v1/Repositories/{repoId}/Attributes", parameters);
}
private ODataValueContextOfListOfAttribute doGetTrusteeAttributeKeyValuePairs(String url,
ParametersForGetTrusteeAttributeKeyValuePairs parameters) {
Map queryParameters = ApiClientUtils.getParametersWithNonDefaultValue(
new String[]{"boolean", "String", "String", "int", "int", "boolean"},
new String[]{"everyone", "$select", "$orderby", "$top", "$skip", "$count"},
new Object[]{parameters.isEveryone(), 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, ODataValueContextOfListOfAttribute> 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, ODataValueContextOfListOfAttribute.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 ODataValueContextOfListOfAttribute getTrusteeAttributeKeyValuePairsNextLink(String nextLink,
int maxPageSize) {
return doGetTrusteeAttributeKeyValuePairs(nextLink,
new ParametersForGetTrusteeAttributeKeyValuePairs().setPrefer(
ApiClientUtils.mergeMaxSizeIntoPrefer(maxPageSize, null)));
}
@Override
public void getTrusteeAttributeKeyValuePairsForEach(Function callback,
Integer maxPageSize, ParametersForGetTrusteeAttributeKeyValuePairs parameters) {
parameters.setPrefer(ApiClientUtils.mergeMaxSizeIntoPrefer(maxPageSize, parameters.getPrefer()));
ODataValueContextOfListOfAttribute response = getTrusteeAttributeKeyValuePairs(parameters);
while (response != null && callback.apply(response)) {
String nextLink = response.getOdataNextLink();
response = getTrusteeAttributeKeyValuePairsNextLink(nextLink, maxPageSize);
}
}
}