jvm/src/sqwl/cms/Server.scala
author Tomas Zeman <tzeman@volny.cz>
Thu, 22 Nov 2018 13:15:29 +0100
changeset 3 48479e4b89d4
permissions -rw-r--r--
App skeleton
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3
48479e4b89d4 App skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     1
package sqwl.cms
48479e4b89d4 App skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     2
48479e4b89d4 App skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     3
import akka.actor.ActorSystem
48479e4b89d4 App skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     4
import akka.http.scaladsl.Http
48479e4b89d4 App skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     5
import akka.http.scaladsl.model.{ContentTypes, HttpEntity}
48479e4b89d4 App skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     6
import akka.http.scaladsl.server.Directives._
48479e4b89d4 App skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     7
import akka.stream.{ActorMaterializer, Materializer}
48479e4b89d4 App skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     8
48479e4b89d4 App skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     9
import scala.concurrent.ExecutionContextExecutor
48479e4b89d4 App skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    10
48479e4b89d4 App skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    11
object Server extends App with Service with config with UrlScheme {
48479e4b89d4 App skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    12
  override implicit val system: ActorSystem = ActorSystem()
48479e4b89d4 App skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    13
  override implicit val executor: ExecutionContextExecutor = system.dispatcher
48479e4b89d4 App skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    14
  override implicit val materializer: Materializer = ActorMaterializer()
48479e4b89d4 App skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    15
48479e4b89d4 App skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    16
  private val routes = get {
48479e4b89d4 App skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    17
    path(http.prefix) {
48479e4b89d4 App skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    18
      complete(HttpEntity(ContentTypes.`text/html(UTF-8)`, "main"))
48479e4b89d4 App skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    19
    } ~ pathPrefix(http.prefix / ASSETS) {
48479e4b89d4 App skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    20
      getFromResourceDirectory("META-INF/resources/webjars")
48479e4b89d4 App skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    21
    } ~ pathPrefix(http.prefix / PUBLIC) {
48479e4b89d4 App skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    22
      getFromResourceDirectory("public")
48479e4b89d4 App skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    23
    }
48479e4b89d4 App skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    24
  }
48479e4b89d4 App skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    25
48479e4b89d4 App skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    26
  Http().bindAndHandle(routes, http.interface, http.port)
48479e4b89d4 App skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    27
48479e4b89d4 App skeleton
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    28
}