diff options
author | Li Haoyi <haoyi.sg@gmail.com> | 2019-10-09 10:16:58 +0800 |
---|---|---|
committer | Li Haoyi <haoyi.sg@gmail.com> | 2019-10-09 10:16:58 +0800 |
commit | cecd94d094ca0e77a03a1a2561a2955565e4df22 (patch) | |
tree | 3d17774eda005f51c9f33a77ccae3e20de511f3f | |
parent | 15a862949a58debc9a233cff47463dde1755dfbd (diff) | |
download | cask-cecd94d094ca0e77a03a1a2561a2955565e4df22.tar.gz cask-cecd94d094ca0e77a03a1a2561a2955565e4df22.tar.bz2 cask-cecd94d094ca0e77a03a1a2561a2955565e4df22.zip |
Genericize `cask.Main#decorators` and `cask.Routes#decorators` to allow other non-http-response results
-rw-r--r-- | cask/src/cask/main/Main.scala | 4 | ||||
-rw-r--r-- | cask/src/cask/main/Routes.scala | 2 | ||||
-rw-r--r-- | cask/src/cask/router/Decorators.scala | 6 |
3 files changed, 6 insertions, 6 deletions
diff --git a/cask/src/cask/main/Main.scala b/cask/src/cask/main/Main.scala index 6d08c04..0bc1abf 100644 --- a/cask/src/cask/main/Main.scala +++ b/cask/src/cask/main/Main.scala @@ -27,7 +27,7 @@ class MainRoutes extends Main with Routes{ * application-wide properties. */ abstract class Main{ - def mainDecorators: Seq[RawDecorator] = Nil + def mainDecorators: Seq[Decorator[_, _]] = Nil def allRoutes: Seq[Routes] def port: Int = 8080 def host: String = "localhost" @@ -61,7 +61,7 @@ abstract class Main{ object Main{ class DefaultHandler(routeTries: Map[String, DispatchTrie[(Routes, EndpointMetadata[_])]], - mainDecorators: Seq[RawDecorator], + mainDecorators: Seq[Decorator[_, _]], debugMode: Boolean, handleNotFound: () => Response.Raw, handleError: (Routes, EndpointMetadata[_], Result.Error) => Response.Raw) diff --git a/cask/src/cask/main/Routes.scala b/cask/src/cask/main/Routes.scala index f93e641..59da2c7 100644 --- a/cask/src/cask/main/Routes.scala +++ b/cask/src/cask/main/Routes.scala @@ -6,7 +6,7 @@ import language.experimental.macros trait Routes{ - def decorators = Seq.empty[cask.router.RawDecorator] + def decorators = Seq.empty[cask.router.Decorator[_, _]] implicit def executionContext = concurrent.ExecutionContext.Implicits.global private[this] var metadata0: RoutesEndpointsMetadata[this.type] = null def caskMetadata = diff --git a/cask/src/cask/router/Decorators.scala b/cask/src/cask/router/Decorators.scala index 14b4ab4..d661177 100644 --- a/cask/src/cask/router/Decorators.scala +++ b/cask/src/cask/router/Decorators.scala @@ -39,14 +39,14 @@ object Decorator{ entryPoint: EntryPoint[T, _], routes: T, routeBindings: Map[String, String], - remainingDecorators: List[RawDecorator], + remainingDecorators: List[Decorator[_, _]], bindings: List[Map[String, Any]]): Result[Any] = try { remainingDecorators match { case head :: rest => - head.wrapFunction( + head.asInstanceOf[Decorator[Any, Any]].wrapFunction( ctx, args => invoke(ctx, endpoint, entryPoint, routes, routeBindings, rest, args :: bindings) - .asInstanceOf[Result[cask.model.Response.Raw]] + .asInstanceOf[Result[Nothing]] ) case Nil => |