package com.example.starter; import io.vertx.core.json.JsonArray; import io.vertx.core.json.JsonObject; import io.vertx.ext.web.RoutingContext; import io.vertx.sqlclient.Row; import io.vertx.sqlclient.Tuple; public class QueryUsers { private DatabaseService databaseService; public QueryUsers(DatabaseService dtbS) { this.databaseService = dtbS; } public void getUsers(RoutingContext context) { databaseService.pool .query("SELECT * FROM users;") .execute() .onFailure(e -> { System.err.println("Erreur de récupération de la BDD :" + e.getMessage()); context.response() .setStatusCode(500) .end(new JsonObject().put("error", "Erreur de récupération de la BDD").encode()); }) .onSuccess(rows -> { JsonArray users = new JsonArray(); for (Row row : rows) { int points = row.getInteger("points"); JsonObject user = new JsonObject() .put("id", row.getInteger("id")) .put("name", row.getString("name")) .put("surname", row.getString("surname")) .put("email", row.getString("email")) .put("gender", row.getString("gender")) .put("pseudo",row.getString("pseudo")) .put("points", points); if (points <= 60) { user.put("role", "user"); } else if (points <= 100) { user.put("role", "complexe"); } else if (points >= 200) { user.put("role", "admin"); } users.add(user); } context.response() .putHeader("content-type", "application/json; charset=UTF-8") .end(users.encode()); }); } public void getUser(RoutingContext context) { JsonObject body = context.body().asJsonObject(); if (body == null) { context.response() .setStatusCode(400) .end(new JsonObject().put("error", "Corps de la requête manquant").encode()); return; } Integer idUser = body.getInteger("id"); databaseService.pool .preparedQuery("SELECT * FROM users WHERE id=?;") .execute(Tuple.of(idUser)) .onFailure(e -> { System.err.println("Erreur de récupération de la BDD :" + e.getMessage()); context.response() .setStatusCode(500) .end(new JsonObject().put("error", "Erreur de récupération de la BDD").encode()); }) .onSuccess(rows -> { if (rows.size() == 0) { context.response() .setStatusCode(404) .end(new JsonObject().put("error", "Utilisateur non trouvé").encode()); return; } Row row = rows.iterator().next(); int points = row.getInteger("points"); JsonObject user = new JsonObject() .put("id", row.getInteger("id")) .put("name", row.getString("name")) .put("surname", row.getString("surname")) .put("email", row.getString("email")) .put("gender", row.getString("gender")) .put("pseudo",row.getString("pseudo")) .put("points", points); if (points <= 60) { user.put("role", "user"); } else if (points <= 100) { user.put("role", "complexe"); } else if (points >= 200) { user.put("role", "admin"); } context.response() .putHeader("content-type", "application/json; charset=UTF-8") .end(user.encode()); }); } public void getPublicUser(RoutingContext context) { JsonObject body = context.body().asJsonObject(); if (body == null) { context.response() .setStatusCode(400) .end(new JsonObject().put("error", "Corps de la requête manquant").encode()); return; } Integer idUser = body.getInteger("id"); databaseService.pool .preparedQuery("SELECT * FROM users WHERE id=?;") .execute(Tuple.of(idUser)) .onFailure(e -> { System.err.println("Erreur de récupération de la BDD :" + e.getMessage()); context.response() .setStatusCode(500) .end(new JsonObject().put("error", "Erreur de récupération de la BDD").encode()); }) .onSuccess(rows -> { if (rows.size() == 0) { context.response() .setStatusCode(404) .end(new JsonObject().put("error", "Utilisateur non trouvé").encode()); return; } Row row = rows.iterator().next(); int points = row.getInteger("points"); JsonObject user = new JsonObject() .put("id", row.getInteger("id")) .put("gender", row.getString("gender")) .put("pseudo",row.getString("pseudo")) .put("points", points); if (points <= 60) { user.put("role", "user"); } else if (points <= 100) { user.put("role", "complexe"); } else if (points >= 200) { user.put("role", "admin"); } context.response() .putHeader("content-type", "application/json; charset=UTF-8") .end(user.encode()); }); } }