mirror of
https://github.com/LukeHagar/plexjava.git
synced 2025-12-06 04:20:46 +00:00
379 lines
16 KiB
Java
379 lines
16 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.CancelServerActivitiesBadRequest;
|
|
import dev.plexapi.sdk.models.errors.CancelServerActivitiesUnauthorized;
|
|
import dev.plexapi.sdk.models.errors.GetServerActivitiesBadRequest;
|
|
import dev.plexapi.sdk.models.errors.GetServerActivitiesUnauthorized;
|
|
import dev.plexapi.sdk.models.errors.SDKError;
|
|
import dev.plexapi.sdk.models.operations.CancelServerActivitiesRequest;
|
|
import dev.plexapi.sdk.models.operations.CancelServerActivitiesRequestBuilder;
|
|
import dev.plexapi.sdk.models.operations.CancelServerActivitiesResponse;
|
|
import dev.plexapi.sdk.models.operations.GetServerActivitiesRequestBuilder;
|
|
import dev.plexapi.sdk.models.operations.GetServerActivitiesResponse;
|
|
import dev.plexapi.sdk.models.operations.GetServerActivitiesResponseBody;
|
|
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.List;
|
|
import java.util.Optional;
|
|
|
|
|
|
|
|
/**
|
|
* Activities are awesome. They provide a way to monitor and control asynchronous operations on the server. In order to receive real-time updates for activities, a client would normally subscribe via either EventSource or Websocket endpoints.
|
|
* Activities are associated with HTTP replies via a special `X-Plex-Activity` header which contains the UUID of the activity.
|
|
* Activities are optional cancellable. If cancellable, they may be cancelled via the `DELETE` endpoint. Other details:
|
|
* - They can contain a `progress` (from 0 to 100) marking the percent completion of the activity.
|
|
* - They must contain an `type` which is used by clients to distinguish the specific activity.
|
|
* - They may contain a `Context` object with attributes which associate the activity with various specific entities (items, libraries, etc.)
|
|
* - The may contain a `Response` object which attributes which represent the result of the asynchronous operation.
|
|
*/
|
|
public class Activities implements
|
|
MethodCallGetServerActivities,
|
|
MethodCallCancelServerActivities {
|
|
|
|
private final SDKConfiguration sdkConfiguration;
|
|
|
|
Activities(SDKConfiguration sdkConfiguration) {
|
|
this.sdkConfiguration = sdkConfiguration;
|
|
}
|
|
|
|
|
|
/**
|
|
* Get Server Activities
|
|
*
|
|
* <p>Get Server Activities
|
|
*
|
|
* @return The call builder
|
|
*/
|
|
public GetServerActivitiesRequestBuilder getServerActivities() {
|
|
return new GetServerActivitiesRequestBuilder(this);
|
|
}
|
|
|
|
/**
|
|
* Get Server Activities
|
|
*
|
|
* <p>Get Server Activities
|
|
*
|
|
* @return The response from the API call
|
|
* @throws Exception if the API call fails
|
|
*/
|
|
public GetServerActivitiesResponse getServerActivitiesDirect() throws Exception {
|
|
String _baseUrl = Utils.templateUrl(
|
|
this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults());
|
|
String _url = Utils.generateURL(
|
|
_baseUrl,
|
|
"/activities");
|
|
|
|
HTTPRequest _req = new HTTPRequest(_url, "GET");
|
|
_req.addHeader("Accept", "application/json")
|
|
.addHeader("user-agent",
|
|
SDKConfiguration.USER_AGENT);
|
|
|
|
Optional<SecuritySource> _hookSecuritySource = this.sdkConfiguration.securitySource();
|
|
Utils.configureSecurity(_req,
|
|
this.sdkConfiguration.securitySource.getSecurity());
|
|
HTTPClient _client = this.sdkConfiguration.defaultClient;
|
|
HttpRequest _r =
|
|
sdkConfiguration.hooks()
|
|
.beforeRequest(
|
|
new BeforeRequestContextImpl(
|
|
_baseUrl,
|
|
"getServerActivities",
|
|
Optional.of(List.of()),
|
|
_hookSecuritySource),
|
|
_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(
|
|
_baseUrl,
|
|
"getServerActivities",
|
|
Optional.of(List.of()),
|
|
_hookSecuritySource),
|
|
Optional.of(_httpRes),
|
|
Optional.empty());
|
|
} else {
|
|
_httpRes = sdkConfiguration.hooks()
|
|
.afterSuccess(
|
|
new AfterSuccessContextImpl(
|
|
_baseUrl,
|
|
"getServerActivities",
|
|
Optional.of(List.of()),
|
|
_hookSecuritySource),
|
|
_httpRes);
|
|
}
|
|
} catch (Exception _e) {
|
|
_httpRes = sdkConfiguration.hooks()
|
|
.afterError(
|
|
new AfterErrorContextImpl(
|
|
_baseUrl,
|
|
"getServerActivities",
|
|
Optional.of(List.of()),
|
|
_hookSecuritySource),
|
|
Optional.empty(),
|
|
Optional.of(_e));
|
|
}
|
|
String _contentType = _httpRes
|
|
.headers()
|
|
.firstValue("Content-Type")
|
|
.orElse("application/octet-stream");
|
|
GetServerActivitiesResponse.Builder _resBuilder =
|
|
GetServerActivitiesResponse
|
|
.builder()
|
|
.contentType(_contentType)
|
|
.statusCode(_httpRes.statusCode())
|
|
.rawResponse(_httpRes);
|
|
|
|
GetServerActivitiesResponse _res = _resBuilder.build();
|
|
|
|
if (Utils.statusCodeMatches(_httpRes.statusCode(), "200")) {
|
|
if (Utils.contentTypeMatches(_contentType, "application/json")) {
|
|
GetServerActivitiesResponseBody _out = Utils.mapper().readValue(
|
|
Utils.toUtf8AndClose(_httpRes.body()),
|
|
new TypeReference<GetServerActivitiesResponseBody>() {});
|
|
_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")) {
|
|
GetServerActivitiesBadRequest _out = Utils.mapper().readValue(
|
|
Utils.toUtf8AndClose(_httpRes.body()),
|
|
new TypeReference<GetServerActivitiesBadRequest>() {});
|
|
_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")) {
|
|
GetServerActivitiesUnauthorized _out = Utils.mapper().readValue(
|
|
Utils.toUtf8AndClose(_httpRes.body()),
|
|
new TypeReference<GetServerActivitiesUnauthorized>() {});
|
|
_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")) {
|
|
// no content
|
|
throw new SDKError(
|
|
_httpRes,
|
|
_httpRes.statusCode(),
|
|
"API error occurred",
|
|
Utils.extractByteArrayFromBody(_httpRes));
|
|
}
|
|
if (Utils.statusCodeMatches(_httpRes.statusCode(), "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));
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* Cancel Server Activities
|
|
*
|
|
* <p>Cancel Server Activities
|
|
*
|
|
* @return The call builder
|
|
*/
|
|
public CancelServerActivitiesRequestBuilder cancelServerActivities() {
|
|
return new CancelServerActivitiesRequestBuilder(this);
|
|
}
|
|
|
|
/**
|
|
* Cancel Server Activities
|
|
*
|
|
* <p>Cancel Server Activities
|
|
*
|
|
* @param activityUUID The UUID of the activity to cancel.
|
|
* @return The response from the API call
|
|
* @throws Exception if the API call fails
|
|
*/
|
|
public CancelServerActivitiesResponse cancelServerActivities(
|
|
String activityUUID) throws Exception {
|
|
CancelServerActivitiesRequest request =
|
|
CancelServerActivitiesRequest
|
|
.builder()
|
|
.activityUUID(activityUUID)
|
|
.build();
|
|
|
|
String _baseUrl = Utils.templateUrl(
|
|
this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults());
|
|
String _url = Utils.generateURL(
|
|
CancelServerActivitiesRequest.class,
|
|
_baseUrl,
|
|
"/activities/{activityUUID}",
|
|
request, null);
|
|
|
|
HTTPRequest _req = new HTTPRequest(_url, "DELETE");
|
|
_req.addHeader("Accept", "application/json")
|
|
.addHeader("user-agent",
|
|
SDKConfiguration.USER_AGENT);
|
|
|
|
Optional<SecuritySource> _hookSecuritySource = this.sdkConfiguration.securitySource();
|
|
Utils.configureSecurity(_req,
|
|
this.sdkConfiguration.securitySource.getSecurity());
|
|
HTTPClient _client = this.sdkConfiguration.defaultClient;
|
|
HttpRequest _r =
|
|
sdkConfiguration.hooks()
|
|
.beforeRequest(
|
|
new BeforeRequestContextImpl(
|
|
_baseUrl,
|
|
"cancelServerActivities",
|
|
Optional.of(List.of()),
|
|
_hookSecuritySource),
|
|
_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(
|
|
_baseUrl,
|
|
"cancelServerActivities",
|
|
Optional.of(List.of()),
|
|
_hookSecuritySource),
|
|
Optional.of(_httpRes),
|
|
Optional.empty());
|
|
} else {
|
|
_httpRes = sdkConfiguration.hooks()
|
|
.afterSuccess(
|
|
new AfterSuccessContextImpl(
|
|
_baseUrl,
|
|
"cancelServerActivities",
|
|
Optional.of(List.of()),
|
|
_hookSecuritySource),
|
|
_httpRes);
|
|
}
|
|
} catch (Exception _e) {
|
|
_httpRes = sdkConfiguration.hooks()
|
|
.afterError(
|
|
new AfterErrorContextImpl(
|
|
_baseUrl,
|
|
"cancelServerActivities",
|
|
Optional.of(List.of()),
|
|
_hookSecuritySource),
|
|
Optional.empty(),
|
|
Optional.of(_e));
|
|
}
|
|
String _contentType = _httpRes
|
|
.headers()
|
|
.firstValue("Content-Type")
|
|
.orElse("application/octet-stream");
|
|
CancelServerActivitiesResponse.Builder _resBuilder =
|
|
CancelServerActivitiesResponse
|
|
.builder()
|
|
.contentType(_contentType)
|
|
.statusCode(_httpRes.statusCode())
|
|
.rawResponse(_httpRes);
|
|
|
|
CancelServerActivitiesResponse _res = _resBuilder.build();
|
|
|
|
if (Utils.statusCodeMatches(_httpRes.statusCode(), "200")) {
|
|
// no content
|
|
return _res;
|
|
}
|
|
if (Utils.statusCodeMatches(_httpRes.statusCode(), "400")) {
|
|
if (Utils.contentTypeMatches(_contentType, "application/json")) {
|
|
CancelServerActivitiesBadRequest _out = Utils.mapper().readValue(
|
|
Utils.toUtf8AndClose(_httpRes.body()),
|
|
new TypeReference<CancelServerActivitiesBadRequest>() {});
|
|
_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")) {
|
|
CancelServerActivitiesUnauthorized _out = Utils.mapper().readValue(
|
|
Utils.toUtf8AndClose(_httpRes.body()),
|
|
new TypeReference<CancelServerActivitiesUnauthorized>() {});
|
|
_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")) {
|
|
// no content
|
|
throw new SDKError(
|
|
_httpRes,
|
|
_httpRes.statusCode(),
|
|
"API error occurred",
|
|
Utils.extractByteArrayFromBody(_httpRes));
|
|
}
|
|
if (Utils.statusCodeMatches(_httpRes.statusCode(), "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));
|
|
}
|
|
|
|
}
|