From c6f8e552eba66f89ef40d43f6eaf56a164cdfaf5 Mon Sep 17 00:00:00 2001 From: tuanvu Date: Mon, 5 Jan 2026 15:22:22 +0100 Subject: [PATCH] DTO and Resource test --- .gitignore | 3 +- .vscode/settings.json | 3 - .../FrisbYEE/jpa/dto/ActiviteDTO.java | 52 ++++++++++++++++ .../FrisbYEE/jpa/dto/AthleteDTO.java | 2 +- .../FrisbYEE/rest/ActiviteResource.java | 61 +++++++++++++++++++ .../FrisbYEE/rest/ActiviteResources.java | 5 -- .../SessionResource.java} | 26 +++----- 7 files changed, 126 insertions(+), 26 deletions(-) delete mode 100644 .vscode/settings.json create mode 100644 back_end/src/main/java/hackathon/FrisbYEE/jpa/dto/ActiviteDTO.java create mode 100644 back_end/src/main/java/hackathon/FrisbYEE/rest/ActiviteResource.java delete mode 100644 back_end/src/main/java/hackathon/FrisbYEE/rest/ActiviteResources.java rename back_end/src/main/java/hackathon/FrisbYEE/{jpa/web/ActiviteController.java => rest/SessionResource.java} (67%) diff --git a/.gitignore b/.gitignore index 4d29575..888b7e8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - +.vscode +.idea # dependencies /node_modules /.pnp diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index c5f3f6b..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "java.configuration.updateBuildConfiguration": "interactive" -} \ No newline at end of file diff --git a/back_end/src/main/java/hackathon/FrisbYEE/jpa/dto/ActiviteDTO.java b/back_end/src/main/java/hackathon/FrisbYEE/jpa/dto/ActiviteDTO.java new file mode 100644 index 0000000..82fd737 --- /dev/null +++ b/back_end/src/main/java/hackathon/FrisbYEE/jpa/dto/ActiviteDTO.java @@ -0,0 +1,52 @@ +package hackathon.FrisbYEE.jpa.dto; + +import java.util.List; + +public class ActiviteDTO { + private String name; + private String theme; + private Long duree; // optional, can be null + private List dataActivite; + private Integer sessionId; + + // Getters and Setters + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getTheme() { + return theme; + } + + public void setTheme(String theme) { + this.theme = theme; + } + + public Long getDuree() { + return duree; + } + + public void setDuree(Long duree) { + this.duree = duree; + } + + public List getDataActivite() { + return dataActivite; + } + + public void setDataActivite(List dataActivite) { + this.dataActivite = dataActivite; + } + + public Integer getSessionId() { + return sessionId; + } + + public void setSessionId(Integer sessionId) { + this.sessionId = sessionId; + } +} \ No newline at end of file diff --git a/back_end/src/main/java/hackathon/FrisbYEE/jpa/dto/AthleteDTO.java b/back_end/src/main/java/hackathon/FrisbYEE/jpa/dto/AthleteDTO.java index 3e8421a..997da42 100644 --- a/back_end/src/main/java/hackathon/FrisbYEE/jpa/dto/AthleteDTO.java +++ b/back_end/src/main/java/hackathon/FrisbYEE/jpa/dto/AthleteDTO.java @@ -2,7 +2,7 @@ package hackathon.FrisbYEE.jpa.dto; import java.util.List; -public class AthleteDTO implements java.io.Serializable { +public class AthleteDTO { private String nom; private String niveau; diff --git a/back_end/src/main/java/hackathon/FrisbYEE/rest/ActiviteResource.java b/back_end/src/main/java/hackathon/FrisbYEE/rest/ActiviteResource.java new file mode 100644 index 0000000..6a02fc9 --- /dev/null +++ b/back_end/src/main/java/hackathon/FrisbYEE/rest/ActiviteResource.java @@ -0,0 +1,61 @@ +package hackathon.FrisbYEE.rest; + +import hackathon.FrisbYEE.jpa.dto.ActiviteDTO; +import hackathon.FrisbYEE.jpa.metier.Activite; +import hackathon.FrisbYEE.jpa.metier.Session; +import hackathon.FrisbYEE.jpa.service.ActiviteDAO; +import hackathon.FrisbYEE.jpa.service.SessionDAO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; + +@Controller +@RequestMapping("/activite") + +public class ActiviteResource { + @Autowired + private ActiviteDAO activiteDAO; + + @Autowired + private SessionDAO sessionDAO; + + /* + POST /activite/create + DELETE /activite/delete/{id} + + */ + + @PostMapping("/create") + @ResponseBody + @PreAuthorize("hasRole('Coach')") + public String create(@RequestBody ActiviteDTO dto) { + + try { + Session session = sessionDAO.findById(dto.getSessionId()).get(); + Activite activite = new Activite(); + activite.setName(dto.getName()); + activite.setTheme(dto.getTheme()); + activite.setDuree(dto.getDuree() != null ? dto.getDuree() : 0L); + activite.setDataActivite(dto.getDataActivite()); + activite.setSession(session); + activiteDAO.save(activite); + } catch (Exception ex) { + return ex.toString(); + } + return "ok"; + } + + @DeleteMapping("/delete/{id}") + @ResponseBody + @PreAuthorize("hasRole('Coach')") + public String delete(@PathVariable("id") int id) { + try { + Activite activite = activiteDAO.findById(id).get(); + activiteDAO.delete(activite); + } catch (Exception ex) { + return ex.toString(); + } + return "ok"; + } +} diff --git a/back_end/src/main/java/hackathon/FrisbYEE/rest/ActiviteResources.java b/back_end/src/main/java/hackathon/FrisbYEE/rest/ActiviteResources.java deleted file mode 100644 index 405ed1c..0000000 --- a/back_end/src/main/java/hackathon/FrisbYEE/rest/ActiviteResources.java +++ /dev/null @@ -1,5 +0,0 @@ -package hackathon.FrisbYEE.rest; - -public class ActiviteResources { - -} diff --git a/back_end/src/main/java/hackathon/FrisbYEE/jpa/web/ActiviteController.java b/back_end/src/main/java/hackathon/FrisbYEE/rest/SessionResource.java similarity index 67% rename from back_end/src/main/java/hackathon/FrisbYEE/jpa/web/ActiviteController.java rename to back_end/src/main/java/hackathon/FrisbYEE/rest/SessionResource.java index 5882e4f..e9733ed 100644 --- a/back_end/src/main/java/hackathon/FrisbYEE/jpa/web/ActiviteController.java +++ b/back_end/src/main/java/hackathon/FrisbYEE/rest/SessionResource.java @@ -1,34 +1,28 @@ -package hackathon.FrisbYEE.jpa.web; - +package hackathon.FrisbYEE.rest; import hackathon.FrisbYEE.jpa.metier.Activite; +import hackathon.FrisbYEE.jpa.metier.Session; import hackathon.FrisbYEE.jpa.service.ActiviteDAO; +import hackathon.FrisbYEE.jpa.service.SessionDAO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; @Controller -@RequestMapping("/activite") +@RequestMapping("/session") -public class ActiviteController { +public class SessionResource { @Autowired - private ActiviteDAO activiteDAO; - - /* - POST /activite/create - DELETE /activite/delete/{id} - - */ + private SessionDAO sessionDAO; @PostMapping("/create") @ResponseBody @PreAuthorize("hasRole('Coach')") public String create(@PathVariable("id") int id) { - String activiteID = ""; - String activiteNom = ""; + String sessionID = ""; try { - Activite activite = new Activite(); + Session session = new Session(); } catch (Exception ex) { return ex.toString(); @@ -41,8 +35,8 @@ public class ActiviteController { @PreAuthorize("hasRole('Coach')") public String delete(@PathVariable("id") int id) { try { - Activite activite = activiteDAO.findById(id).get(); - activiteDAO.delete(activite); + Session session = sessionDAO.findById(id).get(); + sessionDAO.delete(session); } catch (Exception ex) { return ex.toString(); }