Package dev.mayuna.simpleapi
Class Action<T>
- java.lang.Object
-
- dev.mayuna.simpleapi.Action<T>
-
public class Action<T> extends java.lang.Object
-
-
Constructor Summary
Constructors Constructor Description Action(SimpleAPI api, @NonNull java.lang.Class<T> responseClass, @NonNull APIRequest apiRequest)CreatesActionobject
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.concurrent.CompletableFuture<T>execute()Requests the API with specifiedAPIRequestAction<T>onDeserialization(java.util.function.Function<java.net.http.HttpResponse<?>,T> deserializationCallback)FunctionwithHttpResponseargument and your response class return
ThisFunctionwill be called for deserializing.Action<T>onHttpError(@NonNull java.util.function.Consumer<HttpError> httpErrorCallback)Action<T>onSuccess(java.util.function.BiConsumer<java.net.http.HttpResponse<?>,T> successCallback)HttpResponseand your response classBiConsumerwhich will be called if the request was successful
-
-
-
Constructor Detail
-
Action
public Action(SimpleAPI api, @NonNull @NonNull java.lang.Class<T> responseClass, @NonNull @NonNull APIRequest apiRequest)
CreatesActionobject- Parameters:
api- YourSimpleAPIobjectresponseClass- Non-null Class which you expect to be respondedapiRequest- Non-nullAPIRequest
-
-
Method Detail
-
onHttpError
public Action<T> onHttpError(@NonNull @NonNull java.util.function.Consumer<HttpError> httpErrorCallback)
-
onSuccess
public Action<T> onSuccess(java.util.function.BiConsumer<java.net.http.HttpResponse<?>,T> successCallback)
HttpResponseand your response classBiConsumerwhich will be called if the request was successful- Parameters:
successCallback- Non-nullHttpResponseand your response classBiConsumer- Returns:
Action, great for chaining
-
onDeserialization
public Action<T> onDeserialization(java.util.function.Function<java.net.http.HttpResponse<?>,T> deserializationCallback)
FunctionwithHttpResponseargument and your response class return
ThisFunctionwill be called for deserializing. You should return your deserialized object here. If your API returns JSON, your can useGsonDeserializerto automate this step.- Parameters:
deserializationCallback- NullableFunctionwithHttpResponseargument and your response class return- Returns:
Action, great for chaining
-
execute
public java.util.concurrent.CompletableFuture<T> execute()
Requests the API with specifiedAPIRequest- Returns:
CompletableFuture
-
-