
io.github.dft.amazon.AmazonSPTokens Maven / Gradle / Ivy
package io.github.dft.amazon;
import io.github.dft.amazon.constantcode.ConstantCodes;
import io.github.dft.amazon.model.AmazonCredentials;
import io.github.dft.amazon.model.auth.AccessTokenResponse;
import io.github.dft.amazon.model.handler.JsonBodyHandler;
import io.github.dft.amazon.model.tokens.v202103.CreateRestrictedDataTokenRequest;
import io.github.dft.amazon.model.tokens.v202103.CreateRestrictedDataTokenResponse;
import lombok.SneakyThrows;
import java.net.URI;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.HashMap;
import java.util.Map;
import static io.github.dft.amazon.constantcode.ConstantCodes.GRANT_TYPE_CLIENT_CREDENTIALS;
import static io.github.dft.amazon.constantcode.ConstantCodes.HTTP_OAUTH_PARAMETER_CLIENT_ID;
import static io.github.dft.amazon.constantcode.ConstantCodes.HTTP_OAUTH_PARAMETER_CLIENT_SECRET;
import static io.github.dft.amazon.constantcode.ConstantCodes.HTTP_OAUTH_PARAMETER_GRANT_TYPE;
public class AmazonSPTokens extends AmazonSellingPartnerSdk {
public AmazonSPTokens(AmazonCredentials amazonCredentials) {
super(amazonCredentials);
}
@SneakyThrows
public CreateRestrictedDataTokenResponse createRestrictedDataToken(CreateRestrictedDataTokenRequest body) {
String requestBody = getString(body);
refreshAccessToken(false);
HttpRequest request = HttpRequest.newBuilder(new URI(sellingRegionEndpoint + ConstantCodes.TOKENS_API_V202103))
.header(ConstantCodes.HTTP_HEADER_ACCEPTS, ConstantCodes.HTTP_HEADER_VALUE_APPLICATION_JSON)
.header(ConstantCodes.HTTP_HEADER_CONTENT_TYPE, ConstantCodes.HTTP_HEADER_VALUE_APPLICATION_JSON)
.header(ConstantCodes.HTTP_HEADER_X_AMZ_ACCESS_TOKEN, amazonCredentials.getAccessToken())
.POST(HttpRequest.BodyPublishers.ofString(requestBody))
.build();
HttpResponse.BodyHandler handler = new JsonBodyHandler<>(CreateRestrictedDataTokenResponse.class);
return getRequestWrapped(request, handler);
}
@SneakyThrows
public AccessTokenResponse createLWAToken() {
Map
© 2015 - 2025 Weber Informatics LLC | Privacy Policy