diff options
Diffstat (limited to 'cask/src/cask/endpoints/WebEndpoints.scala')
-rw-r--r-- | cask/src/cask/endpoints/WebEndpoints.scala | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/cask/src/cask/endpoints/WebEndpoints.scala b/cask/src/cask/endpoints/WebEndpoints.scala index 41c3113..02aeec4 100644 --- a/cask/src/cask/endpoints/WebEndpoints.scala +++ b/cask/src/cask/endpoints/WebEndpoints.scala @@ -2,7 +2,7 @@ package cask.endpoints import cask.internal.Router import cask.main.{Endpoint, HttpDecorator} -import cask.model.{ParamContext, Response} +import cask.model.{Request, Response} import collection.JavaConverters._ @@ -11,7 +11,7 @@ trait WebEndpoint extends Endpoint with HttpDecorator{ type Output = Response type Input = Seq[String] type InputParser[T] = QueryParamReader[T] - def wrapFunction(ctx: ParamContext, + def wrapFunction(ctx: Request, delegate: Map[String, Input] => Router.Result[Output]): Router.Result[Response] = { delegate( ctx.exchange.getQueryParameters @@ -34,14 +34,14 @@ class put(val path: String, override val subpath: Boolean = false) extends WebEn class route(val path: String, val methods: Seq[String], override val subpath: Boolean = false) extends WebEndpoint abstract class QueryParamReader[T] - extends Router.ArgReader[Seq[String], T, cask.model.ParamContext]{ + extends Router.ArgReader[Seq[String], T, cask.model.Request]{ def arity: Int - def read(ctx: cask.model.ParamContext, label: String, v: Seq[String]): T + def read(ctx: cask.model.Request, label: String, v: Seq[String]): T } object QueryParamReader{ class SimpleParam[T](f: String => T) extends QueryParamReader[T]{ def arity = 1 - def read(ctx: cask.model.ParamContext, label: String, v: Seq[String]): T = f(v.head) + def read(ctx: cask.model.Request, label: String, v: Seq[String]): T = f(v.head) } implicit object StringParam extends SimpleParam[String](x => x) @@ -54,20 +54,20 @@ object QueryParamReader{ implicit object FloatParam extends SimpleParam[Float](_.toFloat) implicit def SeqParam[T: QueryParamReader] = new QueryParamReader[Seq[T]]{ def arity = 1 - def read(ctx: cask.model.ParamContext, label: String, v: Seq[String]): Seq[T] = { + def read(ctx: cask.model.Request, label: String, v: Seq[String]): Seq[T] = { v.map(x => implicitly[QueryParamReader[T]].read(ctx, label, Seq(x))) } } implicit def OptionParam[T: QueryParamReader] = new QueryParamReader[Option[T]]{ def arity = 1 - def read(ctx: cask.model.ParamContext, label: String, v: Seq[String]): Option[T] = { + def read(ctx: cask.model.Request, label: String, v: Seq[String]): Option[T] = { v.headOption.map(x => implicitly[QueryParamReader[T]].read(ctx, label, Seq(x))) } } implicit def paramReader[T: ParamReader] = new QueryParamReader[T] { override def arity = 0 - override def read(ctx: cask.model.ParamContext, label: String, v: Seq[String]) = { + override def read(ctx: cask.model.Request, label: String, v: Seq[String]) = { implicitly[ParamReader[T]].read(ctx, label, v) } } |