ServerEndpointInParts

abstract class ServerEndpointInParts[U, IR, I, E, O, -R, F[_]](val endpoint: Endpoint[I, E, O, R]) extends EndpointInfoOps[I, E, O, R] with EndpointMetaOps[I, E, O, R]

An endpoint description together with partial server logic. See Endpoint.serverLogicPart.

The part of the server logic which is provided transforms some inputs either to an error of type E, or value of type U.

The part of the server logic which is not provided, transforms a tuple: (U, R) either into an error of type E, or a value of type O.

Type Params
E

Error output parameter types.

F

The effect type used in the provided server logic.

I

Entire input parameter types. I = T + R, where T is the part of the input consumed by the partial logic, and converted to U.

IR

Remaining input parameter types, for which logic has yet to be provided.

O

Output parameter types.

R

The capabilities that are required by this endpoint's inputs/outputs. Any, if no requirements.

U

The type of the value returned by the partial server logic.

trait EndpointMetaOps[I, E, O, R]
trait EndpointInfoOps[I, E, O, R]
class Object
trait Matchable
class Any

Type members

Types

override type EndpointType[_I, _E, _O, -_R] = ServerEndpointInParts[U, IR, _I, _E, _O, _R, F]
protected type T

Part of the input, consumed by logicFragment.

Part of the input, consumed by logicFragment.

Value members

Abstract methods

protected def logicFragment: MonadError[F] => T => F[Either[E, U]]
protected def splitInput: I => (T, IR)

Concrete methods

def andThen(remainingLogic: (U, IR) => F[Either[E, O]]): ServerEndpoint[I, E, O, R, F]

Complete the server logic for this endpoint, given the result of applying the partial server logic, and the remaining input.

Complete the server logic for this endpoint, given the result of applying the partial server logic, and the remaining input.

def andThenPart[T2, R2, V, UV](nextPart: T2 => F[Either[E, V]])(implicit rMinusT2: Aux[IR, T2, R2], uu2Concat: Aux[U, V, UV]): ServerEndpointInParts[UV, R2, I, E, O, R, F]

Define logic for some part of the remaining input. The result will be an server endpoint, which will need to be completed with a function accepting as arguments outputs of both previous and this server logic parts, and the input.

Define logic for some part of the remaining input. The result will be an server endpoint, which will need to be completed with a function accepting as arguments outputs of both previous and this server logic parts, and the input.

def andThenPartRecoverErrors[T2, R2, V, UV](nextPart: T2 => F[V])(implicit rMinusT2: Aux[IR, T2, R2], uu2Concat: Aux[U, V, UV], eIsThrowable: E <:< Throwable, eClassTag: ClassTag[E]): ServerEndpointInParts[UV, R2, I, E, O, R, F]

Same as andThenPart, but requires E to be a throwable, and coverts failed effects of type E to endpoint errors.

Same as andThenPart, but requires E to be a throwable, and coverts failed effects of type E to endpoint errors.

def andThenRecoverErrors(remainingLogic: (U, IR) => F[O])(implicit eIsThrowable: E <:< Throwable, eClassTag: ClassTag[E]): ServerEndpoint[I, E, O, R, F]

Same as andThen, but requires E to be a throwable, and coverts failed effects of type E to endpoint errors.

Same as andThen, but requires E to be a throwable, and coverts failed effects of type E to endpoint errors.

override def errorOutput: EndpointOutput[E]
Definition Classes
override def info: EndpointInfo
Definition Classes
override def input: EndpointInput[I]
Definition Classes
override def output: EndpointOutput[O]
Definition Classes
override protected def showType: String
Definition Classes

Inherited methods

protected def additionalInputsForShow: Vector[Basic[_]]
Inherited from
EndpointMetaOps
def deprecated(): EndpointType[I, E, O, R]
Inherited from
EndpointInfoOps
def description(d: String): EndpointType[I, E, O, R]
Inherited from
EndpointInfoOps
def docsExtension[A](key: String, value: A)(implicit evidence$2: JsonCodec[A]): EndpointType[I, E, O, R]
Inherited from
EndpointInfoOps
def info(i: EndpointInfo): EndpointType[I, E, O, R]
Inherited from
EndpointInfoOps
def name(n: String): EndpointType[I, E, O, R]
Inherited from
EndpointInfoOps
def renderPathTemplate(renderPathParam: RenderPathParam, renderQueryParam: Option[RenderQueryParam], includeAuth: Boolean): String

Renders endpoint path, by default all parametrised path and query components are replaced by {param_name} or {paramN}, e.g. for

Renders endpoint path, by default all parametrised path and query components are replaced by {param_name} or {paramN}, e.g. for

endpoint.in("p1" / path[String] / query[String]("par2"))

returns /p1/{param1}?par2={par2}

Value Params
includeAuth

Should authentication inputs be included in the result.

Inherited from
EndpointMetaOps
def show: String

Basic information about the endpoint, excluding mapping information, with inputs sorted (first the method, then path, etc.)

Basic information about the endpoint, excluding mapping information, with inputs sorted (first the method, then path, etc.)

Inherited from
EndpointMetaOps
def showDetail: String

Detailed description of the endpoint, with inputs/outputs represented in the same order as originally defined, including mapping information.

Detailed description of the endpoint, with inputs/outputs represented in the same order as originally defined, including mapping information.

Inherited from
EndpointMetaOps
def showRaw: String

Equivalent to .toString, shows the whole case class structure.

Equivalent to .toString, shows the whole case class structure.

Inherited from
EndpointMetaOps
def summary(s: String): EndpointType[I, E, O, R]
Inherited from
EndpointInfoOps
def tag(t: String): EndpointType[I, E, O, R]
Inherited from
EndpointInfoOps
def tags(ts: List[String]): EndpointType[I, E, O, R]
Inherited from
EndpointInfoOps

Concrete fields

val endpoint: Endpoint[I, E, O, R]