mirror of
https://github.com/LukeHagar/plexjava.git
synced 2025-12-06 04:20:46 +00:00
1256 lines
51 KiB
Java
1256 lines
51 KiB
Java
/*
|
|
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
|
*/
|
|
|
|
package dev.plexapi.sdk;
|
|
|
|
import com.fasterxml.jackson.core.type.TypeReference;
|
|
import dev.plexapi.sdk.models.errors.GetCompanionsDataBadRequest;
|
|
import dev.plexapi.sdk.models.errors.GetCompanionsDataUnauthorized;
|
|
import dev.plexapi.sdk.models.errors.GetGeoDataBadRequest;
|
|
import dev.plexapi.sdk.models.errors.GetGeoDataUnauthorized;
|
|
import dev.plexapi.sdk.models.errors.GetHomeDataBadRequest;
|
|
import dev.plexapi.sdk.models.errors.GetHomeDataUnauthorized;
|
|
import dev.plexapi.sdk.models.errors.GetPinBadRequest;
|
|
import dev.plexapi.sdk.models.errors.GetServerResourcesBadRequest;
|
|
import dev.plexapi.sdk.models.errors.GetServerResourcesUnauthorized;
|
|
import dev.plexapi.sdk.models.errors.GetTokenByPinIdBadRequest;
|
|
import dev.plexapi.sdk.models.errors.GetTokenByPinIdResponseBody;
|
|
import dev.plexapi.sdk.models.errors.GetUserFriendsBadRequest;
|
|
import dev.plexapi.sdk.models.errors.GetUserFriendsUnauthorized;
|
|
import dev.plexapi.sdk.models.errors.SDKError;
|
|
import dev.plexapi.sdk.models.operations.Friend;
|
|
import dev.plexapi.sdk.models.operations.GetCompanionsDataRequestBuilder;
|
|
import dev.plexapi.sdk.models.operations.GetCompanionsDataResponse;
|
|
import dev.plexapi.sdk.models.operations.GetGeoDataGeoData;
|
|
import dev.plexapi.sdk.models.operations.GetGeoDataRequestBuilder;
|
|
import dev.plexapi.sdk.models.operations.GetGeoDataResponse;
|
|
import dev.plexapi.sdk.models.operations.GetHomeDataRequestBuilder;
|
|
import dev.plexapi.sdk.models.operations.GetHomeDataResponse;
|
|
import dev.plexapi.sdk.models.operations.GetHomeDataResponseBody;
|
|
import dev.plexapi.sdk.models.operations.GetPinAuthPinContainer;
|
|
import dev.plexapi.sdk.models.operations.GetPinRequest;
|
|
import dev.plexapi.sdk.models.operations.GetPinRequestBuilder;
|
|
import dev.plexapi.sdk.models.operations.GetPinResponse;
|
|
import dev.plexapi.sdk.models.operations.GetServerResourcesRequest;
|
|
import dev.plexapi.sdk.models.operations.GetServerResourcesRequestBuilder;
|
|
import dev.plexapi.sdk.models.operations.GetServerResourcesResponse;
|
|
import dev.plexapi.sdk.models.operations.GetTokenByPinIdAuthPinContainer;
|
|
import dev.plexapi.sdk.models.operations.GetTokenByPinIdRequest;
|
|
import dev.plexapi.sdk.models.operations.GetTokenByPinIdRequestBuilder;
|
|
import dev.plexapi.sdk.models.operations.GetTokenByPinIdResponse;
|
|
import dev.plexapi.sdk.models.operations.GetUserFriendsRequestBuilder;
|
|
import dev.plexapi.sdk.models.operations.GetUserFriendsResponse;
|
|
import dev.plexapi.sdk.models.operations.IncludeHttps;
|
|
import dev.plexapi.sdk.models.operations.IncludeIPv6;
|
|
import dev.plexapi.sdk.models.operations.IncludeRelay;
|
|
import dev.plexapi.sdk.models.operations.PlexDevice;
|
|
import dev.plexapi.sdk.models.operations.ResponseBody;
|
|
import dev.plexapi.sdk.models.operations.SDKMethodInterfaces.*;
|
|
import dev.plexapi.sdk.utils.HTTPClient;
|
|
import dev.plexapi.sdk.utils.HTTPRequest;
|
|
import dev.plexapi.sdk.utils.Hook.AfterErrorContextImpl;
|
|
import dev.plexapi.sdk.utils.Hook.AfterSuccessContextImpl;
|
|
import dev.plexapi.sdk.utils.Hook.BeforeRequestContextImpl;
|
|
import dev.plexapi.sdk.utils.Utils;
|
|
import java.io.InputStream;
|
|
import java.lang.Exception;
|
|
import java.lang.String;
|
|
import java.net.http.HttpRequest;
|
|
import java.net.http.HttpResponse;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.Optional;
|
|
|
|
/**
|
|
* API Calls that perform operations directly against https://Plex.tv
|
|
*
|
|
*/
|
|
public class Plex implements
|
|
MethodCallGetCompanionsData,
|
|
MethodCallGetUserFriends,
|
|
MethodCallGetGeoData,
|
|
MethodCallGetHomeData,
|
|
MethodCallGetServerResources,
|
|
MethodCallGetPin,
|
|
MethodCallGetTokenByPinId {
|
|
|
|
/**
|
|
* GET_COMPANIONS_DATA_SERVERS contains the list of server urls available to the SDK.
|
|
*/
|
|
public static final String[] GET_COMPANIONS_DATA_SERVERS = {
|
|
"https://plex.tv/api/v2",
|
|
};
|
|
|
|
/**
|
|
* GET_USER_FRIENDS_SERVERS contains the list of server urls available to the SDK.
|
|
*/
|
|
public static final String[] GET_USER_FRIENDS_SERVERS = {
|
|
"https://plex.tv/api/v2",
|
|
};
|
|
|
|
/**
|
|
* GET_GEO_DATA_SERVERS contains the list of server urls available to the SDK.
|
|
*/
|
|
public static final String[] GET_GEO_DATA_SERVERS = {
|
|
"https://plex.tv/api/v2",
|
|
};
|
|
|
|
/**
|
|
* GET_SERVER_RESOURCES_SERVERS contains the list of server urls available to the SDK.
|
|
*/
|
|
public static final String[] GET_SERVER_RESOURCES_SERVERS = {
|
|
"https://plex.tv/api/v2",
|
|
};
|
|
|
|
/**
|
|
* GET_PIN_SERVERS contains the list of server urls available to the SDK.
|
|
*/
|
|
public static final String[] GET_PIN_SERVERS = {
|
|
"https://plex.tv/api/v2",
|
|
};
|
|
|
|
/**
|
|
* GET_TOKEN_BY_PIN_ID_SERVERS contains the list of server urls available to the SDK.
|
|
*/
|
|
public static final String[] GET_TOKEN_BY_PIN_ID_SERVERS = {
|
|
"https://plex.tv/api/v2",
|
|
};
|
|
|
|
private final SDKConfiguration sdkConfiguration;
|
|
|
|
Plex(SDKConfiguration sdkConfiguration) {
|
|
this.sdkConfiguration = sdkConfiguration;
|
|
}
|
|
|
|
|
|
/**
|
|
* Get Companions Data
|
|
* Get Companions Data
|
|
* @return The call builder
|
|
*/
|
|
public GetCompanionsDataRequestBuilder getCompanionsData() {
|
|
return new GetCompanionsDataRequestBuilder(this);
|
|
}
|
|
|
|
/**
|
|
* Get Companions Data
|
|
* Get Companions Data
|
|
* @return The response from the API call
|
|
* @throws Exception if the API call fails
|
|
*/
|
|
public GetCompanionsDataResponse getCompanionsDataDirect() throws Exception {
|
|
return getCompanionsData(Optional.empty());
|
|
}
|
|
|
|
/**
|
|
* Get Companions Data
|
|
* Get Companions Data
|
|
* @param serverURL Overrides the server URL.
|
|
* @return The response from the API call
|
|
* @throws Exception if the API call fails
|
|
*/
|
|
public GetCompanionsDataResponse getCompanionsData(
|
|
Optional<String> serverURL) throws Exception {
|
|
String _baseUrl = Utils.templateUrl(GET_COMPANIONS_DATA_SERVERS[0], new HashMap<String, String>());
|
|
if (serverURL.isPresent() && !serverURL.get().isBlank()) {
|
|
_baseUrl = serverURL.get();
|
|
}
|
|
String _url = Utils.generateURL(
|
|
_baseUrl,
|
|
"/companions");
|
|
|
|
HTTPRequest _req = new HTTPRequest(_url, "GET");
|
|
_req.addHeader("Accept", "application/json")
|
|
.addHeader("user-agent",
|
|
SDKConfiguration.USER_AGENT);
|
|
|
|
Utils.configureSecurity(_req,
|
|
this.sdkConfiguration.securitySource.getSecurity());
|
|
|
|
HTTPClient _client = this.sdkConfiguration.defaultClient;
|
|
HttpRequest _r =
|
|
sdkConfiguration.hooks()
|
|
.beforeRequest(
|
|
new BeforeRequestContextImpl(
|
|
"getCompanionsData",
|
|
Optional.of(List.of()),
|
|
sdkConfiguration.securitySource()),
|
|
_req.build());
|
|
HttpResponse<InputStream> _httpRes;
|
|
try {
|
|
_httpRes = _client.send(_r);
|
|
if (Utils.statusCodeMatches(_httpRes.statusCode(), "400", "401", "4XX", "5XX")) {
|
|
_httpRes = sdkConfiguration.hooks()
|
|
.afterError(
|
|
new AfterErrorContextImpl(
|
|
"getCompanionsData",
|
|
Optional.of(List.of()),
|
|
sdkConfiguration.securitySource()),
|
|
Optional.of(_httpRes),
|
|
Optional.empty());
|
|
} else {
|
|
_httpRes = sdkConfiguration.hooks()
|
|
.afterSuccess(
|
|
new AfterSuccessContextImpl(
|
|
"getCompanionsData",
|
|
Optional.of(List.of()),
|
|
sdkConfiguration.securitySource()),
|
|
_httpRes);
|
|
}
|
|
} catch (Exception _e) {
|
|
_httpRes = sdkConfiguration.hooks()
|
|
.afterError(
|
|
new AfterErrorContextImpl(
|
|
"getCompanionsData",
|
|
Optional.of(List.of()),
|
|
sdkConfiguration.securitySource()),
|
|
Optional.empty(),
|
|
Optional.of(_e));
|
|
}
|
|
String _contentType = _httpRes
|
|
.headers()
|
|
.firstValue("Content-Type")
|
|
.orElse("application/octet-stream");
|
|
GetCompanionsDataResponse.Builder _resBuilder =
|
|
GetCompanionsDataResponse
|
|
.builder()
|
|
.contentType(_contentType)
|
|
.statusCode(_httpRes.statusCode())
|
|
.rawResponse(_httpRes);
|
|
|
|
GetCompanionsDataResponse _res = _resBuilder.build();
|
|
|
|
if (Utils.statusCodeMatches(_httpRes.statusCode(), "200")) {
|
|
if (Utils.contentTypeMatches(_contentType, "application/json")) {
|
|
List<ResponseBody> _out = Utils.mapper().readValue(
|
|
Utils.toUtf8AndClose(_httpRes.body()),
|
|
new TypeReference<List<ResponseBody>>() {});
|
|
_res.withResponseBodies(Optional.ofNullable(_out));
|
|
return _res;
|
|
} else {
|
|
throw new SDKError(
|
|
_httpRes,
|
|
_httpRes.statusCode(),
|
|
"Unexpected content-type received: " + _contentType,
|
|
Utils.extractByteArrayFromBody(_httpRes));
|
|
}
|
|
}
|
|
if (Utils.statusCodeMatches(_httpRes.statusCode(), "400")) {
|
|
if (Utils.contentTypeMatches(_contentType, "application/json")) {
|
|
GetCompanionsDataBadRequest _out = Utils.mapper().readValue(
|
|
Utils.toUtf8AndClose(_httpRes.body()),
|
|
new TypeReference<GetCompanionsDataBadRequest>() {});
|
|
_out.withRawResponse(Optional.ofNullable(_httpRes));
|
|
|
|
throw _out;
|
|
} else {
|
|
throw new SDKError(
|
|
_httpRes,
|
|
_httpRes.statusCode(),
|
|
"Unexpected content-type received: " + _contentType,
|
|
Utils.extractByteArrayFromBody(_httpRes));
|
|
}
|
|
}
|
|
if (Utils.statusCodeMatches(_httpRes.statusCode(), "401")) {
|
|
if (Utils.contentTypeMatches(_contentType, "application/json")) {
|
|
GetCompanionsDataUnauthorized _out = Utils.mapper().readValue(
|
|
Utils.toUtf8AndClose(_httpRes.body()),
|
|
new TypeReference<GetCompanionsDataUnauthorized>() {});
|
|
_out.withRawResponse(Optional.ofNullable(_httpRes));
|
|
|
|
throw _out;
|
|
} else {
|
|
throw new SDKError(
|
|
_httpRes,
|
|
_httpRes.statusCode(),
|
|
"Unexpected content-type received: " + _contentType,
|
|
Utils.extractByteArrayFromBody(_httpRes));
|
|
}
|
|
}
|
|
if (Utils.statusCodeMatches(_httpRes.statusCode(), "4XX", "5XX")) {
|
|
// no content
|
|
throw new SDKError(
|
|
_httpRes,
|
|
_httpRes.statusCode(),
|
|
"API error occurred",
|
|
Utils.extractByteArrayFromBody(_httpRes));
|
|
}
|
|
throw new SDKError(
|
|
_httpRes,
|
|
_httpRes.statusCode(),
|
|
"Unexpected status code received: " + _httpRes.statusCode(),
|
|
Utils.extractByteArrayFromBody(_httpRes));
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* Get list of friends of the user logged in
|
|
* Get friends of provided auth token.
|
|
* @return The call builder
|
|
*/
|
|
public GetUserFriendsRequestBuilder getUserFriends() {
|
|
return new GetUserFriendsRequestBuilder(this);
|
|
}
|
|
|
|
/**
|
|
* Get list of friends of the user logged in
|
|
* Get friends of provided auth token.
|
|
* @return The response from the API call
|
|
* @throws Exception if the API call fails
|
|
*/
|
|
public GetUserFriendsResponse getUserFriendsDirect() throws Exception {
|
|
return getUserFriends(Optional.empty());
|
|
}
|
|
|
|
/**
|
|
* Get list of friends of the user logged in
|
|
* Get friends of provided auth token.
|
|
* @param serverURL Overrides the server URL.
|
|
* @return The response from the API call
|
|
* @throws Exception if the API call fails
|
|
*/
|
|
public GetUserFriendsResponse getUserFriends(
|
|
Optional<String> serverURL) throws Exception {
|
|
String _baseUrl = Utils.templateUrl(GET_USER_FRIENDS_SERVERS[0], new HashMap<String, String>());
|
|
if (serverURL.isPresent() && !serverURL.get().isBlank()) {
|
|
_baseUrl = serverURL.get();
|
|
}
|
|
String _url = Utils.generateURL(
|
|
_baseUrl,
|
|
"/friends");
|
|
|
|
HTTPRequest _req = new HTTPRequest(_url, "GET");
|
|
_req.addHeader("Accept", "application/json")
|
|
.addHeader("user-agent",
|
|
SDKConfiguration.USER_AGENT);
|
|
|
|
Utils.configureSecurity(_req,
|
|
this.sdkConfiguration.securitySource.getSecurity());
|
|
|
|
HTTPClient _client = this.sdkConfiguration.defaultClient;
|
|
HttpRequest _r =
|
|
sdkConfiguration.hooks()
|
|
.beforeRequest(
|
|
new BeforeRequestContextImpl(
|
|
"getUserFriends",
|
|
Optional.of(List.of()),
|
|
sdkConfiguration.securitySource()),
|
|
_req.build());
|
|
HttpResponse<InputStream> _httpRes;
|
|
try {
|
|
_httpRes = _client.send(_r);
|
|
if (Utils.statusCodeMatches(_httpRes.statusCode(), "400", "401", "4XX", "5XX")) {
|
|
_httpRes = sdkConfiguration.hooks()
|
|
.afterError(
|
|
new AfterErrorContextImpl(
|
|
"getUserFriends",
|
|
Optional.of(List.of()),
|
|
sdkConfiguration.securitySource()),
|
|
Optional.of(_httpRes),
|
|
Optional.empty());
|
|
} else {
|
|
_httpRes = sdkConfiguration.hooks()
|
|
.afterSuccess(
|
|
new AfterSuccessContextImpl(
|
|
"getUserFriends",
|
|
Optional.of(List.of()),
|
|
sdkConfiguration.securitySource()),
|
|
_httpRes);
|
|
}
|
|
} catch (Exception _e) {
|
|
_httpRes = sdkConfiguration.hooks()
|
|
.afterError(
|
|
new AfterErrorContextImpl(
|
|
"getUserFriends",
|
|
Optional.of(List.of()),
|
|
sdkConfiguration.securitySource()),
|
|
Optional.empty(),
|
|
Optional.of(_e));
|
|
}
|
|
String _contentType = _httpRes
|
|
.headers()
|
|
.firstValue("Content-Type")
|
|
.orElse("application/octet-stream");
|
|
GetUserFriendsResponse.Builder _resBuilder =
|
|
GetUserFriendsResponse
|
|
.builder()
|
|
.contentType(_contentType)
|
|
.statusCode(_httpRes.statusCode())
|
|
.rawResponse(_httpRes);
|
|
|
|
GetUserFriendsResponse _res = _resBuilder.build();
|
|
|
|
if (Utils.statusCodeMatches(_httpRes.statusCode(), "200")) {
|
|
if (Utils.contentTypeMatches(_contentType, "application/json")) {
|
|
List<Friend> _out = Utils.mapper().readValue(
|
|
Utils.toUtf8AndClose(_httpRes.body()),
|
|
new TypeReference<List<Friend>>() {});
|
|
_res.withFriends(Optional.ofNullable(_out));
|
|
return _res;
|
|
} else {
|
|
throw new SDKError(
|
|
_httpRes,
|
|
_httpRes.statusCode(),
|
|
"Unexpected content-type received: " + _contentType,
|
|
Utils.extractByteArrayFromBody(_httpRes));
|
|
}
|
|
}
|
|
if (Utils.statusCodeMatches(_httpRes.statusCode(), "400")) {
|
|
if (Utils.contentTypeMatches(_contentType, "application/json")) {
|
|
GetUserFriendsBadRequest _out = Utils.mapper().readValue(
|
|
Utils.toUtf8AndClose(_httpRes.body()),
|
|
new TypeReference<GetUserFriendsBadRequest>() {});
|
|
_out.withRawResponse(Optional.ofNullable(_httpRes));
|
|
|
|
throw _out;
|
|
} else {
|
|
throw new SDKError(
|
|
_httpRes,
|
|
_httpRes.statusCode(),
|
|
"Unexpected content-type received: " + _contentType,
|
|
Utils.extractByteArrayFromBody(_httpRes));
|
|
}
|
|
}
|
|
if (Utils.statusCodeMatches(_httpRes.statusCode(), "401")) {
|
|
if (Utils.contentTypeMatches(_contentType, "application/json")) {
|
|
GetUserFriendsUnauthorized _out = Utils.mapper().readValue(
|
|
Utils.toUtf8AndClose(_httpRes.body()),
|
|
new TypeReference<GetUserFriendsUnauthorized>() {});
|
|
_out.withRawResponse(Optional.ofNullable(_httpRes));
|
|
|
|
throw _out;
|
|
} else {
|
|
throw new SDKError(
|
|
_httpRes,
|
|
_httpRes.statusCode(),
|
|
"Unexpected content-type received: " + _contentType,
|
|
Utils.extractByteArrayFromBody(_httpRes));
|
|
}
|
|
}
|
|
if (Utils.statusCodeMatches(_httpRes.statusCode(), "4XX", "5XX")) {
|
|
// no content
|
|
throw new SDKError(
|
|
_httpRes,
|
|
_httpRes.statusCode(),
|
|
"API error occurred",
|
|
Utils.extractByteArrayFromBody(_httpRes));
|
|
}
|
|
throw new SDKError(
|
|
_httpRes,
|
|
_httpRes.statusCode(),
|
|
"Unexpected status code received: " + _httpRes.statusCode(),
|
|
Utils.extractByteArrayFromBody(_httpRes));
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* Get Geo Data
|
|
* Returns the geolocation and locale data of the caller
|
|
* @return The call builder
|
|
*/
|
|
public GetGeoDataRequestBuilder getGeoData() {
|
|
return new GetGeoDataRequestBuilder(this);
|
|
}
|
|
|
|
/**
|
|
* Get Geo Data
|
|
* Returns the geolocation and locale data of the caller
|
|
* @return The response from the API call
|
|
* @throws Exception if the API call fails
|
|
*/
|
|
public GetGeoDataResponse getGeoDataDirect() throws Exception {
|
|
return getGeoData(Optional.empty());
|
|
}
|
|
|
|
/**
|
|
* Get Geo Data
|
|
* Returns the geolocation and locale data of the caller
|
|
* @param serverURL Overrides the server URL.
|
|
* @return The response from the API call
|
|
* @throws Exception if the API call fails
|
|
*/
|
|
public GetGeoDataResponse getGeoData(
|
|
Optional<String> serverURL) throws Exception {
|
|
String _baseUrl = Utils.templateUrl(GET_GEO_DATA_SERVERS[0], new HashMap<String, String>());
|
|
if (serverURL.isPresent() && !serverURL.get().isBlank()) {
|
|
_baseUrl = serverURL.get();
|
|
}
|
|
String _url = Utils.generateURL(
|
|
_baseUrl,
|
|
"/geoip");
|
|
|
|
HTTPRequest _req = new HTTPRequest(_url, "GET");
|
|
_req.addHeader("Accept", "application/json")
|
|
.addHeader("user-agent",
|
|
SDKConfiguration.USER_AGENT);
|
|
|
|
HTTPClient _client = this.sdkConfiguration.defaultClient;
|
|
HttpRequest _r =
|
|
sdkConfiguration.hooks()
|
|
.beforeRequest(
|
|
new BeforeRequestContextImpl(
|
|
"getGeoData",
|
|
Optional.of(List.of()),
|
|
sdkConfiguration.securitySource()),
|
|
_req.build());
|
|
HttpResponse<InputStream> _httpRes;
|
|
try {
|
|
_httpRes = _client.send(_r);
|
|
if (Utils.statusCodeMatches(_httpRes.statusCode(), "400", "401", "4XX", "5XX")) {
|
|
_httpRes = sdkConfiguration.hooks()
|
|
.afterError(
|
|
new AfterErrorContextImpl(
|
|
"getGeoData",
|
|
Optional.of(List.of()),
|
|
sdkConfiguration.securitySource()),
|
|
Optional.of(_httpRes),
|
|
Optional.empty());
|
|
} else {
|
|
_httpRes = sdkConfiguration.hooks()
|
|
.afterSuccess(
|
|
new AfterSuccessContextImpl(
|
|
"getGeoData",
|
|
Optional.of(List.of()),
|
|
sdkConfiguration.securitySource()),
|
|
_httpRes);
|
|
}
|
|
} catch (Exception _e) {
|
|
_httpRes = sdkConfiguration.hooks()
|
|
.afterError(
|
|
new AfterErrorContextImpl(
|
|
"getGeoData",
|
|
Optional.of(List.of()),
|
|
sdkConfiguration.securitySource()),
|
|
Optional.empty(),
|
|
Optional.of(_e));
|
|
}
|
|
String _contentType = _httpRes
|
|
.headers()
|
|
.firstValue("Content-Type")
|
|
.orElse("application/octet-stream");
|
|
GetGeoDataResponse.Builder _resBuilder =
|
|
GetGeoDataResponse
|
|
.builder()
|
|
.contentType(_contentType)
|
|
.statusCode(_httpRes.statusCode())
|
|
.rawResponse(_httpRes);
|
|
|
|
GetGeoDataResponse _res = _resBuilder.build();
|
|
|
|
if (Utils.statusCodeMatches(_httpRes.statusCode(), "200")) {
|
|
if (Utils.contentTypeMatches(_contentType, "application/json")) {
|
|
GetGeoDataGeoData _out = Utils.mapper().readValue(
|
|
Utils.toUtf8AndClose(_httpRes.body()),
|
|
new TypeReference<GetGeoDataGeoData>() {});
|
|
_res.withGeoData(Optional.ofNullable(_out));
|
|
return _res;
|
|
} else {
|
|
throw new SDKError(
|
|
_httpRes,
|
|
_httpRes.statusCode(),
|
|
"Unexpected content-type received: " + _contentType,
|
|
Utils.extractByteArrayFromBody(_httpRes));
|
|
}
|
|
}
|
|
if (Utils.statusCodeMatches(_httpRes.statusCode(), "400")) {
|
|
if (Utils.contentTypeMatches(_contentType, "application/json")) {
|
|
GetGeoDataBadRequest _out = Utils.mapper().readValue(
|
|
Utils.toUtf8AndClose(_httpRes.body()),
|
|
new TypeReference<GetGeoDataBadRequest>() {});
|
|
_out.withRawResponse(Optional.ofNullable(_httpRes));
|
|
|
|
throw _out;
|
|
} else {
|
|
throw new SDKError(
|
|
_httpRes,
|
|
_httpRes.statusCode(),
|
|
"Unexpected content-type received: " + _contentType,
|
|
Utils.extractByteArrayFromBody(_httpRes));
|
|
}
|
|
}
|
|
if (Utils.statusCodeMatches(_httpRes.statusCode(), "401")) {
|
|
if (Utils.contentTypeMatches(_contentType, "application/json")) {
|
|
GetGeoDataUnauthorized _out = Utils.mapper().readValue(
|
|
Utils.toUtf8AndClose(_httpRes.body()),
|
|
new TypeReference<GetGeoDataUnauthorized>() {});
|
|
_out.withRawResponse(Optional.ofNullable(_httpRes));
|
|
|
|
throw _out;
|
|
} else {
|
|
throw new SDKError(
|
|
_httpRes,
|
|
_httpRes.statusCode(),
|
|
"Unexpected content-type received: " + _contentType,
|
|
Utils.extractByteArrayFromBody(_httpRes));
|
|
}
|
|
}
|
|
if (Utils.statusCodeMatches(_httpRes.statusCode(), "4XX", "5XX")) {
|
|
// no content
|
|
throw new SDKError(
|
|
_httpRes,
|
|
_httpRes.statusCode(),
|
|
"API error occurred",
|
|
Utils.extractByteArrayFromBody(_httpRes));
|
|
}
|
|
throw new SDKError(
|
|
_httpRes,
|
|
_httpRes.statusCode(),
|
|
"Unexpected status code received: " + _httpRes.statusCode(),
|
|
Utils.extractByteArrayFromBody(_httpRes));
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* Get Plex Home Data
|
|
* Retrieves the home data for the authenticated user, including details like home ID, name, guest access information, and subscription status.
|
|
* @return The call builder
|
|
*/
|
|
public GetHomeDataRequestBuilder getHomeData() {
|
|
return new GetHomeDataRequestBuilder(this);
|
|
}
|
|
|
|
/**
|
|
* Get Plex Home Data
|
|
* Retrieves the home data for the authenticated user, including details like home ID, name, guest access information, and subscription status.
|
|
* @return The response from the API call
|
|
* @throws Exception if the API call fails
|
|
*/
|
|
public GetHomeDataResponse getHomeDataDirect() throws Exception {
|
|
String _baseUrl = Utils.templateUrl(
|
|
this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults());
|
|
String _url = Utils.generateURL(
|
|
_baseUrl,
|
|
"/home");
|
|
|
|
HTTPRequest _req = new HTTPRequest(_url, "GET");
|
|
_req.addHeader("Accept", "application/json")
|
|
.addHeader("user-agent",
|
|
SDKConfiguration.USER_AGENT);
|
|
|
|
Utils.configureSecurity(_req,
|
|
this.sdkConfiguration.securitySource.getSecurity());
|
|
|
|
HTTPClient _client = this.sdkConfiguration.defaultClient;
|
|
HttpRequest _r =
|
|
sdkConfiguration.hooks()
|
|
.beforeRequest(
|
|
new BeforeRequestContextImpl(
|
|
"getHomeData",
|
|
Optional.of(List.of()),
|
|
sdkConfiguration.securitySource()),
|
|
_req.build());
|
|
HttpResponse<InputStream> _httpRes;
|
|
try {
|
|
_httpRes = _client.send(_r);
|
|
if (Utils.statusCodeMatches(_httpRes.statusCode(), "400", "401", "4XX", "5XX")) {
|
|
_httpRes = sdkConfiguration.hooks()
|
|
.afterError(
|
|
new AfterErrorContextImpl(
|
|
"getHomeData",
|
|
Optional.of(List.of()),
|
|
sdkConfiguration.securitySource()),
|
|
Optional.of(_httpRes),
|
|
Optional.empty());
|
|
} else {
|
|
_httpRes = sdkConfiguration.hooks()
|
|
.afterSuccess(
|
|
new AfterSuccessContextImpl(
|
|
"getHomeData",
|
|
Optional.of(List.of()),
|
|
sdkConfiguration.securitySource()),
|
|
_httpRes);
|
|
}
|
|
} catch (Exception _e) {
|
|
_httpRes = sdkConfiguration.hooks()
|
|
.afterError(
|
|
new AfterErrorContextImpl(
|
|
"getHomeData",
|
|
Optional.of(List.of()),
|
|
sdkConfiguration.securitySource()),
|
|
Optional.empty(),
|
|
Optional.of(_e));
|
|
}
|
|
String _contentType = _httpRes
|
|
.headers()
|
|
.firstValue("Content-Type")
|
|
.orElse("application/octet-stream");
|
|
GetHomeDataResponse.Builder _resBuilder =
|
|
GetHomeDataResponse
|
|
.builder()
|
|
.contentType(_contentType)
|
|
.statusCode(_httpRes.statusCode())
|
|
.rawResponse(_httpRes);
|
|
|
|
GetHomeDataResponse _res = _resBuilder.build();
|
|
|
|
if (Utils.statusCodeMatches(_httpRes.statusCode(), "200")) {
|
|
if (Utils.contentTypeMatches(_contentType, "application/json")) {
|
|
GetHomeDataResponseBody _out = Utils.mapper().readValue(
|
|
Utils.toUtf8AndClose(_httpRes.body()),
|
|
new TypeReference<GetHomeDataResponseBody>() {});
|
|
_res.withObject(Optional.ofNullable(_out));
|
|
return _res;
|
|
} else {
|
|
throw new SDKError(
|
|
_httpRes,
|
|
_httpRes.statusCode(),
|
|
"Unexpected content-type received: " + _contentType,
|
|
Utils.extractByteArrayFromBody(_httpRes));
|
|
}
|
|
}
|
|
if (Utils.statusCodeMatches(_httpRes.statusCode(), "400")) {
|
|
if (Utils.contentTypeMatches(_contentType, "application/json")) {
|
|
GetHomeDataBadRequest _out = Utils.mapper().readValue(
|
|
Utils.toUtf8AndClose(_httpRes.body()),
|
|
new TypeReference<GetHomeDataBadRequest>() {});
|
|
_out.withRawResponse(Optional.ofNullable(_httpRes));
|
|
|
|
throw _out;
|
|
} else {
|
|
throw new SDKError(
|
|
_httpRes,
|
|
_httpRes.statusCode(),
|
|
"Unexpected content-type received: " + _contentType,
|
|
Utils.extractByteArrayFromBody(_httpRes));
|
|
}
|
|
}
|
|
if (Utils.statusCodeMatches(_httpRes.statusCode(), "401")) {
|
|
if (Utils.contentTypeMatches(_contentType, "application/json")) {
|
|
GetHomeDataUnauthorized _out = Utils.mapper().readValue(
|
|
Utils.toUtf8AndClose(_httpRes.body()),
|
|
new TypeReference<GetHomeDataUnauthorized>() {});
|
|
_out.withRawResponse(Optional.ofNullable(_httpRes));
|
|
|
|
throw _out;
|
|
} else {
|
|
throw new SDKError(
|
|
_httpRes,
|
|
_httpRes.statusCode(),
|
|
"Unexpected content-type received: " + _contentType,
|
|
Utils.extractByteArrayFromBody(_httpRes));
|
|
}
|
|
}
|
|
if (Utils.statusCodeMatches(_httpRes.statusCode(), "4XX", "5XX")) {
|
|
// no content
|
|
throw new SDKError(
|
|
_httpRes,
|
|
_httpRes.statusCode(),
|
|
"API error occurred",
|
|
Utils.extractByteArrayFromBody(_httpRes));
|
|
}
|
|
throw new SDKError(
|
|
_httpRes,
|
|
_httpRes.statusCode(),
|
|
"Unexpected status code received: " + _httpRes.statusCode(),
|
|
Utils.extractByteArrayFromBody(_httpRes));
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* Get Server Resources
|
|
* Get Plex server access tokens and server connections
|
|
* @return The call builder
|
|
*/
|
|
public GetServerResourcesRequestBuilder getServerResources() {
|
|
return new GetServerResourcesRequestBuilder(this);
|
|
}
|
|
|
|
/**
|
|
* Get Server Resources
|
|
* Get Plex server access tokens and server connections
|
|
* @return The response from the API call
|
|
* @throws Exception if the API call fails
|
|
*/
|
|
public GetServerResourcesResponse getServerResourcesDirect() throws Exception {
|
|
return getServerResources(Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty());
|
|
}
|
|
|
|
/**
|
|
* Get Server Resources
|
|
* Get Plex server access tokens and server connections
|
|
* @param includeHttps Include Https entries in the results
|
|
* @param includeRelay Include Relay addresses in the results
|
|
E.g: https://10-0-0-25.bbf8e10c7fa20447cacee74cd9914cde.plex.direct:32400
|
|
|
|
* @param includeIPv6 Include IPv6 entries in the results
|
|
* @param clientID An opaque identifier unique to the client (UUID, serial number, or other unique device ID)
|
|
* @param serverURL Overrides the server URL.
|
|
* @return The response from the API call
|
|
* @throws Exception if the API call fails
|
|
*/
|
|
public GetServerResourcesResponse getServerResources(
|
|
Optional<? extends IncludeHttps> includeHttps,
|
|
Optional<? extends IncludeRelay> includeRelay,
|
|
Optional<? extends IncludeIPv6> includeIPv6,
|
|
Optional<String> clientID,
|
|
Optional<String> serverURL) throws Exception {
|
|
GetServerResourcesRequest request =
|
|
GetServerResourcesRequest
|
|
.builder()
|
|
.includeHttps(includeHttps)
|
|
.includeRelay(includeRelay)
|
|
.includeIPv6(includeIPv6)
|
|
.clientID(clientID)
|
|
.build();
|
|
|
|
String _baseUrl = Utils.templateUrl(GET_SERVER_RESOURCES_SERVERS[0], new HashMap<String, String>());
|
|
if (serverURL.isPresent() && !serverURL.get().isBlank()) {
|
|
_baseUrl = serverURL.get();
|
|
}
|
|
String _url = Utils.generateURL(
|
|
_baseUrl,
|
|
"/resources");
|
|
|
|
HTTPRequest _req = new HTTPRequest(_url, "GET");
|
|
_req.addHeader("Accept", "application/json")
|
|
.addHeader("user-agent",
|
|
SDKConfiguration.USER_AGENT);
|
|
|
|
_req.addQueryParams(Utils.getQueryParams(
|
|
GetServerResourcesRequest.class,
|
|
request,
|
|
this.sdkConfiguration.globals));
|
|
_req.addHeaders(Utils.getHeadersFromMetadata(request, this.sdkConfiguration.globals));
|
|
|
|
Utils.configureSecurity(_req,
|
|
this.sdkConfiguration.securitySource.getSecurity());
|
|
|
|
HTTPClient _client = this.sdkConfiguration.defaultClient;
|
|
HttpRequest _r =
|
|
sdkConfiguration.hooks()
|
|
.beforeRequest(
|
|
new BeforeRequestContextImpl(
|
|
"get-server-resources",
|
|
Optional.of(List.of()),
|
|
sdkConfiguration.securitySource()),
|
|
_req.build());
|
|
HttpResponse<InputStream> _httpRes;
|
|
try {
|
|
_httpRes = _client.send(_r);
|
|
if (Utils.statusCodeMatches(_httpRes.statusCode(), "400", "401", "4XX", "5XX")) {
|
|
_httpRes = sdkConfiguration.hooks()
|
|
.afterError(
|
|
new AfterErrorContextImpl(
|
|
"get-server-resources",
|
|
Optional.of(List.of()),
|
|
sdkConfiguration.securitySource()),
|
|
Optional.of(_httpRes),
|
|
Optional.empty());
|
|
} else {
|
|
_httpRes = sdkConfiguration.hooks()
|
|
.afterSuccess(
|
|
new AfterSuccessContextImpl(
|
|
"get-server-resources",
|
|
Optional.of(List.of()),
|
|
sdkConfiguration.securitySource()),
|
|
_httpRes);
|
|
}
|
|
} catch (Exception _e) {
|
|
_httpRes = sdkConfiguration.hooks()
|
|
.afterError(
|
|
new AfterErrorContextImpl(
|
|
"get-server-resources",
|
|
Optional.of(List.of()),
|
|
sdkConfiguration.securitySource()),
|
|
Optional.empty(),
|
|
Optional.of(_e));
|
|
}
|
|
String _contentType = _httpRes
|
|
.headers()
|
|
.firstValue("Content-Type")
|
|
.orElse("application/octet-stream");
|
|
GetServerResourcesResponse.Builder _resBuilder =
|
|
GetServerResourcesResponse
|
|
.builder()
|
|
.contentType(_contentType)
|
|
.statusCode(_httpRes.statusCode())
|
|
.rawResponse(_httpRes);
|
|
|
|
GetServerResourcesResponse _res = _resBuilder.build();
|
|
|
|
if (Utils.statusCodeMatches(_httpRes.statusCode(), "200")) {
|
|
if (Utils.contentTypeMatches(_contentType, "application/json")) {
|
|
List<PlexDevice> _out = Utils.mapper().readValue(
|
|
Utils.toUtf8AndClose(_httpRes.body()),
|
|
new TypeReference<List<PlexDevice>>() {});
|
|
_res.withPlexDevices(Optional.ofNullable(_out));
|
|
return _res;
|
|
} else {
|
|
throw new SDKError(
|
|
_httpRes,
|
|
_httpRes.statusCode(),
|
|
"Unexpected content-type received: " + _contentType,
|
|
Utils.extractByteArrayFromBody(_httpRes));
|
|
}
|
|
}
|
|
if (Utils.statusCodeMatches(_httpRes.statusCode(), "400")) {
|
|
if (Utils.contentTypeMatches(_contentType, "application/json")) {
|
|
GetServerResourcesBadRequest _out = Utils.mapper().readValue(
|
|
Utils.toUtf8AndClose(_httpRes.body()),
|
|
new TypeReference<GetServerResourcesBadRequest>() {});
|
|
_out.withRawResponse(Optional.ofNullable(_httpRes));
|
|
|
|
throw _out;
|
|
} else {
|
|
throw new SDKError(
|
|
_httpRes,
|
|
_httpRes.statusCode(),
|
|
"Unexpected content-type received: " + _contentType,
|
|
Utils.extractByteArrayFromBody(_httpRes));
|
|
}
|
|
}
|
|
if (Utils.statusCodeMatches(_httpRes.statusCode(), "401")) {
|
|
if (Utils.contentTypeMatches(_contentType, "application/json")) {
|
|
GetServerResourcesUnauthorized _out = Utils.mapper().readValue(
|
|
Utils.toUtf8AndClose(_httpRes.body()),
|
|
new TypeReference<GetServerResourcesUnauthorized>() {});
|
|
_out.withRawResponse(Optional.ofNullable(_httpRes));
|
|
|
|
throw _out;
|
|
} else {
|
|
throw new SDKError(
|
|
_httpRes,
|
|
_httpRes.statusCode(),
|
|
"Unexpected content-type received: " + _contentType,
|
|
Utils.extractByteArrayFromBody(_httpRes));
|
|
}
|
|
}
|
|
if (Utils.statusCodeMatches(_httpRes.statusCode(), "4XX", "5XX")) {
|
|
// no content
|
|
throw new SDKError(
|
|
_httpRes,
|
|
_httpRes.statusCode(),
|
|
"API error occurred",
|
|
Utils.extractByteArrayFromBody(_httpRes));
|
|
}
|
|
throw new SDKError(
|
|
_httpRes,
|
|
_httpRes.statusCode(),
|
|
"Unexpected status code received: " + _httpRes.statusCode(),
|
|
Utils.extractByteArrayFromBody(_httpRes));
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* Get a Pin
|
|
* Retrieve a Pin ID from Plex.tv to use for authentication flows
|
|
* @return The call builder
|
|
*/
|
|
public GetPinRequestBuilder getPin() {
|
|
return new GetPinRequestBuilder(this);
|
|
}
|
|
|
|
/**
|
|
* Get a Pin
|
|
* Retrieve a Pin ID from Plex.tv to use for authentication flows
|
|
* @param request The request object containing all of the parameters for the API call.
|
|
* @return The response from the API call
|
|
* @throws Exception if the API call fails
|
|
*/
|
|
public GetPinResponse getPin(
|
|
GetPinRequest request) throws Exception {
|
|
return getPin(request, Optional.empty());
|
|
}
|
|
|
|
/**
|
|
* Get a Pin
|
|
* Retrieve a Pin ID from Plex.tv to use for authentication flows
|
|
* @param request The request object containing all of the parameters for the API call.
|
|
* @param serverURL Overrides the server URL.
|
|
* @return The response from the API call
|
|
* @throws Exception if the API call fails
|
|
*/
|
|
public GetPinResponse getPin(
|
|
GetPinRequest request,
|
|
Optional<String> serverURL) throws Exception {
|
|
String _baseUrl = Utils.templateUrl(GET_PIN_SERVERS[0], new HashMap<String, String>());
|
|
if (serverURL.isPresent() && !serverURL.get().isBlank()) {
|
|
_baseUrl = serverURL.get();
|
|
}
|
|
String _url = Utils.generateURL(
|
|
_baseUrl,
|
|
"/pins");
|
|
|
|
HTTPRequest _req = new HTTPRequest(_url, "POST");
|
|
_req.addHeader("Accept", "application/json")
|
|
.addHeader("user-agent",
|
|
SDKConfiguration.USER_AGENT);
|
|
|
|
_req.addQueryParams(Utils.getQueryParams(
|
|
GetPinRequest.class,
|
|
request,
|
|
this.sdkConfiguration.globals));
|
|
_req.addHeaders(Utils.getHeadersFromMetadata(request, this.sdkConfiguration.globals));
|
|
|
|
HTTPClient _client = this.sdkConfiguration.defaultClient;
|
|
HttpRequest _r =
|
|
sdkConfiguration.hooks()
|
|
.beforeRequest(
|
|
new BeforeRequestContextImpl(
|
|
"getPin",
|
|
Optional.of(List.of()),
|
|
sdkConfiguration.securitySource()),
|
|
_req.build());
|
|
HttpResponse<InputStream> _httpRes;
|
|
try {
|
|
_httpRes = _client.send(_r);
|
|
if (Utils.statusCodeMatches(_httpRes.statusCode(), "400", "4XX", "5XX")) {
|
|
_httpRes = sdkConfiguration.hooks()
|
|
.afterError(
|
|
new AfterErrorContextImpl(
|
|
"getPin",
|
|
Optional.of(List.of()),
|
|
sdkConfiguration.securitySource()),
|
|
Optional.of(_httpRes),
|
|
Optional.empty());
|
|
} else {
|
|
_httpRes = sdkConfiguration.hooks()
|
|
.afterSuccess(
|
|
new AfterSuccessContextImpl(
|
|
"getPin",
|
|
Optional.of(List.of()),
|
|
sdkConfiguration.securitySource()),
|
|
_httpRes);
|
|
}
|
|
} catch (Exception _e) {
|
|
_httpRes = sdkConfiguration.hooks()
|
|
.afterError(
|
|
new AfterErrorContextImpl(
|
|
"getPin",
|
|
Optional.of(List.of()),
|
|
sdkConfiguration.securitySource()),
|
|
Optional.empty(),
|
|
Optional.of(_e));
|
|
}
|
|
String _contentType = _httpRes
|
|
.headers()
|
|
.firstValue("Content-Type")
|
|
.orElse("application/octet-stream");
|
|
GetPinResponse.Builder _resBuilder =
|
|
GetPinResponse
|
|
.builder()
|
|
.contentType(_contentType)
|
|
.statusCode(_httpRes.statusCode())
|
|
.rawResponse(_httpRes);
|
|
|
|
GetPinResponse _res = _resBuilder.build();
|
|
|
|
if (Utils.statusCodeMatches(_httpRes.statusCode(), "201")) {
|
|
if (Utils.contentTypeMatches(_contentType, "application/json")) {
|
|
GetPinAuthPinContainer _out = Utils.mapper().readValue(
|
|
Utils.toUtf8AndClose(_httpRes.body()),
|
|
new TypeReference<GetPinAuthPinContainer>() {});
|
|
_res.withAuthPinContainer(Optional.ofNullable(_out));
|
|
return _res;
|
|
} else {
|
|
throw new SDKError(
|
|
_httpRes,
|
|
_httpRes.statusCode(),
|
|
"Unexpected content-type received: " + _contentType,
|
|
Utils.extractByteArrayFromBody(_httpRes));
|
|
}
|
|
}
|
|
if (Utils.statusCodeMatches(_httpRes.statusCode(), "400")) {
|
|
if (Utils.contentTypeMatches(_contentType, "application/json")) {
|
|
GetPinBadRequest _out = Utils.mapper().readValue(
|
|
Utils.toUtf8AndClose(_httpRes.body()),
|
|
new TypeReference<GetPinBadRequest>() {});
|
|
_out.withRawResponse(Optional.ofNullable(_httpRes));
|
|
|
|
throw _out;
|
|
} else {
|
|
throw new SDKError(
|
|
_httpRes,
|
|
_httpRes.statusCode(),
|
|
"Unexpected content-type received: " + _contentType,
|
|
Utils.extractByteArrayFromBody(_httpRes));
|
|
}
|
|
}
|
|
if (Utils.statusCodeMatches(_httpRes.statusCode(), "4XX", "5XX")) {
|
|
// no content
|
|
throw new SDKError(
|
|
_httpRes,
|
|
_httpRes.statusCode(),
|
|
"API error occurred",
|
|
Utils.extractByteArrayFromBody(_httpRes));
|
|
}
|
|
throw new SDKError(
|
|
_httpRes,
|
|
_httpRes.statusCode(),
|
|
"Unexpected status code received: " + _httpRes.statusCode(),
|
|
Utils.extractByteArrayFromBody(_httpRes));
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* Get Access Token by PinId
|
|
* Retrieve an Access Token from Plex.tv after the Pin has been authenticated
|
|
* @return The call builder
|
|
*/
|
|
public GetTokenByPinIdRequestBuilder getTokenByPinId() {
|
|
return new GetTokenByPinIdRequestBuilder(this);
|
|
}
|
|
|
|
/**
|
|
* Get Access Token by PinId
|
|
* Retrieve an Access Token from Plex.tv after the Pin has been authenticated
|
|
* @param request The request object containing all of the parameters for the API call.
|
|
* @return The response from the API call
|
|
* @throws Exception if the API call fails
|
|
*/
|
|
public GetTokenByPinIdResponse getTokenByPinId(
|
|
GetTokenByPinIdRequest request) throws Exception {
|
|
return getTokenByPinId(request, Optional.empty());
|
|
}
|
|
|
|
/**
|
|
* Get Access Token by PinId
|
|
* Retrieve an Access Token from Plex.tv after the Pin has been authenticated
|
|
* @param request The request object containing all of the parameters for the API call.
|
|
* @param serverURL Overrides the server URL.
|
|
* @return The response from the API call
|
|
* @throws Exception if the API call fails
|
|
*/
|
|
public GetTokenByPinIdResponse getTokenByPinId(
|
|
GetTokenByPinIdRequest request,
|
|
Optional<String> serverURL) throws Exception {
|
|
String _baseUrl = Utils.templateUrl(GET_TOKEN_BY_PIN_ID_SERVERS[0], new HashMap<String, String>());
|
|
if (serverURL.isPresent() && !serverURL.get().isBlank()) {
|
|
_baseUrl = serverURL.get();
|
|
}
|
|
String _url = Utils.generateURL(
|
|
GetTokenByPinIdRequest.class,
|
|
_baseUrl,
|
|
"/pins/{pinID}",
|
|
request, this.sdkConfiguration.globals);
|
|
|
|
HTTPRequest _req = new HTTPRequest(_url, "GET");
|
|
_req.addHeader("Accept", "application/json")
|
|
.addHeader("user-agent",
|
|
SDKConfiguration.USER_AGENT);
|
|
_req.addHeaders(Utils.getHeadersFromMetadata(request, this.sdkConfiguration.globals));
|
|
|
|
HTTPClient _client = this.sdkConfiguration.defaultClient;
|
|
HttpRequest _r =
|
|
sdkConfiguration.hooks()
|
|
.beforeRequest(
|
|
new BeforeRequestContextImpl(
|
|
"getTokenByPinId",
|
|
Optional.of(List.of()),
|
|
sdkConfiguration.securitySource()),
|
|
_req.build());
|
|
HttpResponse<InputStream> _httpRes;
|
|
try {
|
|
_httpRes = _client.send(_r);
|
|
if (Utils.statusCodeMatches(_httpRes.statusCode(), "400", "404", "4XX", "5XX")) {
|
|
_httpRes = sdkConfiguration.hooks()
|
|
.afterError(
|
|
new AfterErrorContextImpl(
|
|
"getTokenByPinId",
|
|
Optional.of(List.of()),
|
|
sdkConfiguration.securitySource()),
|
|
Optional.of(_httpRes),
|
|
Optional.empty());
|
|
} else {
|
|
_httpRes = sdkConfiguration.hooks()
|
|
.afterSuccess(
|
|
new AfterSuccessContextImpl(
|
|
"getTokenByPinId",
|
|
Optional.of(List.of()),
|
|
sdkConfiguration.securitySource()),
|
|
_httpRes);
|
|
}
|
|
} catch (Exception _e) {
|
|
_httpRes = sdkConfiguration.hooks()
|
|
.afterError(
|
|
new AfterErrorContextImpl(
|
|
"getTokenByPinId",
|
|
Optional.of(List.of()),
|
|
sdkConfiguration.securitySource()),
|
|
Optional.empty(),
|
|
Optional.of(_e));
|
|
}
|
|
String _contentType = _httpRes
|
|
.headers()
|
|
.firstValue("Content-Type")
|
|
.orElse("application/octet-stream");
|
|
GetTokenByPinIdResponse.Builder _resBuilder =
|
|
GetTokenByPinIdResponse
|
|
.builder()
|
|
.contentType(_contentType)
|
|
.statusCode(_httpRes.statusCode())
|
|
.rawResponse(_httpRes);
|
|
|
|
GetTokenByPinIdResponse _res = _resBuilder.build();
|
|
|
|
if (Utils.statusCodeMatches(_httpRes.statusCode(), "200")) {
|
|
if (Utils.contentTypeMatches(_contentType, "application/json")) {
|
|
GetTokenByPinIdAuthPinContainer _out = Utils.mapper().readValue(
|
|
Utils.toUtf8AndClose(_httpRes.body()),
|
|
new TypeReference<GetTokenByPinIdAuthPinContainer>() {});
|
|
_res.withAuthPinContainer(Optional.ofNullable(_out));
|
|
return _res;
|
|
} else {
|
|
throw new SDKError(
|
|
_httpRes,
|
|
_httpRes.statusCode(),
|
|
"Unexpected content-type received: " + _contentType,
|
|
Utils.extractByteArrayFromBody(_httpRes));
|
|
}
|
|
}
|
|
if (Utils.statusCodeMatches(_httpRes.statusCode(), "400")) {
|
|
if (Utils.contentTypeMatches(_contentType, "application/json")) {
|
|
GetTokenByPinIdBadRequest _out = Utils.mapper().readValue(
|
|
Utils.toUtf8AndClose(_httpRes.body()),
|
|
new TypeReference<GetTokenByPinIdBadRequest>() {});
|
|
_out.withRawResponse(Optional.ofNullable(_httpRes));
|
|
|
|
throw _out;
|
|
} else {
|
|
throw new SDKError(
|
|
_httpRes,
|
|
_httpRes.statusCode(),
|
|
"Unexpected content-type received: " + _contentType,
|
|
Utils.extractByteArrayFromBody(_httpRes));
|
|
}
|
|
}
|
|
if (Utils.statusCodeMatches(_httpRes.statusCode(), "404")) {
|
|
if (Utils.contentTypeMatches(_contentType, "application/json")) {
|
|
GetTokenByPinIdResponseBody _out = Utils.mapper().readValue(
|
|
Utils.toUtf8AndClose(_httpRes.body()),
|
|
new TypeReference<GetTokenByPinIdResponseBody>() {});
|
|
_out.withRawResponse(Optional.ofNullable(_httpRes));
|
|
|
|
throw _out;
|
|
} else {
|
|
throw new SDKError(
|
|
_httpRes,
|
|
_httpRes.statusCode(),
|
|
"Unexpected content-type received: " + _contentType,
|
|
Utils.extractByteArrayFromBody(_httpRes));
|
|
}
|
|
}
|
|
if (Utils.statusCodeMatches(_httpRes.statusCode(), "4XX", "5XX")) {
|
|
// no content
|
|
throw new SDKError(
|
|
_httpRes,
|
|
_httpRes.statusCode(),
|
|
"API error occurred",
|
|
Utils.extractByteArrayFromBody(_httpRes));
|
|
}
|
|
throw new SDKError(
|
|
_httpRes,
|
|
_httpRes.statusCode(),
|
|
"Unexpected status code received: " + _httpRes.statusCode(),
|
|
Utils.extractByteArrayFromBody(_httpRes));
|
|
}
|
|
|
|
}
|