UsersController.java

  1. package edu.ucsb.cs156.happiercows.controllers;

  2. import com.fasterxml.jackson.core.JsonProcessingException;
  3. import com.fasterxml.jackson.databind.ObjectMapper;

  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.http.ResponseEntity;
  6. import org.springframework.security.access.prepost.PreAuthorize;
  7. import org.springframework.web.bind.annotation.GetMapping;
  8. import org.springframework.web.bind.annotation.RequestMapping;
  9. import org.springframework.web.bind.annotation.RestController;

  10. import edu.ucsb.cs156.happiercows.entities.User;
  11. import edu.ucsb.cs156.happiercows.repositories.UserRepository;
  12. import io.swagger.v3.oas.annotations.tags.Tag;
  13. import io.swagger.v3.oas.annotations.Operation;

  14. @Tag(name="User information (admin only)")
  15. @RequestMapping("/api/admin/users")
  16. @RestController
  17. public class UsersController extends ApiController {
  18.     @Autowired
  19.     UserRepository userRepository;

  20.     @Autowired
  21.     ObjectMapper mapper;

  22.     @Operation(summary = "Get a list of all users")
  23.     @PreAuthorize("hasRole('ROLE_ADMIN')")
  24.     @GetMapping("")
  25.     public ResponseEntity<String> users()
  26.             throws JsonProcessingException {
  27.         Iterable<User> users = userRepository.findAll();
  28.         String body = mapper.writeValueAsString(users);
  29.         return ResponseEntity.ok().body(body);
  30.     }
  31. }