345 lines
17 KiB
Plaintext
345 lines
17 KiB
Plaintext
{{>licenseInfo}}
|
|
|
|
package {{package}};
|
|
|
|
import {{invokerPackage}}.ApiCallback;
|
|
import {{invokerPackage}}.ApiClient;
|
|
import {{invokerPackage}}.ApiException;
|
|
import {{invokerPackage}}.ApiResponse;
|
|
import {{invokerPackage}}.Configuration;
|
|
import {{invokerPackage}}.Pair;
|
|
import {{invokerPackage}}.ProgressRequestBody;
|
|
import {{invokerPackage}}.ProgressResponseBody;
|
|
import {{invokerPackage}}.StringUtil;
|
|
{{#performBeanValidation}}
|
|
import {{invokerPackage}}.BeanValidationException;
|
|
{{/performBeanValidation}}
|
|
|
|
import com.google.gson.reflect.TypeToken;
|
|
|
|
import java.io.IOException;
|
|
|
|
{{#useBeanValidation}}
|
|
import javax.validation.constraints.*;
|
|
{{/useBeanValidation}}
|
|
{{#performBeanValidation}}
|
|
import javax.validation.ConstraintViolation;
|
|
import javax.validation.Validation;
|
|
import javax.validation.ValidatorFactory;
|
|
import javax.validation.executable.ExecutableValidator;
|
|
import java.util.Set;
|
|
import java.lang.reflect.Method;
|
|
import java.lang.reflect.Type;
|
|
{{/performBeanValidation}}
|
|
|
|
{{#imports}}import {{import}};
|
|
{{/imports}}
|
|
|
|
import java.lang.reflect.Type;
|
|
{{^fullJavaUtil}}
|
|
import java.util.ArrayList;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
{{/fullJavaUtil}}
|
|
|
|
import com.amazon.SellingPartnerAPIAA.LWAAccessTokenCache;
|
|
import com.amazon.SellingPartnerAPIAA.LWAAccessTokenCacheImpl;
|
|
import com.amazon.SellingPartnerAPIAA.LWAAuthorizationCredentials;
|
|
import com.amazon.SellingPartnerAPIAA.LWAAuthorizationSigner;
|
|
import com.amazon.SellingPartnerAPIAA.RateLimitConfiguration;
|
|
import com.amazon.SellingPartnerAPIAA.LWAException;
|
|
|
|
{{#operations}}
|
|
public class {{classname}} {
|
|
private ApiClient {{localVariablePrefix}}apiClient;
|
|
|
|
{{classname}}() {
|
|
this(Configuration.getDefaultApiClient());
|
|
}
|
|
|
|
public {{classname}}(ApiClient apiClient) {
|
|
this.{{localVariablePrefix}}apiClient = apiClient;
|
|
}
|
|
|
|
public ApiClient getApiClient() {
|
|
return {{localVariablePrefix}}apiClient;
|
|
}
|
|
|
|
public void setApiClient(ApiClient apiClient) {
|
|
this.{{localVariablePrefix}}apiClient = apiClient;
|
|
}
|
|
|
|
{{#operation}}
|
|
/**
|
|
* Build call for {{operationId}}{{#allParams}}
|
|
* @param {{paramName}} {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{#defaultValue}}, default to {{{.}}}{{/defaultValue}}){{/required}}{{/allParams}}
|
|
* @param progressListener Progress listener
|
|
* @param progressRequestListener Progress request listener
|
|
* @return Call to execute
|
|
* @throws ApiException If fail to serialize the request body object
|
|
* @throws LWAException If calls to fetch LWA access token fails
|
|
{{#isDeprecated}}
|
|
* @deprecated
|
|
{{/isDeprecated}}
|
|
{{#externalDocs}}
|
|
* {{description}}
|
|
* @see <a href="{{url}}">{{summary}} Documentation</a>
|
|
{{/externalDocs}}
|
|
*/
|
|
{{#isDeprecated}}
|
|
@Deprecated
|
|
{{/isDeprecated}}
|
|
public com.squareup.okhttp.Call {{operationId}}Call({{#allParams}}{{{dataType}}} {{paramName}}, {{/allParams}}final ProgressResponseBody.ProgressListener progressListener, final ProgressRequestBody.ProgressRequestListener progressRequestListener) throws ApiException, LWAException {
|
|
Object {{localVariablePrefix}}localVarPostBody = {{#bodyParam}}{{paramName}}{{/bodyParam}}{{^bodyParam}}null{{/bodyParam}};
|
|
|
|
// create path and map variables
|
|
String {{localVariablePrefix}}localVarPath = "{{{path}}}"{{#pathParams}}
|
|
.replaceAll("\\{" + "{{baseName}}" + "\\}", {{localVariablePrefix}}apiClient.escapeString({{{paramName}}}.toString())){{/pathParams}};
|
|
|
|
{{javaUtilPrefix}}List<Pair> {{localVariablePrefix}}localVarQueryParams = new {{javaUtilPrefix}}ArrayList<Pair>();
|
|
{{javaUtilPrefix}}List<Pair> {{localVariablePrefix}}localVarCollectionQueryParams = new {{javaUtilPrefix}}ArrayList<Pair>();{{#queryParams}}
|
|
if ({{paramName}} != null)
|
|
{{localVariablePrefix}}{{#collectionFormat}}localVarCollectionQueryParams.addAll({{localVariablePrefix}}apiClient.parameterToPairs("{{{collectionFormat}}}", {{/collectionFormat}}{{^collectionFormat}}localVarQueryParams.addAll({{localVariablePrefix}}apiClient.parameterToPair({{/collectionFormat}}"{{baseName}}", {{paramName}}));{{/queryParams}}
|
|
|
|
{{javaUtilPrefix}}Map<String, String> {{localVariablePrefix}}localVarHeaderParams = new {{javaUtilPrefix}}HashMap<String, String>();{{#headerParams}}
|
|
if ({{paramName}} != null)
|
|
{{localVariablePrefix}}localVarHeaderParams.put("{{baseName}}", {{localVariablePrefix}}apiClient.parameterToString({{paramName}}));{{/headerParams}}
|
|
|
|
{{javaUtilPrefix}}Map<String, Object> {{localVariablePrefix}}localVarFormParams = new {{javaUtilPrefix}}HashMap<String, Object>();{{#formParams}}
|
|
if ({{paramName}} != null)
|
|
{{localVariablePrefix}}localVarFormParams.put("{{baseName}}", {{paramName}});{{/formParams}}
|
|
|
|
final String[] {{localVariablePrefix}}localVarAccepts = {
|
|
{{#produces}}"{{{mediaType}}}"{{#hasMore}}, {{/hasMore}}{{/produces}}
|
|
};
|
|
final String {{localVariablePrefix}}localVarAccept = {{localVariablePrefix}}apiClient.selectHeaderAccept({{localVariablePrefix}}localVarAccepts);
|
|
if ({{localVariablePrefix}}localVarAccept != null) {{localVariablePrefix}}localVarHeaderParams.put("Accept", {{localVariablePrefix}}localVarAccept);
|
|
|
|
final String[] {{localVariablePrefix}}localVarContentTypes = {
|
|
{{#consumes}}"{{{mediaType}}}"{{#hasMore}}, {{/hasMore}}{{/consumes}}
|
|
};
|
|
final String {{localVariablePrefix}}localVarContentType = {{localVariablePrefix}}apiClient.selectHeaderContentType({{localVariablePrefix}}localVarContentTypes);
|
|
{{localVariablePrefix}}localVarHeaderParams.put("Content-Type", {{localVariablePrefix}}localVarContentType);
|
|
|
|
if(progressListener != null) {
|
|
apiClient.getHttpClient().networkInterceptors().add(new com.squareup.okhttp.Interceptor() {
|
|
@Override
|
|
public com.squareup.okhttp.Response intercept(com.squareup.okhttp.Interceptor.Chain chain) throws IOException {
|
|
com.squareup.okhttp.Response originalResponse = chain.proceed(chain.request());
|
|
return originalResponse.newBuilder()
|
|
.body(new ProgressResponseBody(originalResponse.body(), progressListener))
|
|
.build();
|
|
}
|
|
});
|
|
}
|
|
|
|
String[] {{localVariablePrefix}}localVarAuthNames = new String[] { {{#authMethods}}"{{name}}"{{#hasMore}}, {{/hasMore}}{{/authMethods}} };
|
|
return {{localVariablePrefix}}apiClient.buildCall({{localVariablePrefix}}localVarPath, "{{httpMethod}}", {{localVariablePrefix}}localVarQueryParams, {{localVariablePrefix}}localVarCollectionQueryParams, {{localVariablePrefix}}localVarPostBody, {{localVariablePrefix}}localVarHeaderParams, {{localVariablePrefix}}localVarFormParams, {{localVariablePrefix}}localVarAuthNames, progressRequestListener);
|
|
}
|
|
|
|
{{#isDeprecated}}
|
|
@Deprecated
|
|
{{/isDeprecated}}
|
|
@SuppressWarnings("rawtypes")
|
|
private com.squareup.okhttp.Call {{operationId}}ValidateBeforeCall({{#allParams}}{{{dataType}}} {{paramName}}, {{/allParams}}final ProgressResponseBody.ProgressListener progressListener, final ProgressRequestBody.ProgressRequestListener progressRequestListener) throws ApiException, LWAException {
|
|
{{^performBeanValidation}}
|
|
{{#allParams}}{{#required}}
|
|
// verify the required parameter '{{paramName}}' is set
|
|
if ({{paramName}} == null) {
|
|
throw new ApiException("Missing the required parameter '{{paramName}}' when calling {{operationId}}(Async)");
|
|
}
|
|
{{/required}}{{/allParams}}
|
|
|
|
com.squareup.okhttp.Call {{localVariablePrefix}}call = {{operationId}}Call({{#allParams}}{{paramName}}, {{/allParams}}progressListener, progressRequestListener);
|
|
return {{localVariablePrefix}}call;
|
|
|
|
{{/performBeanValidation}}
|
|
{{#performBeanValidation}}
|
|
try {
|
|
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
|
|
ExecutableValidator executableValidator = factory.getValidator().forExecutables();
|
|
|
|
Object[] parameterValues = { {{#allParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}} };
|
|
Method method = this.getClass().getMethod("{{operationId}}WithHttpInfo"{{#allParams}}, {{#isListContainer}}java.util.List{{/isListContainer}}{{#isMapContainer}}java.util.Map{{/isMapContainer}}{{^isListContainer}}{{^isMapContainer}}{{{dataType}}}{{/isMapContainer}}{{/isListContainer}}.class{{/allParams}});
|
|
Set<ConstraintViolation<{{classname}}>> violations = executableValidator.validateParameters(this, method,
|
|
parameterValues);
|
|
|
|
if (violations.size() == 0) {
|
|
com.squareup.okhttp.Call {{localVariablePrefix}}call = {{operationId}}Call({{#allParams}}{{paramName}}, {{/allParams}}progressListener, progressRequestListener);
|
|
return {{localVariablePrefix}}call;
|
|
|
|
} else {
|
|
throw new BeanValidationException((Set) violations);
|
|
}
|
|
} catch (NoSuchMethodException e) {
|
|
e.printStackTrace();
|
|
throw new ApiException(e.getMessage());
|
|
} catch (SecurityException e) {
|
|
e.printStackTrace();
|
|
throw new ApiException(e.getMessage());
|
|
}
|
|
|
|
{{/performBeanValidation}}
|
|
}
|
|
|
|
/**
|
|
* {{summary}}
|
|
* {{notes}}{{#allParams}}
|
|
* @param {{paramName}} {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{#defaultValue}}, default to {{{.}}}{{/defaultValue}}){{/required}}{{/allParams}}{{#returnType}}
|
|
* @return {{returnType}}{{/returnType}}
|
|
* @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
|
|
* @throws LWAException If calls to fetch LWA access token fails
|
|
{{#isDeprecated}}
|
|
* @deprecated
|
|
{{/isDeprecated}}
|
|
{{#externalDocs}}
|
|
* {{description}}
|
|
* @see <a href="{{url}}">{{summary}} Documentation</a>
|
|
{{/externalDocs}}
|
|
*/
|
|
{{#isDeprecated}}
|
|
@Deprecated
|
|
{{/isDeprecated}}
|
|
public {{#returnType}}{{{returnType}}} {{/returnType}}{{^returnType}}void {{/returnType}}{{operationId}}({{#allParams}}{{{dataType}}} {{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) throws ApiException,LWAException {
|
|
{{#returnType}}ApiResponse<{{{returnType}}}> {{localVariablePrefix}}resp = {{/returnType}}{{operationId}}WithHttpInfo({{#allParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}});{{#returnType}}
|
|
return {{localVariablePrefix}}resp.getData();{{/returnType}}
|
|
}
|
|
|
|
/**
|
|
* {{summary}}
|
|
* {{notes}}{{#allParams}}
|
|
* @param {{paramName}} {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{#defaultValue}}, default to {{{.}}}{{/defaultValue}}){{/required}}{{/allParams}}
|
|
* @return ApiResponse<{{#returnType}}{{returnType}}{{/returnType}}{{^returnType}}Void{{/returnType}}>
|
|
* @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
|
|
* @throws LWAException If calls to fetch LWA access token fails
|
|
{{#isDeprecated}}
|
|
* @deprecated
|
|
{{/isDeprecated}}
|
|
{{#externalDocs}}
|
|
* {{description}}
|
|
* @see <a href="{{url}}">{{summary}} Documentation</a>
|
|
{{/externalDocs}}
|
|
*/
|
|
{{#isDeprecated}}
|
|
@Deprecated
|
|
{{/isDeprecated}}
|
|
public ApiResponse<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Void{{/returnType}}> {{operationId}}WithHttpInfo({{#allParams}}{{#useBeanValidation}}{{>beanValidationQueryParams}}{{/useBeanValidation}}{{{dataType}}} {{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) throws ApiException,LWAException {
|
|
com.squareup.okhttp.Call {{localVariablePrefix}}call = {{operationId}}ValidateBeforeCall({{#allParams}}{{paramName}}, {{/allParams}}null, null);
|
|
{{#returnType}}Type {{localVariablePrefix}}localVarReturnType = new TypeToken<{{{returnType}}}>(){}.getType();
|
|
return {{localVariablePrefix}}apiClient.execute({{localVariablePrefix}}call, {{localVariablePrefix}}localVarReturnType);{{/returnType}}{{^returnType}}return {{localVariablePrefix}}apiClient.execute({{localVariablePrefix}}call);{{/returnType}}
|
|
}
|
|
|
|
/**
|
|
* {{summary}} (asynchronously)
|
|
* {{notes}}{{#allParams}}
|
|
* @param {{paramName}} {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{#defaultValue}}, default to {{{.}}}{{/defaultValue}}){{/required}}{{/allParams}}
|
|
* @param callback The callback to be executed when the API call finishes
|
|
* @return The request call
|
|
* @throws ApiException If fail to process the API call, e.g. serializing the request body object
|
|
* @throws LWAException If calls to fetch LWA access token fails
|
|
{{#isDeprecated}}
|
|
* @deprecated
|
|
{{/isDeprecated}}
|
|
{{#externalDocs}}
|
|
* {{description}}
|
|
* @see <a href="{{url}}">{{summary}} Documentation</a>
|
|
{{/externalDocs}}
|
|
*/
|
|
{{#isDeprecated}}
|
|
@Deprecated
|
|
{{/isDeprecated}}
|
|
public com.squareup.okhttp.Call {{operationId}}Async({{#allParams}}{{{dataType}}} {{paramName}}, {{/allParams}}final ApiCallback<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Void{{/returnType}}> {{localVariablePrefix}}callback) throws ApiException, LWAException {
|
|
|
|
ProgressResponseBody.ProgressListener progressListener = null;
|
|
ProgressRequestBody.ProgressRequestListener progressRequestListener = null;
|
|
|
|
if (callback != null) {
|
|
progressListener = new ProgressResponseBody.ProgressListener() {
|
|
@Override
|
|
public void update(long bytesRead, long contentLength, boolean done) {
|
|
callback.onDownloadProgress(bytesRead, contentLength, done);
|
|
}
|
|
};
|
|
|
|
progressRequestListener = new ProgressRequestBody.ProgressRequestListener() {
|
|
@Override
|
|
public void onRequestProgress(long bytesWritten, long contentLength, boolean done) {
|
|
callback.onUploadProgress(bytesWritten, contentLength, done);
|
|
}
|
|
};
|
|
}
|
|
|
|
com.squareup.okhttp.Call {{localVariablePrefix}}call = {{operationId}}ValidateBeforeCall({{#allParams}}{{paramName}}, {{/allParams}}progressListener, progressRequestListener);
|
|
{{#returnType}}Type {{localVariablePrefix}}localVarReturnType = new TypeToken<{{{returnType}}}>(){}.getType();
|
|
{{localVariablePrefix}}apiClient.executeAsync({{localVariablePrefix}}call, {{localVariablePrefix}}localVarReturnType, {{localVariablePrefix}}callback);{{/returnType}}{{^returnType}}{{localVariablePrefix}}apiClient.executeAsync({{localVariablePrefix}}call, {{localVariablePrefix}}callback);{{/returnType}}
|
|
return {{localVariablePrefix}}call;
|
|
}
|
|
{{/operation}}
|
|
|
|
public static class Builder {
|
|
private LWAAuthorizationCredentials lwaAuthorizationCredentials;
|
|
private String endpoint;
|
|
private LWAAccessTokenCache lwaAccessTokenCache;
|
|
private Boolean disableAccessTokenCache = false;
|
|
private RateLimitConfiguration rateLimitConfiguration;
|
|
|
|
|
|
public Builder lwaAuthorizationCredentials(LWAAuthorizationCredentials lwaAuthorizationCredentials) {
|
|
this.lwaAuthorizationCredentials = lwaAuthorizationCredentials;
|
|
return this;
|
|
}
|
|
|
|
public Builder endpoint(String endpoint) {
|
|
this.endpoint = endpoint;
|
|
return this;
|
|
}
|
|
|
|
public Builder lwaAccessTokenCache(LWAAccessTokenCache lwaAccessTokenCache) {
|
|
this.lwaAccessTokenCache = lwaAccessTokenCache;
|
|
return this;
|
|
}
|
|
|
|
public Builder disableAccessTokenCache() {
|
|
this.disableAccessTokenCache = true;
|
|
return this;
|
|
}
|
|
|
|
public Builder rateLimitConfigurationOnRequests(RateLimitConfiguration rateLimitConfiguration){
|
|
this.rateLimitConfiguration = rateLimitConfiguration;
|
|
return this;
|
|
}
|
|
|
|
public Builder disableRateLimitOnRequests() {
|
|
this.rateLimitConfiguration = null;
|
|
return this;
|
|
}
|
|
|
|
public {{classname}} build() {
|
|
if (lwaAuthorizationCredentials == null) {
|
|
throw new RuntimeException("LWAAuthorizationCredentials not set");
|
|
}
|
|
|
|
if (StringUtil.isEmpty(endpoint)) {
|
|
throw new RuntimeException("Endpoint not set");
|
|
}
|
|
|
|
LWAAuthorizationSigner lwaAuthorizationSigner = null;
|
|
if (disableAccessTokenCache) {
|
|
lwaAuthorizationSigner = new LWAAuthorizationSigner(lwaAuthorizationCredentials);
|
|
}
|
|
else {
|
|
if (lwaAccessTokenCache == null) {
|
|
lwaAccessTokenCache = new LWAAccessTokenCacheImpl();
|
|
}
|
|
lwaAuthorizationSigner = new LWAAuthorizationSigner(lwaAuthorizationCredentials,lwaAccessTokenCache);
|
|
}
|
|
|
|
return new {{classname}}(new ApiClient()
|
|
.setLWAAuthorizationSigner(lwaAuthorizationSigner)
|
|
.setBasePath(endpoint)
|
|
.setRateLimiter(rateLimitConfiguration));
|
|
}
|
|
}
|
|
}
|
|
{{/operations}} |