summaryrefslogtreecommitdiff
path: root/cask/src/cask/endpoints/ParamReader.scala
diff options
context:
space:
mode:
Diffstat (limited to 'cask/src/cask/endpoints/ParamReader.scala')
-rw-r--r--cask/src/cask/endpoints/ParamReader.scala16
1 files changed, 11 insertions, 5 deletions
diff --git a/cask/src/cask/endpoints/ParamReader.scala b/cask/src/cask/endpoints/ParamReader.scala
index f1ec0bf..e43f482 100644
--- a/cask/src/cask/endpoints/ParamReader.scala
+++ b/cask/src/cask/endpoints/ParamReader.scala
@@ -1,22 +1,28 @@
package cask.endpoints
import cask.internal.Router
-import cask.model.ParamContext
+import cask.model.{Cookie, Request}
import io.undertow.server.HttpServerExchange
import io.undertow.server.handlers.form.{FormData, FormParserFactory}
-abstract class ParamReader[T] extends Router.ArgReader[Unit, T, cask.model.ParamContext]{
+abstract class ParamReader[T] extends Router.ArgReader[Unit, T, cask.model.Request]{
def arity: Int
- def read(ctx: cask.model.ParamContext, label: String, v: Unit): T
+ def read(ctx: cask.model.Request, label: String, v: Unit): T
}
object ParamReader{
- class NilParam[T](f: (ParamContext, String) => T) extends ParamReader[T]{
+ class NilParam[T](f: (Request, String) => T) extends ParamReader[T]{
def arity = 0
- def read(ctx: cask.model.ParamContext, label: String, v: Unit): T = f(ctx, label)
+ def read(ctx: cask.model.Request, label: String, v: Unit): T = f(ctx, label)
}
implicit object HttpExchangeParam extends NilParam[HttpServerExchange]((ctx, label) => ctx.exchange)
implicit object FormDataParam extends NilParam[FormData]((ctx, label) =>
FormParserFactory.builder().build().createParser(ctx.exchange).parseBlocking()
)
+
+ implicit object RequestParam extends NilParam[Request]((ctx, label) => ctx)
+
+ implicit object CookieParam extends NilParam[Cookie]((ctx, label) =>
+ Cookie.fromUndertow(ctx.exchange.getRequestCookies().get(label))
+ )
}