FilterHandler.kt

  1. package com.hexagontk.http.handlers

  2. import com.hexagontk.handlers.FilterHandler
  3. import com.hexagontk.handlers.Handler
  4. import com.hexagontk.http.model.HttpMethod
  5. import com.hexagontk.http.model.HttpCall

  6. class FilterHandler(
  7.     override val handlerPredicate: HttpPredicate = HttpPredicate(),
  8.     val block: HttpCallbackType,
  9. ) : HttpHandler, Handler<HttpCall> by FilterHandler(handlerPredicate, toCallback(block)) {

  10.     constructor(
  11.         methods: Set<HttpMethod> = emptySet(),
  12.         pattern: String = "",
  13.         status: Int? = null,
  14.         block: HttpCallbackType,
  15.     ) :
  16.         this(HttpPredicate(methods, pattern, status), block)

  17.     constructor(method: HttpMethod, pattern: String = "", block: HttpCallbackType) :
  18.         this(setOf(method), pattern, block = block)

  19.     constructor(pattern: String, block: HttpCallbackType) :
  20.         this(emptySet(), pattern, block = block)

  21.     override fun addPrefix(prefix: String): HttpHandler =
  22.         FilterHandler(handlerPredicate.addPrefix(prefix), block)
  23. }