152 lines
6.6 KiB
Java
152 lines
6.6 KiB
Java
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());
|
|
});
|
|
}
|
|
}
|