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.

Returns

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

def onDecodeSuccess[U, I](ctx: DecodeSuccessContext[F, 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.

Type Params
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.

Type Params
A

The type of the endpoint's security inputs.

Returns

An effect, describing the server's response.