Added Admin endpoints
Fixed typos in Users Endpoints
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
package hackathon.FrisbYEE.jpa.dto;
|
||||
import hackathon.FrisbYEE.jpa.metier.Role;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@@ -7,4 +8,5 @@ public class AdminDTO {
|
||||
private Integer id;
|
||||
private String name;
|
||||
private String prenom;
|
||||
private Role role;
|
||||
}
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
package hackathon.FrisbYEE.jpa.service;
|
||||
|
||||
import hackathon.FrisbYEE.jpa.metier.Admin;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
@Repository
|
||||
public interface AdminDAO extends JpaRepository<Admin, Integer> {
|
||||
|
||||
Optional<Admin> findByKeycloakId(String keycloakId);
|
||||
}
|
||||
@@ -1,6 +1,5 @@
|
||||
package hackathon.FrisbYEE.jpa.service;
|
||||
|
||||
import hackathon.FrisbYEE.jpa.metier.Coach;
|
||||
import hackathon.FrisbYEE.jpa.metier.User;
|
||||
|
||||
import java.util.Optional;
|
||||
@@ -10,5 +9,5 @@ import org.springframework.stereotype.Repository;
|
||||
|
||||
@Repository
|
||||
public interface UserDAO extends JpaRepository<User, Integer> {
|
||||
Optional<Coach> findByKeycloakId(String keycloakId);
|
||||
Optional<User> findByKeycloakId(String keycloakId);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
package hackathon.FrisbYEE.rest;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.CrossOrigin;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import hackathon.FrisbYEE.jpa.dto.AdminDTO;
|
||||
import hackathon.FrisbYEE.jpa.metier.Admin;
|
||||
import hackathon.FrisbYEE.jpa.service.AdminDAO;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/admin")
|
||||
@CrossOrigin(origins = "http://localhost:3000")
|
||||
public class AdminResource {
|
||||
|
||||
@Autowired
|
||||
private AdminDAO adminDAO;
|
||||
|
||||
@GetMapping("/{id}")
|
||||
@PreAuthorize("hasRole('admin')")
|
||||
public ResponseEntity<AdminDTO> getAdmin(@PathVariable Integer id) {
|
||||
Admin admin = adminDAO.findById(id).get();
|
||||
return ResponseEntity.ok(mapToDTO(admin));
|
||||
}
|
||||
|
||||
@GetMapping("/keycloak/{keycloak_id}")
|
||||
@PreAuthorize("hasRole('admin')")
|
||||
public ResponseEntity<AdminDTO> getByKeycloakId(@PathVariable String keycloak_id) {
|
||||
Admin admin = adminDAO.findByKeycloakId(keycloak_id).get();
|
||||
return ResponseEntity.ok(mapToDTO(admin));
|
||||
}
|
||||
|
||||
private AdminDTO mapToDTO(Admin admin) {
|
||||
AdminDTO dto = new AdminDTO();
|
||||
dto.setId(admin.getId());
|
||||
dto.setId_keycloak(admin.getKeycloakId());
|
||||
dto.setName(admin.getName());
|
||||
dto.setPrenom(admin.getPrenom());
|
||||
dto.setRole(admin.getRole());
|
||||
|
||||
return dto;
|
||||
}
|
||||
}
|
||||
@@ -54,8 +54,8 @@ public class UserResource {
|
||||
})
|
||||
@GetMapping("/{id}")
|
||||
@PreAuthorize("hasRole('admin') or hasRole('coach') or hasRole('athlete')")
|
||||
public ResponseEntity<UserDTO> getById(@PathVariable String id) {
|
||||
User user = userDAO.findByKeycloakId(id).get();
|
||||
public ResponseEntity<UserDTO> getById(@PathVariable Integer id) {
|
||||
User user = userDAO.findById(id).get();
|
||||
return ResponseEntity.ok(mapToDTO(user));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user