88 lines
2.5 KiB
Java
88 lines
2.5 KiB
Java
package fr.la_banquise.backend.rest;
|
|
|
|
import fr.la_banquise.backend.rest.request.BulkUserDelRequest;
|
|
import fr.la_banquise.backend.rest.request.BulkUserPostRequest;
|
|
import fr.la_banquise.backend.rest.request.UserRequest;
|
|
import fr.la_banquise.backend.rest.response.LoggedUserResponse;
|
|
import fr.la_banquise.backend.services.UserService;
|
|
import io.quarkus.security.Authenticated;
|
|
import io.quarkus.security.identity.SecurityIdentity;
|
|
import jakarta.annotation.security.RolesAllowed;
|
|
import jakarta.inject.Inject;
|
|
import jakarta.ws.rs.DELETE;
|
|
import jakarta.ws.rs.GET;
|
|
import jakarta.ws.rs.POST;
|
|
import jakarta.ws.rs.Path;
|
|
import jakarta.ws.rs.PathParam;
|
|
import jakarta.ws.rs.Produces;
|
|
import jakarta.ws.rs.QueryParam;
|
|
import jakarta.ws.rs.core.MediaType;
|
|
import jakarta.ws.rs.core.Response;
|
|
|
|
/**
|
|
* UserEndpoints
|
|
*/
|
|
@Path("/api/users")
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
public class UserEndpoints {
|
|
|
|
@Inject SecurityIdentity identity;
|
|
|
|
@Inject UserService userService;
|
|
|
|
@GET
|
|
@Path("/me")
|
|
@Authenticated
|
|
public Response getCurrentUser() {
|
|
LoggedUserResponse user = new LoggedUserResponse(
|
|
identity.getPrincipal().getName(), identity.getRoles());
|
|
return Response.ok(user).build();
|
|
}
|
|
|
|
@GET
|
|
@RolesAllowed("root")
|
|
public Response getAllUsers() {
|
|
return Response.ok(userService.getAllUsers()).build();
|
|
}
|
|
|
|
@GET
|
|
@RolesAllowed("root")
|
|
@Path("{id}")
|
|
public Response getUser(@PathParam("id") Long id) {
|
|
return Response.ok(userService.getUser(id)).build();
|
|
}
|
|
|
|
@POST
|
|
@RolesAllowed("root")
|
|
public Response createUser(UserRequest user) {
|
|
return Response.ok(userService.createUser(user)).build();
|
|
}
|
|
|
|
@POST
|
|
@RolesAllowed("root") // TODO: respos JI doivent aussi pouvoir faire ca
|
|
@Path("/bulk")
|
|
// INFO: if response is empty => required associated jiId was not found in
|
|
// existing JIs
|
|
public Response createUsersBulk(BulkUserPostRequest users) {
|
|
userService.createUsers(
|
|
users); // TODO: adapter en fonction de la reponse
|
|
return Response.ok().build();
|
|
}
|
|
|
|
@DELETE
|
|
@RolesAllowed("root")
|
|
@Path("/bulk")
|
|
public Response deleteUserBulk(BulkUserDelRequest users) {
|
|
userService.deleteUsers(
|
|
users); // TODO: adapter en focntion de la reponse
|
|
return Response.ok().build();
|
|
}
|
|
|
|
@DELETE
|
|
@RolesAllowed("root")
|
|
public Response deleteUser(@QueryParam("id") Long id) {
|
|
userService.deleteUser(id);
|
|
return Response.ok().build();
|
|
}
|
|
}
|