trait Middleware[-R, +E, +AIn, -BIn, -AOut, +BOut] extends AnyRef

Middlewares are essentially transformations that one can apply on any Http to produce a new one. They can modify requests and responses and also transform them into more concrete domain entities.

You can think of middlewares as a functions —

type Middleware[R, E, AIn, BIn, AOut, BOut] = Http[R, E, AIn, BIn] => Http[R, E, AOut, BOut]

The AIn and BIn type params represent the type params of the input Http. The AOut and BOut type params represent the type params of the output Http.

Self Type
Middleware[R, E, AIn, BIn, AOut, BOut]
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Middleware
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def apply[R1 <: R, E1 >: E](http: Http[R1, E1, AIn, BIn]): Http[R1, E1, AOut, BOut]

    Applies middleware on Http and returns new Http.

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ++[R1 <: R, E1 >: E, A0 >: AIn <: AOut, B0 >: BOut <: BIn](other: Middleware[R1, E1, A0, B0, A0, B0]): Middleware[R1, E1, A0, B0, A0, B0]

    Combines two middleware that don't modify the input and output types.

  4. final def <>[R1 <: R, E1, AIn0 >: AIn, BIn0 <: BIn, AOut0 <: AOut, BOut0 >: BOut](other: Middleware[R1, E1, AIn0, BIn0, AOut0, BOut0]): Middleware[R1, E1, AIn0, BIn0, AOut0, BOut0]

    Applies self but if it fails, applies other.

  5. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  6. final def >>>[R1 <: R, E1 >: E, AIn1 <: AOut, BIn1 >: BOut, AOut1, BOut1](other: Middleware[R1, E1, AIn1, BIn1, AOut1, BOut1]): Middleware[R1, E1, AIn, BIn, AOut1, BOut1]

    Creates a new middleware that passes the output Http of the current middleware as the input to the provided middleware.

  7. final def andThen[R1 <: R, E1 >: E, AIn1 <: AOut, BIn1 >: BOut, AOut1, BOut1](other: Middleware[R1, E1, AIn1, BIn1, AOut1, BOut1]): Middleware[R1, E1, AIn, BIn, AOut1, BOut1]

    Composes one middleware with another.

  8. final def as[BOut0](bout: BOut0): Middleware[R, E, AIn, BIn, AOut, BOut0]

    Makes the middleware resolve with a constant Middleware

  9. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  10. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native() @HotSpotIntrinsicCandidate()
  11. final def combine[R1 <: R, E1 >: E, A0 >: AIn <: AOut, B0 >: BOut <: BIn](other: Middleware[R1, E1, A0, B0, A0, B0]): Middleware[R1, E1, A0, B0, A0, B0]

    Combines two middleware that operate on the same input and output types, into one.

  12. final def contramap[AOut0](f: (AOut0) ⇒ AOut): Middleware[R, E, AIn, BIn, AOut0, BOut]

    Preprocesses the incoming value for the outgoing Http.

  13. final def contramapZIO[AOut0]: PartialContraMapZIO[R, E, AIn, BIn, AOut, BOut, AOut0]

    Preprocesses the incoming value using a ZIO, for the outgoing Http.

  14. final def delay(duration: zio.Duration): Middleware[R, E, AIn, BIn, AOut, BOut]

    Delays the production of Http output for the specified duration

  15. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  16. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  17. final def flatMap[R1 <: R, E1 >: E, AIn0 >: AIn, BIn0 <: BIn, AOut0 <: AOut, BOut0](f: (BOut) ⇒ Middleware[R1, E1, AIn0, BIn0, AOut0, BOut0]): Middleware[R1, E1, AIn0, BIn0, AOut0, BOut0]

    Creates a new Middleware from another

  18. final def flatten[R1 <: R, E1 >: E, AIn0 >: AIn, BIn0 <: BIn, AOut0 <: AOut, BOut0](implicit ev: <:<[BOut, Middleware[R1, E1, AIn0, BIn0, AOut0, BOut0]]): Middleware[R1, E1, AIn0, BIn0, AOut0, BOut0]

    Flattens an Middleware of a Middleware

  19. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  20. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  21. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  22. final def map[BOut0](f: (BOut) ⇒ BOut0): Middleware[R, E, AIn, BIn, AOut, BOut0]

    Transforms the output type of the current middleware.

  23. final def mapZIO[R1 <: R, E1 >: E, BOut0](f: (BOut) ⇒ ZIO[R1, E1, BOut0]): Middleware[R1, E1, AIn, BIn, AOut, BOut0]

    Transforms the output type of the current middleware using effect function.

  24. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  25. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  26. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  27. final def orElse[R1 <: R, E1, AIn0 >: AIn, BIn0 <: BIn, AOut0 <: AOut, BOut0 >: BOut](other: Middleware[R1, E1, AIn0, BIn0, AOut0, BOut0]): Middleware[R1, E1, AIn0, BIn0, AOut0, BOut0]

    Applies self but if it fails, applies other.

  28. final def race[R1 <: R, E1 >: E, AIn1 >: AIn, BIn1 <: BIn, AOut1 <: AOut, BOut1 >: BOut](other: Middleware[R1, E1, AIn1, BIn1, AOut1, BOut1]): Middleware[R1, E1, AIn1, BIn1, AOut1, BOut1]

    Race between current and other, cancels other when execution of one completes

  29. final def runAfter[R1 <: R, E1 >: E](effect: ZIO[R1, E1, Any]): Middleware[R1, E1, AIn, BIn, AOut, BOut]
  30. final def runBefore[R1 <: R, E1 >: E](effect: ZIO[R1, E1, Any]): Middleware[R1, E1, AIn, BIn, AOut, BOut]
  31. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  32. def toString(): String
    Definition Classes
    AnyRef → Any
  33. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  34. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  35. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  36. final def when[AOut0 <: AOut](cond: (AOut0) ⇒ Boolean)(implicit ev: IsMono[AIn, BIn, AOut0, BOut]): Middleware[R, E, AIn, BIn, AOut0, BOut]

    Applies Middleware based only if the condition function evaluates to true

  37. final def whenZIO[R1 <: R, E1 >: E, AOut0 <: AOut](cond: (AOut0) ⇒ ZIO[R1, E1, Boolean])(implicit ev: IsMono[AIn, BIn, AOut0, BOut]): Middleware[R1, E1, AIn, BIn, AOut0, BOut]

    Applies Middleware based only if the condition effectful function evaluates to true

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] ) @Deprecated
    Deprecated

Inherited from AnyRef

Inherited from Any

Ungrouped