Added Admin endpoints
Fixed typos in Users Endpoints
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
package hackathon.FrisbYEE.jpa.dto;
|
package hackathon.FrisbYEE.jpa.dto;
|
||||||
|
import hackathon.FrisbYEE.jpa.metier.Role;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@@ -7,4 +8,5 @@ public class AdminDTO {
|
|||||||
private Integer id;
|
private Integer id;
|
||||||
private String name;
|
private String name;
|
||||||
private String prenom;
|
private String prenom;
|
||||||
|
private Role role;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,13 @@
|
|||||||
package hackathon.FrisbYEE.jpa.service;
|
package hackathon.FrisbYEE.jpa.service;
|
||||||
|
|
||||||
import hackathon.FrisbYEE.jpa.metier.Admin;
|
import hackathon.FrisbYEE.jpa.metier.Admin;
|
||||||
|
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
@Repository
|
@Repository
|
||||||
public interface AdminDAO extends JpaRepository<Admin, Integer> {
|
public interface AdminDAO extends JpaRepository<Admin, Integer> {
|
||||||
|
Optional<Admin> findByKeycloakId(String keycloakId);
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,5 @@
|
|||||||
package hackathon.FrisbYEE.jpa.service;
|
package hackathon.FrisbYEE.jpa.service;
|
||||||
|
|
||||||
import hackathon.FrisbYEE.jpa.metier.Coach;
|
|
||||||
import hackathon.FrisbYEE.jpa.metier.User;
|
import hackathon.FrisbYEE.jpa.metier.User;
|
||||||
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
@@ -10,5 +9,5 @@ import org.springframework.stereotype.Repository;
|
|||||||
|
|
||||||
@Repository
|
@Repository
|
||||||
public interface UserDAO extends JpaRepository<User, Integer> {
|
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}")
|
@GetMapping("/{id}")
|
||||||
@PreAuthorize("hasRole('admin') or hasRole('coach') or hasRole('athlete')")
|
@PreAuthorize("hasRole('admin') or hasRole('coach') or hasRole('athlete')")
|
||||||
public ResponseEntity<UserDTO> getById(@PathVariable String id) {
|
public ResponseEntity<UserDTO> getById(@PathVariable Integer id) {
|
||||||
User user = userDAO.findByKeycloakId(id).get();
|
User user = userDAO.findById(id).get();
|
||||||
return ResponseEntity.ok(mapToDTO(user));
|
return ResponseEntity.ok(mapToDTO(user));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -94,9 +94,15 @@ export const coachService = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const userService = {
|
export const userService = {
|
||||||
getByKeycloakId: (keycloak_id: string) => api.get(`/users/${keycloak_id}`),
|
getById: (id: number) => api.get(`/users/${id}`),
|
||||||
|
getByKeycloakId: (keycloak_id: string) => api.get(`/users/keycloak/${keycloak_id}`),
|
||||||
getAll: () => api.get(`/users/all`),
|
getAll: () => api.get(`/users/all`),
|
||||||
sync: () => api.post(`/users/sync`),
|
sync: () => api.post(`/users/sync`),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const adminService = {
|
||||||
|
getByKeycloakId: (keycloak_id: string) => api.get(`/admin/keycloak/${keycloak_id}`),
|
||||||
|
getById: (id: number | string) => api.get(`/admin/${id}`),
|
||||||
|
};
|
||||||
|
|
||||||
export default api;
|
export default api;
|
||||||
Reference in New Issue
Block a user