v01
This commit is contained in:
@@ -10,29 +10,59 @@ public class SetupHandler {
|
||||
this.userService = userService;
|
||||
}
|
||||
|
||||
public void checkStatus(RoutingContext ctx) {
|
||||
userService.countUsers().onComplete(ar -> {
|
||||
if (ar.succeeded()) {
|
||||
ctx.response()
|
||||
.putHeader("Content-Type", "application/json")
|
||||
.end(new JsonObject()
|
||||
.put("needsSetup", ar.result() == 0)
|
||||
.put("userCount", ar.result())
|
||||
.encode());
|
||||
} else {
|
||||
ctx.response().setStatusCode(500).end(ar.cause().getMessage());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void handleSetup(RoutingContext ctx) {
|
||||
// Проверяем, есть ли уже пользователи
|
||||
userService.countUsers().onComplete(ar -> {
|
||||
if (ar.succeeded() && ar.result() == 0) {
|
||||
JsonObject body = ctx.body().asJsonObject();
|
||||
|
||||
if (body == null) {
|
||||
ctx.response().setStatusCode(400).end("Invalid JSON body");
|
||||
return;
|
||||
}
|
||||
|
||||
String login = body.getString("login");
|
||||
String password = body.getString("password");
|
||||
|
||||
if (login == null || password == null || login.length() < 3 || password.length() < 6) {
|
||||
ctx.response().setStatusCode(400).end("Invalid login or password (min 3/6 chars)");
|
||||
ctx.response().setStatusCode(400)
|
||||
.end(new JsonObject()
|
||||
.put("error", "Invalid login or password (min 3/6 chars)")
|
||||
.encode());
|
||||
return;
|
||||
}
|
||||
|
||||
String ip = ctx.request().remoteAddress().host();
|
||||
userService.createUser(login, password, ip).onComplete(cr -> {
|
||||
if (cr.succeeded()) {
|
||||
ctx.response().setStatusCode(201).end(new JsonObject().put("success", true).encode());
|
||||
ctx.response().setStatusCode(201)
|
||||
.end(new JsonObject().put("success", true).encode());
|
||||
} else {
|
||||
ctx.response().setStatusCode(500).end("Failed to create admin: " + cr.cause().getMessage());
|
||||
ctx.response().setStatusCode(500)
|
||||
.end(new JsonObject()
|
||||
.put("error", "Failed to create admin: " + cr.cause().getMessage())
|
||||
.encode());
|
||||
}
|
||||
});
|
||||
} else {
|
||||
ctx.response().setStatusCode(403).end("Setup already completed");
|
||||
ctx.response().setStatusCode(403)
|
||||
.end(new JsonObject()
|
||||
.put("error", "Setup already completed")
|
||||
.encode());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user