aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/com/drivergrp/core/rest.scala
diff options
context:
space:
mode:
authorvlad <vlad@drivergrp.com>2016-07-16 15:55:19 -0400
committervlad <vlad@drivergrp.com>2016-07-16 15:55:19 -0400
commitc948b1f2c1c7a5246d5c1a7cba05e6e27a9d7b57 (patch)
tree8737b3bc5e49c287173f52ca936d36fceb86b4d0 /src/main/scala/com/drivergrp/core/rest.scala
parent482459a63433c281b7a576236111e6a86e4521c9 (diff)
downloaddriver-core-c948b1f2c1c7a5246d5c1a7cba05e6e27a9d7b57.tar.gz
driver-core-c948b1f2c1c7a5246d5c1a7cba05e6e27a9d7b57.tar.bz2
driver-core-c948b1f2c1c7a5246d5c1a7cba05e6e27a9d7b57.zip
Modules consolidation
Diffstat (limited to 'src/main/scala/com/drivergrp/core/rest.scala')
-rw-r--r--src/main/scala/com/drivergrp/core/rest.scala42
1 files changed, 41 insertions, 1 deletions
diff --git a/src/main/scala/com/drivergrp/core/rest.scala b/src/main/scala/com/drivergrp/core/rest.scala
index 51823da..71aed94 100644
--- a/src/main/scala/com/drivergrp/core/rest.scala
+++ b/src/main/scala/com/drivergrp/core/rest.scala
@@ -7,11 +7,13 @@ import akka.http.scaladsl.server.{Directive, _}
import akka.http.scaladsl.util.FastFuture._
import akka.stream.ActorMaterializer
import akka.util.Timeout
-import com.drivergrp.core.id.{Id, Name}
import com.drivergrp.core.logging.Logger
import com.drivergrp.core.stats.Stats
import com.drivergrp.core.time.TimeRange
import com.drivergrp.core.time.provider.TimeProvider
+import com.github.swagger.akka.model._
+import com.github.swagger.akka.{HasActorSystem, SwaggerHttpService}
+import com.typesafe.config.Config
import spray.json.{DeserializationException, JsNumber, JsString, JsValue, RootJsonFormat}
import scala.concurrent.duration._
@@ -97,4 +99,42 @@ object rest {
optionT.run.fast.transformWith(t ⇒ inner(Tuple1(t))(ctx))
}
}
+
+
+ import scala.reflect.runtime.universe._
+
+ class Swagger(override val actorSystem: ActorSystem,
+ override val apiTypes: Seq[Type],
+ val config: Config) extends SwaggerHttpService with HasActorSystem {
+
+ val materializer = ActorMaterializer()(actorSystem)
+
+ override val host = "localhost:8080" //the url of your api, not swagger's json endpoint
+ override val basePath = config.getString("swagger.basePath")
+ override val apiDocsPath = config.getString("swagger.docsPath")
+
+ override val info = Info(
+ config.getString("swagger.apiInfo.description"),
+ config.getString("swagger.apiVersion"),
+ config.getString("swagger.apiInfo.title"),
+ config.getString("swagger.apiInfo.termsOfServiceUrl"),
+ contact = Some(Contact(
+ config.getString("swagger.apiInfo.contact.name"),
+ config.getString("swagger.apiInfo.contact.url"),
+ config.getString("swagger.apiInfo.contact.email")
+ )),
+ license = Some(License(
+ config.getString("swagger.apiInfo.license"),
+ config.getString("swagger.apiInfo.licenseUrl")
+ )),
+ vendorExtensions = Map())
+
+ def swaggerUI = get {
+ pathPrefix("") {
+ pathEndOrSingleSlash {
+ getFromResource("swagger-ui/index.html")
+ }
+ } ~ getFromResourceDirectory("swagger-ui")
+ }
+ }
}