package fr.la_banquise.backend.rest; import fr.la_banquise.backend.rest.request.UserRequest; import fr.la_banquise.backend.services.UserService; import jakarta.annotation.security.RolesAllowed; import jakarta.inject.Inject; 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 UserService userService; @GET @RolesAllowed("pingouin") public Response getAllUsers() { return Response.ok(userService.getAllUsers()).build(); } @GET @RolesAllowed("pingouin") @Path("{id}") public Response getUser(@PathParam("id") Long id) { return Response.ok(userService.getUser(id)).build(); } @POST @RolesAllowed("admin") public Response createUser(UserRequest user) { return Response.ok(userService.crateUser(user.firstName, user.lastName)).build(); } }