diff --git a/Back-end/src/main/java/com/example/starter/AuthHandler.java b/Back-end/src/main/java/com/example/starter/AuthHandler.java
index cb0d0cd..e3a31c3 100644
--- a/Back-end/src/main/java/com/example/starter/AuthHandler.java
+++ b/Back-end/src/main/java/com/example/starter/AuthHandler.java
@@ -94,11 +94,11 @@ public class AuthHandler {
if (verification.verified) {
JsonObject claims = new JsonObject().put("sub", email);
- if(nbPointsUser<=30){
+ if(nbPointsUser<=60){
claims.put("role", "user");
- }else if(nbPointsUser<=60){
+ }else if(nbPointsUser<=100){
claims.put("role", "complexe");
- }else if(nbPointsUser>=100){
+ }else if(nbPointsUser>=200){
claims.put("role", "admin");
}
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 8492e6e..b669774 100644
--- a/Back-end/src/main/java/com/example/starter/MainVerticle.java
+++ b/Back-end/src/main/java/com/example/starter/MainVerticle.java
@@ -41,6 +41,9 @@ public class MainVerticle extends AbstractVerticle {
AuthHandler authHandler = new AuthHandler(databaseService, jwtAuth);
QueryUsers queryUsers = new QueryUsers(databaseService);
SetUser setUser = new SetUser(databaseService);
+ setObjects.setUserHandler(setUser);
+ queryObjects.setUserHandler(setUser);
+
// Déclaration des routes
router.get("/objets").handler(queryObjects::getObjects);
diff --git a/Back-end/src/main/java/com/example/starter/QueryObjects.java b/Back-end/src/main/java/com/example/starter/QueryObjects.java
index 8d90bf0..029a497 100644
--- a/Back-end/src/main/java/com/example/starter/QueryObjects.java
+++ b/Back-end/src/main/java/com/example/starter/QueryObjects.java
@@ -10,14 +10,20 @@ import java.time.format.DateTimeFormatter;
import io.vertx.ext.web.RoutingContext;
-
public class QueryObjects {
- private DatabaseService databaseService;
- public QueryObjects(DatabaseService dtbS){
- this.databaseService = dtbS;
- }
+ private DatabaseService databaseService;
- public void getObjects(RoutingContext context) {
+ public QueryObjects(DatabaseService dtbS) {
+ this.databaseService = dtbS;
+ }
+
+ private SetUser setUser;
+
+ public void setUserHandler(SetUser setUser) {
+ this.setUser = setUser;
+ }
+
+ public void getObjects(RoutingContext context) {
databaseService.pool
.query("SELECT * FROM weather_objects;")
.execute()
@@ -36,6 +42,8 @@ public class QueryObjects {
public void getParticularObject(RoutingContext context) {
String id = context.request().getParam("id");
+ // Integer idUser = body.getInteger("idUser");
+ Integer idUser = 4;
if (id == null) {
context.response()
.setStatusCode(400)
@@ -58,6 +66,10 @@ public class QueryObjects {
.end(new JsonObject().put("error", "Objet non trouvé").encode());
return;
}
+ if (idUser != null) {
+ setUser.updateUserPoints(idUser, 1);
+ }
+ ;
context.response()
.putHeader("content-type", "application/json: charset=UTF-8")
.end(getInfosObjects(rows).encode());
@@ -77,9 +89,9 @@ public class QueryObjects {
.put("location", row.getString("location"))
.put("last_update", row.getLocalDateTime("last_update").format(formatter))
.put("status", row.getString("status"))
- .put("batterie",row.getInteger("batterie"))
- .put("type_batterie",row.getString("type_batterie"))
- .put("proprio",row.getString("proprio"));
+ .put("batterie", row.getInteger("batterie"))
+ .put("type_batterie", row.getString("type_batterie"))
+ .put("proprio", row.getString("proprio"));
objects.add(object);
}
return objects;
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 a3cca49..e065c02 100644
--- a/Back-end/src/main/java/com/example/starter/QueryUsers.java
+++ b/Back-end/src/main/java/com/example/starter/QueryUsers.java
@@ -33,11 +33,11 @@ public class QueryUsers {
.put("email", row.getString("email"))
.put("gender", row.getString("gender"))
.put("points",points);
- if(points<=30){
+ if(points<=60){
user.put("role", "user");
- }else if(points<=60){
+ }else if(points<=100){
user.put("role", "complexe");
- }else if(points>=100){
+ }else if(points>=200){
user.put("role", "admin");
}
users.add(user);
diff --git a/Back-end/src/main/java/com/example/starter/SetObjects.java b/Back-end/src/main/java/com/example/starter/SetObjects.java
index e3a6de6..a1bb0e6 100644
--- a/Back-end/src/main/java/com/example/starter/SetObjects.java
+++ b/Back-end/src/main/java/com/example/starter/SetObjects.java
@@ -6,11 +6,13 @@ import io.vertx.sqlclient.Tuple;
public class SetObjects {
private DatabaseService databaseService;
-
+ private SetUser setUser;
public SetObjects(DatabaseService ddbs) {
this.databaseService = ddbs;
}
-
+ public void setUserHandler(SetUser setUser){
+ this.setUser = setUser;
+ }
public void setInfoObjet(RoutingContext context) {
JsonObject body = context.body().asJsonObject();
if (body == null) {
@@ -20,6 +22,8 @@ public class SetObjects {
return;
}
Integer id = body.getInteger("id");
+ // Integer idUser = body.getInteger("idUser");
+ Integer idUser = 4;
String description = body.getString("description");
String type = body.getString("type");
String location = body.getString("location");
@@ -42,6 +46,9 @@ public class SetObjects {
.end(new JsonObject().put("error", "Objet non trouvé").encode());
return;
}
+ if(idUser!=null){
+ setUser.updateUserPoints(idUser,1);
+ };
context.response()
.putHeader("content-type", "application/json: charset=UTF-8")
.end(new JsonObject().put("success", "L'objet à bien été mis à jour").encode());
@@ -88,6 +95,8 @@ public class SetObjects {
.end(new JsonObject().put("error","Corps de la requête manquant").encode());
return;
}
+ // Integer idUser = body.getInteger("idUser");
+ Integer idUser = 4;
String name = body.getString("nom");
String description = body.getString("description");
String type = body.getString("type");
@@ -111,12 +120,14 @@ public class SetObjects {
.end(new JsonObject().put("error", "Objet non trouvé").encode());
return;
}
+ if(idUser!=null){
+ setUser.updateUserPoints(idUser,2);
+ };
context.response()
.putHeader("content-type","application/json: charset=UTF-8")
.end(new JsonObject().put("success", "L'objet à bien été ajouté").encode());
return;
});
-
}
}
diff --git a/Back-end/src/main/java/com/example/starter/SetUser.java b/Back-end/src/main/java/com/example/starter/SetUser.java
index b2ade2a..6bcd9b2 100644
--- a/Back-end/src/main/java/com/example/starter/SetUser.java
+++ b/Back-end/src/main/java/com/example/starter/SetUser.java
@@ -10,7 +10,21 @@ public class SetUser {
public SetUser(DatabaseService ddbs) {
this.databaseService = ddbs;
}
-
+ public void updateUserPoints(Integer userId, Integer points) {
+ databaseService.pool
+ .preparedQuery("UPDATE users SET points=points+? WHERE id=?")
+ .execute(Tuple.of(points, userId))
+ .onFailure(e -> {
+ System.err.println("Erreur de mise à jour des points :" + e.getMessage());
+ })
+ .onSuccess(rows -> {
+ if (rows.rowCount() > 0) {
+ System.out.println("Points de l'utilisateur mis à jour avec succès");
+ } else {
+ System.out.println("Utilisateur non trouvé pour la mise à jour des points");
+ }
+ });
+ }
public void setUserPoints(RoutingContext context) {
JsonObject body = context.body().asJsonObject();
if (body == null) {
@@ -21,7 +35,6 @@ public class SetUser {
}
Integer id = body.getInteger("id");
Integer points = body.getInteger("points");
-
databaseService.pool
.preparedQuery(
"UPDATE users SET points=? WHERE id=?")
diff --git a/Back-end/src/main/java/com/example/starter/SetWeatherData.java b/Back-end/src/main/java/com/example/starter/SetWeatherData.java
index 4c2fb56..d6ca45f 100644
--- a/Back-end/src/main/java/com/example/starter/SetWeatherData.java
+++ b/Back-end/src/main/java/com/example/starter/SetWeatherData.java
@@ -6,11 +6,15 @@ import io.vertx.sqlclient.Tuple;
public class SetWeatherData {
private DatabaseService databaseService;
+ private SetUser setUser;
+
public SetWeatherData(DatabaseService ddbs) {
this.databaseService = ddbs;
}
-
+ public void setUserHandler(SetUser setUser) {
+ this.setUser = setUser;
+ }
public void setRangeData(RoutingContext context) {
JsonObject body = context.body().asJsonObject();
if (body == null) {
@@ -37,7 +41,8 @@ public class SetWeatherData {
return;
}
String query = String.format("UPDATE range_data SET %s_min=?, %s_max=? WHERE station_id=?", type, type);
-
+ // Integer idUser = body.getInteger("idUser");
+ Integer idUser = 4;
databaseService.pool
.preparedQuery(
query)
@@ -55,6 +60,9 @@ public class SetWeatherData {
.end(new JsonObject().put("error", "Objet non trouvé").encode());
return;
}
+ if (idUser != null) {
+ setUser.updateUserPoints(idUser, 1);
+ }
context.response()
.putHeader("content-type", "application/json: charset=UTF-8")
.end(new JsonObject().put("success", "Les limites ont bien été mis à jour").encode());
diff --git a/Front-end/src/components/Header.jsx b/Front-end/src/components/Header.jsx
index 18fef1f..52dada0 100644
--- a/Front-end/src/components/Header.jsx
+++ b/Front-end/src/components/Header.jsx
@@ -85,6 +85,7 @@ function Header() {
className="flex items-center gap-2 text-gray-600 hover:text-indigo-600"
>
+ Paramètres
diff --git a/Front-end/src/pages/Admin/User.jsx b/Front-end/src/pages/Admin/User.jsx
index 9244805..7ea7585 100644
--- a/Front-end/src/pages/Admin/User.jsx
+++ b/Front-end/src/pages/Admin/User.jsx
@@ -63,11 +63,11 @@ function User() {
user.role = newLevel;
/*ToDO*/
if (user.role === "user") {
- user.points = 0;
- } else if (user.role === "complexe") {
user.points = 60;
- } else if (user.role === "admin") {
+ } else if (user.role === "complexe") {
user.points = 100;
+ } else if (user.role === "admin") {
+ user.points = 200;
}
axios
.post(`${API_BASE_URL}/setUserPoints`, {