zkt26/Back-end/src/main/java/com/example/starter/MainVerticle.java

51 lines
2.1 KiB
Java

package com.example.starter;
import io.vertx.ext.web.handler.BodyHandler;
import io.vertx.ext.web.handler.CorsHandler;
import io.vertx.core.http.HttpMethod;
import io.vertx.core.AbstractVerticle;
import io.vertx.core.Promise;
import io.vertx.ext.web.Router;
public class MainVerticle extends AbstractVerticle {
private DatabaseService databaseService;
@Override
public void start(Promise<Void> startPromise) throws Exception {
databaseService = new DatabaseService(vertx);
QueryObjects queryObjects = new QueryObjects(databaseService);
QueryWeatherData queryWeather = new QueryWeatherData(databaseService);
SetObjects setObjects = new SetObjects(databaseService);
SetWeatherData setWeatherData = new SetWeatherData(databaseService);
// Create a Router
Router router = Router.router(vertx);
router.route().handler(BodyHandler.create());
router.route().handler(CorsHandler.create()
.addOrigin("*") // Allow all origins
.allowedMethod(HttpMethod.GET) // Allow GET requests
.allowedMethod(HttpMethod.POST) // Allow POST requests
.allowedHeader("Content-Type") // Allow Content-Type header
.allowedHeader("Authorization"));
router.get("/objets").handler(queryObjects::getObjects);
router.get("/objet").handler(queryObjects::getParticularObject);
router.post("/modifObjet").handler(setObjects::setInfoObjet);
router.get("/wind").handler(queryWeather::getWindInfos);
router.get("/meteo").handler(queryWeather::getMeteoInfos);
router.post("/addObject").handler(setObjects::newObject);
router.get("/getRange").handler(queryWeather::getRangeData);
router.post("/modifRangeData").handler(setWeatherData::setRangeData);
vertx.createHttpServer()
.requestHandler(router)
.listen(8888)
.onSuccess(server -> {
System.out.println("HTTP server started on port " + server.actualPort());
startPromise.complete();
})
.onFailure(throwable -> {
throwable.printStackTrace();
startPromise.fail(throwable);
});
}
}