diff --git a/Back-end/src/main/java/com/example/starter/MainVerticle.java b/Back-end/src/main/java/com/example/starter/MainVerticle.java index b45f367..1c64300 100644 --- a/Back-end/src/main/java/com/example/starter/MainVerticle.java +++ b/Back-end/src/main/java/com/example/starter/MainVerticle.java @@ -61,7 +61,7 @@ public class MainVerticle extends AbstractVerticle { router.post("/deleteUser").handler(setUser::deleteUser); router.post("/updateProfil").handler(setUser::updateUserProfile); router.post("/changePassword").handler(setUser::changeUserPassword); - + router.post("/publicUser").handler(queryUsers::getPublicUser); // Routes d'authentification router.post("/signup").handler(authHandler::handleSignup); router.post("/login").handler(authHandler::handleLogin); diff --git a/Back-end/src/main/java/com/example/starter/QueryUsers.java b/Back-end/src/main/java/com/example/starter/QueryUsers.java index 6305e81..4ea1c5f 100644 --- a/Back-end/src/main/java/com/example/starter/QueryUsers.java +++ b/Back-end/src/main/java/com/example/starter/QueryUsers.java @@ -97,6 +97,54 @@ public class QueryUsers { 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("idUser"); + Integer idUser = 4; + 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()); diff --git a/Front-end/src/components/UserInfosObject.jsx b/Front-end/src/components/UserInfosObject.jsx new file mode 100644 index 0000000..1821e50 --- /dev/null +++ b/Front-end/src/components/UserInfosObject.jsx @@ -0,0 +1,61 @@ +import React from "react"; +import { Info } from "lucide-react"; +import axios from "axios"; +import { API_BASE_URL } from "../config"; + + +function InfoObject({ object,defafficherModif }) { + axios + .post(`${API_BASE_URL}/publicUser`, { + id: object.user, + }) + .then((response) => { + console.log("Modification réussie :", response.data); + }) + .catch((error) => { + console.error("Erreur lors de la modification :", error); + }); + defafficherModif(false); + window.location.reload(); + return ( +
+
+
+ +
+

Informations

+
+
+

Description :

+

{object.description}

+
+ +
+

Type :

+

{object.type}

+
+ +
+

Localisation :

+

{object.location}

+
+ +
+

Status :

+

{object.status}

+
+ +
+

+ Derniere mise à jour : +

+

{object.last_update}

+
+
+ defafficherModif(true))}>Modifier ces infos +
+
+ ); +} + +export default InfoObject;