koersepublicbackend/src/main/java/Server.kt
2018-09-14 22:56:10 +02:00

49 lines
1.7 KiB
Kotlin

import io.vertx.core.http.HttpMethod
import io.vertx.reactivex.config.ConfigRetriever
import io.vertx.reactivex.core.Vertx
import io.vertx.reactivex.ext.asyncsql.PostgreSQLClient
import io.vertx.reactivex.ext.web.Router
import io.vertx.reactivex.ext.web.handler.CorsHandler
fun main(args: Array<String>) {
var vertx = Vertx.vertx()
// fetching config file
var retriever = ConfigRetriever.create(vertx)
retriever.rxGetConfig().subscribe { config ->
// single out the database config
val databaseConfig = config.getJsonObject("database")
// make the jdbc client, ready for connections
var postgreSQLClient = PostgreSQLClient.createShared(vertx, databaseConfig)
var router = Router.router(vertx)
// set up cors
router.route().handler(
// CorsHandler.create("http://localhost:4200")
CorsHandler.create("*")
// .allowCredentials(true)
.allowedHeader("Access-Control-Allow-Method")
.allowedHeader("Access-Control-Allow-Origin")
// .allowedHeader("Access-Control-Allow-Credentials")
.allowedHeader("Content-Type")
.allowedMethod(HttpMethod.GET)
.allowedMethod(HttpMethod.POST)
.allowedMethod(HttpMethod.PUT)
.allowedMethod(HttpMethod.OPTIONS)
)
// define the routes
val routeDefiner = RouteDefiner(router, vertx, postgreSQLClient)
var server = vertx.createHttpServer()
server.requestHandler { router.accept(it) }.listen(8080)
}
}