2025-08-19 22:39:27 +02:00

88 lines
2.5 KiB
Java

package fr.la_banquise.backend.rest;
import fr.la_banquise.backend.rest.request.BulkUserRequest;
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.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() {
System.out.println("=== DEBUG /me endpoint ===");
System.out.println("Identity: " + identity);
System.out.println("Principal: " + identity.getPrincipal());
System.out.println("Principal name: " +
identity.getPrincipal().getName());
System.out.println("Roles: " + identity.getRoles());
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")
@Path("/jdmi")
public Response createJdmiUsers(BulkUserRequest users) {
userService.createJdmiUser(users);
return Response.ok().build();
}
@DELETE
@RolesAllowed("root")
public Response deleteJDMI() {
userService.deleteJDMI();
return Response.ok().build();
}*/
@DELETE
@RolesAllowed("root")
@Path("/{id}")
public Response deleteUser(@PathParam("id") Long id) {
userService.deleteUser(id);
return Response.ok().build();
}
}