aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZach Smith <zach@driver.xyz>2017-10-24 14:34:26 -0700
committerZach Smith <zach@driver.xyz>2017-10-31 09:19:04 -0700
commit0ba232ad3d3752e2cdc585de727f0506d598d50d (patch)
tree90d7a2fb3534d06dc1641c57caa2f5664f44e244
parente7d849b55f975f1c119cebb22f95d9de903ae3c3 (diff)
downloaddriver-core-0ba232ad3d3752e2cdc585de727f0506d598d50d.tar.gz
driver-core-0ba232ad3d3752e2cdc585de727f0506d598d50d.tar.bz2
driver-core-0ba232ad3d3752e2cdc585de727f0506d598d50d.zip
Change Module back to having a simple route: Route method
-rw-r--r--src/main/scala/xyz/driver/core/app/DriverApp.scala3
-rw-r--r--src/main/scala/xyz/driver/core/app/module.scala32
2 files changed, 15 insertions, 20 deletions
diff --git a/src/main/scala/xyz/driver/core/app/DriverApp.scala b/src/main/scala/xyz/driver/core/app/DriverApp.scala
index 8f2cf70..4110c37 100644
--- a/src/main/scala/xyz/driver/core/app/DriverApp.scala
+++ b/src/main/scala/xyz/driver/core/app/DriverApp.scala
@@ -108,8 +108,7 @@ class DriverApp(appName: String,
respondWithHeaders(responseHeaders) {
modules
- .flatMap(_.routes)
- .map(_.routeWithDefaults)
+ .map(_.route)
.foldLeft(versionRt ~ healthRoute ~ swaggerRoutes)(_ ~ _)
}(contextWithTrackingId)
}
diff --git a/src/main/scala/xyz/driver/core/app/module.scala b/src/main/scala/xyz/driver/core/app/module.scala
index 6baa457..bbb29f4 100644
--- a/src/main/scala/xyz/driver/core/app/module.scala
+++ b/src/main/scala/xyz/driver/core/app/module.scala
@@ -10,7 +10,7 @@ import scala.reflect.runtime.universe._
trait Module {
val name: String
- def routes: Seq[DriverRoute]
+ def route: Route
def routeTypes: Seq[Type]
val serviceDiscovery: ServiceDiscovery with SavingUsedServiceDiscovery = new NoServiceDiscovery()
@@ -22,26 +22,22 @@ trait Module {
class EmptyModule extends Module {
override val name: String = "Nothing"
- override def routes: Seq[DriverRoute] =
- Seq(new DriverRoute {
- override def route: Route = complete(StatusCodes.OK)
- override val log: Logger = xyz.driver.core.logging.NoLogger
- })
-
+ override def route: Route = complete(StatusCodes.OK)
override def routeTypes: Seq[Type] = Seq.empty[Type]
}
-class SimpleModule(override val name: String, route: Route, routeType: Type) extends Module { self =>
- override def routes: Seq[DriverRoute] =
- Seq(new DriverRoute {
- override def route: Route = self.route
- override val log: Logger = xyz.driver.core.logging.NoLogger
- })
+class SimpleModule(override val name: String, theRoute: Route, routeType: Type) extends Module {
+ private val driverRoute: DriverRoute = new DriverRoute {
+ override def route: Route = theRoute
+ override val log: Logger = xyz.driver.core.logging.NoLogger
+ }
+
+ override def route: Route = driverRoute.routeWithDefaults
override def routeTypes: Seq[Type] = Seq(routeType)
}
/**
- * Module implementation which may be used to composed a few
+ * Module implementation which may be used to compose multiple modules
*
* @param name more general name of the composite module,
* must be provided as there is no good way to automatically
@@ -49,8 +45,8 @@ class SimpleModule(override val name: String, route: Route, routeType: Type) ext
* @param modules modules to compose into a single one
*/
class CompositeModule(override val name: String, modules: Seq[Module]) extends Module with RouteConcatenation {
- override def routes: Seq[DriverRoute] = modules.flatMap(_.routes)
- override def routeTypes: Seq[Type] = modules.flatMap(_.routeTypes)
- override def activate(): Unit = modules.foreach(_.activate())
- override def deactivate(): Unit = modules.reverse.foreach(_.deactivate())
+ override def route: Route = RouteConcatenation.concat(modules.map(_.route): _*)
+ override def routeTypes: Seq[Type] = modules.flatMap(_.routeTypes)
+ override def activate(): Unit = modules.foreach(_.activate())
+ override def deactivate(): Unit = modules.reverse.foreach(_.deactivate())
}