package com.plannaplan.controllers; import java.util.List; import com.plannaplan.App; import com.plannaplan.entities.User; import com.plannaplan.responses.mappers.UserResponseMappers; import com.plannaplan.responses.models.SearchForStudentsResponse; import com.plannaplan.services.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.RestController; import io.swagger.annotations.Api; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @RestController @CrossOrigin @RequestMapping("/api/" + App.API_VERSION + "/users") @EnableGlobalMethodSecurity(prePostEnabled = true) @Api(tags = { "Users" }, value = "Users", description = "Endpoints to deal with users.") public class UsersController { @Autowired private UserService userService; @GetMapping("/search") @PreAuthorize("hasRole('ROLE_DEANERY')") public ResponseEntity> configApp(@RequestParam("query") String query) { final List searches = this.userService.searchForStudents(query); final List response = UserResponseMappers.mapToDefaultResponse(searches); return new ResponseEntity<>(response, HttpStatus.OK); } }