ZServerEndpointInParts

abstract
class ZServerEndpointInParts[R, U, J, I, E, O, -C](val endpoint: Endpoint[I, E, O, C]) extends EndpointInfoOps[I, E, O, C] with EndpointMetaOps[I, E, O, C]

An endpoint description together with partial server logic. See RichZEndpoint.zServerLogicPart.

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, J) either into an error of type E, or a value of type O.

Type Params
C

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

E

Error output parameter types.

I

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

J

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

O

Output parameter types.

R

The environment needed by the partial server logic.

U

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

trait EndpointMetaOps[I, E, O, C]
trait EndpointInfoOps[I, E, O, C]
class Object
trait Matchable
class Any
ZServerEndpointInParts[R, U, J, I, E, O, C]

Type members

Types

override
type EndpointType[_I, _E, _O, -_R] = ZServerEndpointInParts[R, U, J, _I, _E, _O, _R]
protected
type T

Part of the input, consumed by logicFragment.

Part of the input, consumed by logicFragment.

Value members

Abstract methods

protected
def logicFragment: T => ZIO[R, E, U]
protected
def splitInput: I => (T, J)

Concrete methods

def andThen[R2 <: R](remainingLogic: (U, J) => ZIO[R2, E, O]): ZServerEndpoint[R2, I, E, O, C]

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[R2 <: R, T2, J2, V, UV](nextPart: T2 => ZIO[R2, E, V])(implicit jMinusT2: Aux[J, T2, J2], uu2Concat: Aux[U, V, UV]): ZServerEndpointInParts[R2, UV, J2, I, E, O, C]

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.

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

Inherited methods

protected
def additionalInputsForShow: Vector[Basic[_]]
Inherited from
EndpointMetaOps
def deprecated(): EndpointType[I, E, O, C]
Inherited from
EndpointInfoOps
def description(d: String): EndpointType[I, E, O, C]
Inherited from
EndpointInfoOps
def docsExtension[A : JsonCodec](key: String, value: A): EndpointType[I, E, O, C]
Inherited from
EndpointInfoOps
def info(i: EndpointInfo): EndpointType[I, E, O, C]
Inherited from
EndpointInfoOps
def name(n: String): EndpointType[I, E, O, C]
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, C]
Inherited from
EndpointInfoOps
def tag(t: String): EndpointType[I, E, O, C]
Inherited from
EndpointInfoOps
def tags(ts: List[String]): EndpointType[I, E, O, C]
Inherited from
EndpointInfoOps

Concrete fields

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