diff --git a/back_end/src/main/java/hackathon/FrisbYEE/jpa/service/ActiviteDAO.java b/back_end/src/main/java/hackathon/FrisbYEE/jpa/service/ActiviteDAO.java index 94d3e0a..1b36e20 100644 --- a/back_end/src/main/java/hackathon/FrisbYEE/jpa/service/ActiviteDAO.java +++ b/back_end/src/main/java/hackathon/FrisbYEE/jpa/service/ActiviteDAO.java @@ -3,8 +3,11 @@ package hackathon.FrisbYEE.jpa.service; import hackathon.FrisbYEE.jpa.metier.Activite; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; +import java.util.List; @Repository public interface ActiviteDAO extends JpaRepository { + + List findByTheme(String theme); } diff --git a/back_end/src/main/java/hackathon/FrisbYEE/rest/ActiviteResource.java b/back_end/src/main/java/hackathon/FrisbYEE/rest/ActiviteResource.java index 271b4d7..83a7426 100644 --- a/back_end/src/main/java/hackathon/FrisbYEE/rest/ActiviteResource.java +++ b/back_end/src/main/java/hackathon/FrisbYEE/rest/ActiviteResource.java @@ -84,7 +84,8 @@ public class ActiviteResource { } - @GetMapping("/read/{id}") + @GetMapping("/{id}") + @PreAuthorize("hasRole('Coach') or hasRole('Athlete')") @ResponseBody public ResponseEntity getActivityById(@PathVariable("id") int id) { try { @@ -104,6 +105,7 @@ public class ActiviteResource { } @GetMapping("/all") + @PreAuthorize("hasRole('Coach') or hasRole('Athlete')") @ResponseBody public ResponseEntity> getAllActivity() { try { @@ -124,4 +126,28 @@ public class ActiviteResource { } } + + @GetMapping("/theme/{theme}") + @PreAuthorize("hasRole('Coach') or hasRole('Athlete')") + @ResponseBody + public ResponseEntity> getActivityByTheme(@PathVariable("theme") String theme) { + try { + List activites = activiteDAO.findByTheme(theme); + List dtos = activites.stream().map(activite -> { + ActiviteDTO dto = new ActiviteDTO(); + dto.setName(activite.getName()); + dto.setId(activite.getId()); + dto.setTheme(activite.getTheme()); + dto.setDuree(activite.getDuree()); + dto.setDataActivite(activite.getDataActivite()); + dto.setSessionId(activite.getSession() != null ? activite.getSession().getId() : null); + return dto; + }).collect(Collectors.toList()); + return ResponseEntity.ok(dtos); + } catch (Exception ex) { + return ResponseEntity.status(HttpStatus.NOT_FOUND).body(null); + } + + } + }