diff options
author | Li Haoyi <haoyi.sg@gmail.com> | 2018-07-25 16:58:15 +0800 |
---|---|---|
committer | Li Haoyi <haoyi.sg@gmail.com> | 2018-07-25 16:58:15 +0800 |
commit | 8a7a665f3d6cd386e57a55dcb003d25b76b14138 (patch) | |
tree | 82b439f0e3b3312586efef2fc0d1491095c01454 | |
parent | 688e69c3ca8f5a39423557a20473b580632c2b33 (diff) | |
download | cask-8a7a665f3d6cd386e57a55dcb003d25b76b14138.tar.gz cask-8a7a665f3d6cd386e57a55dcb003d25b76b14138.tar.bz2 cask-8a7a665f3d6cd386e57a55dcb003d25b76b14138.zip |
collapse `CookieParam` into `Cookie`
-rw-r--r-- | cask/src/cask/endpoints/Params.scala | 58 | ||||
-rw-r--r-- | cask/src/cask/model/Cookie.scala | 47 | ||||
-rw-r--r-- | cask/src/cask/model/Response.scala | 2 | ||||
-rw-r--r-- | cask/src/cask/package.scala | 8 | ||||
-rw-r--r-- | cask/test/src/test/cask/Cookies.scala | 4 |
5 files changed, 51 insertions, 68 deletions
diff --git a/cask/src/cask/endpoints/Params.scala b/cask/src/cask/endpoints/Params.scala index 6ff9dc1..7a56085 100644 --- a/cask/src/cask/endpoints/Params.scala +++ b/cask/src/cask/endpoints/Params.scala @@ -1,27 +1,59 @@ package cask.endpoints -import cask.Cookie import cask.endpoints.ParamReader.NilParam +import io.undertow.server.handlers.CookieImpl class Subpath(val value: Seq[String]) object Subpath{ implicit object SubpathParam extends NilParam[Subpath]((ctx, label) => new Subpath(ctx.remaining)) - -} -class Cookies(val value: Map[String, Cookie]) -object Cookies{ - implicit object CookieParam extends NilParam[Cookies]((ctx, label) => { - import collection.JavaConverters._ - new Cookies(ctx.exchange.getRequestCookies.asScala.toMap.map{case (k, v) => (k, Cookie.fromUndertow(v))}) - }) } -object CookieParam{ - implicit object CookieParamParam extends NilParam[CookieParam]((ctx, label) => - new CookieParam(Cookie.fromUndertow(ctx.exchange.getRequestCookies().get(label))) + + +object Cookie{ + implicit object CookieParam extends NilParam[Cookie]((ctx, label) => + Cookie.fromUndertow(ctx.exchange.getRequestCookies().get(label)) ) + def fromUndertow(from: io.undertow.server.handlers.Cookie): Cookie = { + Cookie( + from.getName, + from.getValue, + from.getComment, + from.getDomain, + if (from.getExpires == null) null else from.getExpires.toInstant, + from.getMaxAge, + from.getPath, + from.getVersion, + from.isDiscard, + from.isHttpOnly, + from.isSecure + ) + } + def toUndertow(from: Cookie): io.undertow.server.handlers.Cookie = { + val out = new CookieImpl(from.name, from.value) + out.setComment(from.comment) + out.setDomain(from.domain) + out.setExpires(if (from.expires == null) null else java.util.Date.from(from.expires)) + out.setMaxAge(from.maxAge) + out.setPath(from.path) + out.setVersion(from.version) + out.setDiscard(from.discard) + out.setHttpOnly(from.httpOnly) + out.setSecure(from.secure) + } } +case class Cookie(name: String, + value: String, + comment: String = null, + domain: String = null, + expires: java.time.Instant = null, + maxAge: Integer = null, + path: String = null, + version: Int = 1, + discard: Boolean = false, + httpOnly: Boolean = false, + secure: Boolean = false) { -case class CookieParam(cookie: Cookie) +} object FormValue{ diff --git a/cask/src/cask/model/Cookie.scala b/cask/src/cask/model/Cookie.scala deleted file mode 100644 index 4934e87..0000000 --- a/cask/src/cask/model/Cookie.scala +++ /dev/null @@ -1,47 +0,0 @@ -package cask.model - -import io.undertow.server.handlers.CookieImpl - - -object Cookie{ - def fromUndertow(from: io.undertow.server.handlers.Cookie): Cookie = { - Cookie( - from.getName, - from.getValue, - from.getComment, - from.getDomain, - if (from.getExpires == null) null else from.getExpires.toInstant, - from.getMaxAge, - from.getPath, - from.getVersion, - from.isDiscard, - from.isHttpOnly, - from.isSecure - ) - } - def toUndertow(from: Cookie): io.undertow.server.handlers.Cookie = { - val out = new CookieImpl(from.name, from.value) - out.setComment(from.comment) - out.setDomain(from.domain) - out.setExpires(if (from.expires == null) null else java.util.Date.from(from.expires)) - out.setMaxAge(from.maxAge) - out.setPath(from.path) - out.setVersion(from.version) - out.setDiscard(from.discard) - out.setHttpOnly(from.httpOnly) - out.setSecure(from.secure) - } -} -case class Cookie(name: String, - value: String, - comment: String = null, - domain: String = null, - expires: java.time.Instant = null, - maxAge: Integer = null, - path: String = null, - version: Int = 1, - discard: Boolean = false, - httpOnly: Boolean = false, - secure: Boolean = false) { - -} diff --git a/cask/src/cask/model/Response.scala b/cask/src/cask/model/Response.scala index b3bb22b..5443014 100644 --- a/cask/src/cask/model/Response.scala +++ b/cask/src/cask/model/Response.scala @@ -2,6 +2,8 @@ package cask.model import java.io.{InputStream, OutputStream, OutputStreamWriter} +import cask.endpoints.Cookie + trait BaseResponse{ def data: BaseResponse.Data diff --git a/cask/src/cask/package.scala b/cask/src/cask/package.scala index 37ea5d9..b715814 100644 --- a/cask/src/cask/package.scala +++ b/cask/src/cask/package.scala @@ -6,8 +6,6 @@ package object cask { val Abort = model.Abort type Redirect = model.Redirect val Redirect = model.Redirect - type Cookie = model.Cookie - val Cookie = model.Cookie // endpoints type get = endpoints.get @@ -21,12 +19,10 @@ package object cask { // endpoints misc type FormValue = endpoints.FormValue val FormValue = endpoints.FormValue - type Cookies = endpoints.Cookies - val Cookies = endpoints.Cookies + type Cookie = endpoints.Cookie + val Cookie = endpoints.Cookie type Subpath = endpoints.Subpath val Subpath = endpoints.Subpath - type CookieParam = endpoints.CookieParam - val CookieParam = endpoints.CookieParam // main type MainRoutes = main.MainRoutes diff --git a/cask/test/src/test/cask/Cookies.scala b/cask/test/src/test/cask/Cookies.scala index 123d6a9..cc64e5d 100644 --- a/cask/test/src/test/cask/Cookies.scala +++ b/cask/test/src/test/cask/Cookies.scala @@ -2,8 +2,8 @@ package test.cask object Cookies extends cask.MainRoutes{ @cask.get("/read-cookie") - def readCookies(username: cask.CookieParam) = { - username.cookie.value + def readCookies(username: cask.Cookie) = { + username.value } @cask.get("/store-cookie") |