This commit is contained in:
2026-04-18 10:49:13 +03:00
parent ed93e45085
commit c4e113a494
7 changed files with 143 additions and 11 deletions

View File

@@ -31,6 +31,7 @@ public class MainVerticle extends AbstractVerticle {
private AppConfig config;
private UserService userService;
private RestaurantService restaurantService;
@Override
public void start(Promise<Void> startPromise) {
@@ -55,6 +56,7 @@ public class MainVerticle extends AbstractVerticle {
// Инициализация сервисов
userService = new UserService(db.getPool());
restaurantService = new RestaurantService(db.getPool());
// Инициализация БД (создание таблицы users)
userService.initDatabase()
@@ -64,6 +66,13 @@ public class MainVerticle extends AbstractVerticle {
startPromise.fail(err);
});
restaurantService.initDatabase()
.onSuccess(v -> log.info("Database initialized successfully"))
.onFailure(err -> {
log.error("Failed to initialize database", err);
startPromise.fail(err);
});
Router router = initRouter();
startHttp(router, startPromise);
@@ -127,22 +136,16 @@ public class MainVerticle extends AbstractVerticle {
AuthHandler authHandler = new AuthHandler(userService);
SetupHandler setupHandler = new SetupHandler(userService);
// Проверка статуса (нужна ли инициализация)
router.get("/api/status").handler(setupHandler::checkStatus);
// Регистрация первого администратора
router.post("/api/setup").handler(setupHandler::handleSetup);
// Логин
router.post("/api/login").handler(authHandler::handleLogin);
// Выход
router.post("/api/logout").handler(authHandler::handleLogout);
// Защищённые маршруты
router.route("/api/admin/*").handler(authHandler::requireAuth);
// Получение списка пользователей
router.get("/api/admin/users").handler(rc -> userService.getAllUsers().onComplete(ar -> {
if (ar.succeeded()) {
rc.response()
@@ -168,11 +171,6 @@ public class MainVerticle extends AbstractVerticle {
}
});
// Статическая раздача фронтенда
// router.route("/*").handler(StaticHandler.create("webroot")
// .setCachingEnabled(false)
// .setIndexPage("index.html"));
return router;
}