diff options
author | Zach Smith <zach@driver.xyz> | 2017-09-27 22:20:53 -0700 |
---|---|---|
committer | Zach Smith <zach@driver.xyz> | 2017-10-12 16:48:08 -0700 |
commit | 2c524be93052fc6d57359a00fd60d957099885c6 (patch) | |
tree | b68467ca2fd4f4f101da1ce315c022ab12220145 /src/main/scala/xyz/driver/core/rest/Swagger.scala | |
parent | b00892d723f6dedf50dc1c1fde7d443e9c3f9497 (diff) | |
download | driver-core-2c524be93052fc6d57359a00fd60d957099885c6.tar.gz driver-core-2c524be93052fc6d57359a00fd60d957099885c6.tar.bz2 driver-core-2c524be93052fc6d57359a00fd60d957099885c6.zip |
Refactor rest package into separate files
Diffstat (limited to 'src/main/scala/xyz/driver/core/rest/Swagger.scala')
-rw-r--r-- | src/main/scala/xyz/driver/core/rest/Swagger.scala | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/src/main/scala/xyz/driver/core/rest/Swagger.scala b/src/main/scala/xyz/driver/core/rest/Swagger.scala new file mode 100644 index 0000000..e0efeaf --- /dev/null +++ b/src/main/scala/xyz/driver/core/rest/Swagger.scala @@ -0,0 +1,52 @@ +package xyz.driver.core.rest + +import akka.actor.ActorSystem +import akka.http.scaladsl.server.Route +import akka.stream._ +import com.github.swagger.akka.model._ +import com.github.swagger.akka.{HasActorSystem, SwaggerHttpService} +import com.typesafe.config.Config +import io.swagger.models.Scheme + +import scala.reflect.runtime.universe._ + +class Swagger(override val host: String, + override val scheme: Scheme, + version: String, + override val actorSystem: ActorSystem, + override val apiTypes: Seq[Type], + val config: Config) + extends SwaggerHttpService with HasActorSystem { + + val materializer: ActorMaterializer = ActorMaterializer()(actorSystem) + + override val basePath: String = config.getString("swagger.basePath") + override val apiDocsPath: String = config.getString("swagger.docsPath") + + override val info = Info( + config.getString("swagger.apiInfo.description"), + version, + 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.empty[String, AnyRef] + ) + + def swaggerUI: Route = get { + pathPrefix("") { + pathEndOrSingleSlash { + getFromResource("swagger-ui/index.html") + } + } ~ getFromResourceDirectory("swagger-ui") + } +} |