EndpointHandler

trait EndpointHandler[F[_], B]

Handles the result of decoding a request using an endpoint's inputs.

class Object
trait Matchable
class Any

Value members

Abstract methods

def onDecodeFailure(ctx: DecodeFailureContext)(implicit monad: MonadError[F], bodyListener: BodyListener[F, B]): F[Option[ServerResponse[B]]]

Called when the given request hasn't been successfully decoded, because of the given failure on the given input. This is captured by the ctx parameter.

Called when the given request hasn't been successfully decoded, because of the given failure on the given input. This is captured by the ctx parameter.

Might be called multiple times per request.

Returns:

An effect, describing the optional server response. If None, the next endpoint will be tried (if any).

def onDecodeSuccess[A, U, I](ctx: DecodeSuccessContext[F, A, U, I])(implicit monad: MonadError[F], bodyListener: BodyListener[F, B]): F[ServerResponse[B]]

Called when the request has been successfully decoded into data, and when the security logic succeeded. This is captured by the ctx parameter.

Called when the request has been successfully decoded into data, and when the security logic succeeded. This is captured by the ctx parameter.

Called at most once per request.

Type parameters:
A

The type of the endpoint's security inputs.

I

The type of the endpoint's inputs.

U

Type of the successful result of the security logic.

Returns:

An effect, describing the server's response.

def onSecurityFailure[A](ctx: SecurityFailureContext[F, A])(implicit monad: MonadError[F], bodyListener: BodyListener[F, B]): F[ServerResponse[B]]

Called when the security inputs have been successfully decoded into data, but the security logic failed (either with an error result or an exception). This is captured by the ctx parameter.

Called when the security inputs have been successfully decoded into data, but the security logic failed (either with an error result or an exception). This is captured by the ctx parameter.

Called at most once per request.

Type parameters:
A

The type of the endpoint's security inputs.

Returns:

An effect, describing the server's response.