49 lines
1.7 KiB
Kotlin
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)
|
|
|
|
|
|
}
|
|
|
|
|
|
} |