From 2f7db9162881fb86c2f775e81f764261de35ce5a Mon Sep 17 00:00:00 2001 From: clemcle81500 Date: Fri, 11 Apr 2025 16:25:57 +0200 Subject: [PATCH 01/13] Ce que tu veux --- FencerJudgeBack/build.gradle.kts | 1 + .../fencerjudgeback/entities/MatchBean.kt | 18 ++++++++++++++++++ .../fencerjudgeback/entities/PlayerBean.kt | 14 ++++++++++++++ .../fencerjudgeback/entities/RefereeBean.kt | 13 +++++++++++++ .../repositories/MatchRepository.kt | 9 +++++++++ .../repositories/PlayerRepository.kt | 7 +++++++ .../restControllers/MatchRestController.kt | 7 +++++++ .../fencerjudgeback/services/MatchService.kt | 17 +++++++++++++++++ .../fencerjudgeback/services/PlayerService.kt | 11 +++++++++++ 9 files changed, 97 insertions(+) create mode 100644 FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/entities/MatchBean.kt create mode 100644 FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/entities/PlayerBean.kt create mode 100644 FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/entities/RefereeBean.kt create mode 100644 FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/repositories/MatchRepository.kt create mode 100644 FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/repositories/PlayerRepository.kt create mode 100644 FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/restControllers/MatchRestController.kt create mode 100644 FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/services/MatchService.kt create mode 100644 FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/services/PlayerService.kt diff --git a/FencerJudgeBack/build.gradle.kts b/FencerJudgeBack/build.gradle.kts index 729b120..1f21aeb 100644 --- a/FencerJudgeBack/build.gradle.kts +++ b/FencerJudgeBack/build.gradle.kts @@ -22,6 +22,7 @@ dependencies { implementation("org.springframework.boot:spring-boot-starter-web") implementation("com.fasterxml.jackson.module:jackson-module-kotlin") implementation("org.jetbrains.kotlin:kotlin-reflect") + implementation("org.springframework.boot:spring-boot-starter-data-jpa") developmentOnly("org.springframework.boot:spring-boot-devtools") testImplementation("org.springframework.boot:spring-boot-starter-test") testImplementation("org.jetbrains.kotlin:kotlin-test-junit5") diff --git a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/entities/MatchBean.kt b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/entities/MatchBean.kt new file mode 100644 index 0000000..a7b4e9b --- /dev/null +++ b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/entities/MatchBean.kt @@ -0,0 +1,18 @@ +package fr.teamflash.fencerjudgeback.entities + +import jakarta.persistence.Entity +import jakarta.persistence.Id +import jakarta.persistence.Table + +@Entity +@Table(name="match") +data class MatchBean( + @Id + val id:Long?=null, + val player1:PlayerBean?=null, + val player2:PlayerBean?=null, + val referee: RefereeBean?=null, + val score1:Int=0, + val score2:Int=0, + val date:String?=null +) diff --git a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/entities/PlayerBean.kt b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/entities/PlayerBean.kt new file mode 100644 index 0000000..baed789 --- /dev/null +++ b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/entities/PlayerBean.kt @@ -0,0 +1,14 @@ +package fr.teamflash.fencerjudgeback.entities + +import jakarta.persistence.Entity +import jakarta.persistence.Id +import jakarta.persistence.Table + +@Entity +@Table(name="player") +data class PlayerBean( + @Id + val id:Long?=null, + val name:String?="", + val firstName:String?="" +) \ No newline at end of file diff --git a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/entities/RefereeBean.kt b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/entities/RefereeBean.kt new file mode 100644 index 0000000..7e55ed9 --- /dev/null +++ b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/entities/RefereeBean.kt @@ -0,0 +1,13 @@ +package fr.teamflash.fencerjudgeback.entities + +import jakarta.persistence.Entity +import jakarta.persistence.Id +import jakarta.persistence.Table + +@Entity +@Table(name="referee") +data class RefereeBean( + @Id + val id:Long?=null, + val name:Long?=null, +) \ No newline at end of file diff --git a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/repositories/MatchRepository.kt b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/repositories/MatchRepository.kt new file mode 100644 index 0000000..728d059 --- /dev/null +++ b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/repositories/MatchRepository.kt @@ -0,0 +1,9 @@ +package fr.teamflash.fencerjudgeback.repositories + +import fr.teamflash.fencerjudgeback.entities.MatchBean +import org.springframework.data.jpa.repository.JpaRepository +import org.springframework.stereotype.Repository + +@Repository +interface MatchRepository: JpaRepository { +} \ No newline at end of file diff --git a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/repositories/PlayerRepository.kt b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/repositories/PlayerRepository.kt new file mode 100644 index 0000000..5a2a2a0 --- /dev/null +++ b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/repositories/PlayerRepository.kt @@ -0,0 +1,7 @@ +package fr.teamflash.fencerjudgeback.repositories + +import fr.teamflash.fencerjudgeback.entities.PlayerBean +import org.springframework.data.jpa.repository.JpaRepository + +interface PlayerRepository: JpaRepository { +} \ No newline at end of file diff --git a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/restControllers/MatchRestController.kt b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/restControllers/MatchRestController.kt new file mode 100644 index 0000000..1123f8d --- /dev/null +++ b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/restControllers/MatchRestController.kt @@ -0,0 +1,7 @@ +package fr.teamflash.fencerjudgeback.restControllers + +import org.springframework.web.bind.annotation.RestController + +@RestController +class MatchRestController { +} \ No newline at end of file diff --git a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/services/MatchService.kt b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/services/MatchService.kt new file mode 100644 index 0000000..688db67 --- /dev/null +++ b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/services/MatchService.kt @@ -0,0 +1,17 @@ +package fr.teamflash.fencerjudgeback.services + +import fr.teamflash.fencerjudgeback.entities.MatchBean +import fr.teamflash.fencerjudgeback.entities.PlayerBean +import fr.teamflash.fencerjudgeback.repositories.MatchRepository +import org.springframework.stereotype.Service + +@Service +class MatchService(matchRepository: MatchRepository) { + + fun getMatchById(id:Long){} + fun getMatchByPlayer(playerBean: PlayerBean) {} + fun getMatchs(){} + fun createMatch(match: MatchBean){} + fun updateMatchScore(score1:Int, score2:Int){} + fun delMatch(match:MatchBean){} +} \ No newline at end of file diff --git a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/services/PlayerService.kt b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/services/PlayerService.kt new file mode 100644 index 0000000..5a0c1ce --- /dev/null +++ b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/services/PlayerService.kt @@ -0,0 +1,11 @@ +package fr.teamflash.fencerjudgeback.services + +import fr.teamflash.fencerjudgeback.entities.PlayerBean +import org.springframework.stereotype.Service + +@Service +class PlayerService { + fun getPlayerById(id:Long){} + fun getPlayers(){} + fun getPlayerByName(name:String){} +} \ No newline at end of file From a4e188bff8ca058bceb79822dc4b5dfcdba81dad Mon Sep 17 00:00:00 2001 From: pedro Date: Wed, 21 May 2025 22:49:58 +0200 Subject: [PATCH 02/13] plan d'action pour le dev --- FencerJudgeBack/README.md | 75 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 FencerJudgeBack/README.md diff --git a/FencerJudgeBack/README.md b/FencerJudgeBack/README.md new file mode 100644 index 0000000..905e02b --- /dev/null +++ b/FencerJudgeBack/README.md @@ -0,0 +1,75 @@ +## Entités +MATCHS -> MatchBean, MatchRepository +MatchBean: + - id:Long + - player1:PlayerBean + - player2:PlayerBean + - referee:RefereeBean + - score1:Int (score du player1) + - score2:Int (score du player2) + - date:String (date du match) + - state:String (état du match : terminé, en cours, pas commencé) + +REFEREES (arbitres) -> RefereeBean, RefereeRepository +RefereeBean: + - id:Long + - name:Long + +PLAYERS -> PlayerBean, PlayerRepository +PlayerBean: + - id:Long + - name:String (nom) + - firstName:String (prénom) + +## Services +MatchService: + -> + +RefereeService: +PlayerService: + +## RestControllers +MatchRestController: + -> Lister tous les matchs + -> Lister tous les matchs à partir d'une certaine date + -> Lister les matchs en cours (état : en cours) + -> Lister les matchs terminés (état : terminé) + -> Lister les matchs non commencés (état : non commencé) + + -> Afficher un match par id + -> Mettre à jour le score1 d'un match récupéré par id + -> Mettre à jour le score2 d'un match récupéré par id + + -> Ajouter un match (créer nouveau MatchBean dans MatchRepository) + + -> Supprimer un match (supprimer élément de MatchRepository en récupérant l'id) + +RefereeRestController: + -> Lister tous les arbitres + -> Afficher un arbitre par id + -> Afficher un arbitre par nom + + -> Ajouter un arbitre (créer nouveau RefereeBean dans RefereeRepository) + + -> Supprimer un arbitre (supprimer élément de RefereeRepository en récupérant l'id) + +PlayerRestController: + -> Lister tous les joueurs + -> Afficher un joueur par id + -> Afficher un joueur par nom + + -> Ajouter un joueur (créer nouveau PlayerBean dans PlayerRepository) + + -> Supprimer un joueur (supprimer élément de PlayerRepository en récupérant l'id) + +## Pages +Page des matchs (publique) : + à définir (partie front sur Angular ?) + +Page de connexion à l'administration (publique) : + formulaire : + - nom d'utilisateur + - mot de passe + +Page d'administration (privée) : + à définir (partie front sur Angular ?) \ No newline at end of file From 1bfb3328f28bd018f974b252de9f98b62fc2c88a Mon Sep 17 00:00:00 2001 From: pedro Date: Tue, 27 May 2025 22:20:05 +0200 Subject: [PATCH 03/13] =?UTF-8?q?maj=20plan=20d'action,=20pr=C3=A9voir=20u?= =?UTF-8?q?pdate=20des=20entr=C3=A9es=20dans=20les=20repositories?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FencerJudgeBack/README.md | 55 +++++++++++++++++++++++++++++++++------ 1 file changed, 47 insertions(+), 8 deletions(-) diff --git a/FencerJudgeBack/README.md b/FencerJudgeBack/README.md index 905e02b..efcf604 100644 --- a/FencerJudgeBack/README.md +++ b/FencerJudgeBack/README.md @@ -1,3 +1,6 @@ +## Websocket +-> Ouvrir channel websocket sur port 8500 + ## Entités MATCHS -> MatchBean, MatchRepository MatchBean: @@ -20,14 +23,7 @@ PlayerBean: - id:Long - name:String (nom) - firstName:String (prénom) - -## Services -MatchService: - -> - -RefereeService: -PlayerService: - + ## RestControllers MatchRestController: -> Lister tous les matchs @@ -62,6 +58,49 @@ PlayerRestController: -> Supprimer un joueur (supprimer élément de PlayerRepository en récupérant l'id) + +## Services +MatchService: + -> Obtenir tous les matchs (public) + -> MatchRestController : Lister tous les matchs + -> Obtenir un match par id (public) + -> MatchRestController : Afficher un match par id + -> Ajouter un match (admin) + -> MatchRestController : Ajouter un match (créer nouveau MatchBean dans MatchRepository) + -> Modifier un match (admin) + -> PAS ENCORE PREVU + -> Supprimer un match (admin) + -> MatchRestController : Supprimer un match (supprimer élément de MatchRepository en récupérant l'id) + +RefereeService: + -> Obtenir tous les arbitres (public) + -> RefereeRestController : Lister tous les arbitres + -> Obtenir un arbitre par id (public) + -> RefereeRestController : Afficher un arbitre par id + -> Obtenir un arbitre par nom (public) + -> RefereeRestController : Afficher un arbitre par nom + -> Ajouter un arbitre (admin) + -> RefereeRestController : Ajouter un arbitre (créer nouveau RefereeBean dans RefereeRepository) + -> Modifier un arbitre (admin) + -> PAS ENCORE PREVU + -> Supprimer un arbitre (admin) + -> RefereeRestController : Supprimer un arbitre (supprimer élément de RefereeRepository en récupérant l'id) + +PlayerService: + -> Obtenir tous les joueurs (public) + -> PlayerRestController: Lister tous les joueurs + -> Obtenir un joueur par id (public) + -> PlayerRestController: Afficher un joueur par id + -> Obtenir un joueur par nom (public) + -> PlayerRestController: Afficher un joueur par nom + -> Ajouter un joueur (admin) + -> PlayerRestController: Ajouter un joueur (créer nouveau PlayerBean dans PlayerRepository) + -> Modifier un joueur (admin) + -> PAS ENCORE PREVU + -> Supprimer un joueur (admin) + -> PlayerRestController: Supprimer un joueur (supprimer élément de PlayerRepository en récupérant l'id) + + ## Pages Page des matchs (publique) : à définir (partie front sur Angular ?) From 3e95cde4d016792511feabde07ad4584665b9ec6 Mon Sep 17 00:00:00 2001 From: pedro Date: Fri, 30 May 2025 13:02:42 +0200 Subject: [PATCH 04/13] maj plan d'action, todo restants --- FencerJudgeBack/README.md | 272 ++++++++++++++++++++++++++++---------- 1 file changed, 199 insertions(+), 73 deletions(-) diff --git a/FencerJudgeBack/README.md b/FencerJudgeBack/README.md index efcf604..3af72fa 100644 --- a/FencerJudgeBack/README.md +++ b/FencerJudgeBack/README.md @@ -1,5 +1,5 @@ ## Websocket --> Ouvrir channel websocket sur port 8500 +// Ouvrir channel websocket sur port 8500 ## Entités MATCHS -> MatchBean, MatchRepository @@ -24,82 +24,208 @@ PlayerBean: - name:String (nom) - firstName:String (prénom) -## RestControllers -MatchRestController: - -> Lister tous les matchs - -> Lister tous les matchs à partir d'une certaine date - -> Lister les matchs en cours (état : en cours) - -> Lister les matchs terminés (état : terminé) - -> Lister les matchs non commencés (état : non commencé) - - -> Afficher un match par id - -> Mettre à jour le score1 d'un match récupéré par id - -> Mettre à jour le score2 d'un match récupéré par id - - -> Ajouter un match (créer nouveau MatchBean dans MatchRepository) - - -> Supprimer un match (supprimer élément de MatchRepository en récupérant l'id) - -RefereeRestController: - -> Lister tous les arbitres - -> Afficher un arbitre par id - -> Afficher un arbitre par nom - - -> Ajouter un arbitre (créer nouveau RefereeBean dans RefereeRepository) - - -> Supprimer un arbitre (supprimer élément de RefereeRepository en récupérant l'id) - -PlayerRestController: - -> Lister tous les joueurs - -> Afficher un joueur par id - -> Afficher un joueur par nom - - -> Ajouter un joueur (créer nouveau PlayerBean dans PlayerRepository) - - -> Supprimer un joueur (supprimer élément de PlayerRepository en récupérant l'id) - - ## Services -MatchService: - -> Obtenir tous les matchs (public) - -> MatchRestController : Lister tous les matchs - -> Obtenir un match par id (public) - -> MatchRestController : Afficher un match par id - -> Ajouter un match (admin) - -> MatchRestController : Ajouter un match (créer nouveau MatchBean dans MatchRepository) - -> Modifier un match (admin) - -> PAS ENCORE PREVU - -> Supprimer un match (admin) - -> MatchRestController : Supprimer un match (supprimer élément de MatchRepository en récupérant l'id) +MatchService --> TODO: + // Obtenir tous les matchs (public) --> DONE + function getAll() -> array : + return MatchRepository.getAll() + + // Obtenir un match par id (public) --> DONE + function get(var long id) -> MatchBean : + return MatchRepository.findById(id) + + // Ajouter un match (admin) --> DONE + function add(var MatchBean newMatch) -> integer (success or failure) : + try: + MatchRepository.add(newMatch) + catch error: + return FAILED + + return SUCCESS + + + // Modifier un match (admin) --> TODO + function update(var long id, ...) -> integer (success or failure) : + try: + MatchRepository. + catch error: + return FAILED + + return SUCCESS + + // Supprimer un match (admin) --> DONE + function delete(var long id) -> integer (success or failure) : + try: + MatchRepository.deleteById(id) + catch error: + return FAILED + + return SUCCESS -RefereeService: - -> Obtenir tous les arbitres (public) - -> RefereeRestController : Lister tous les arbitres - -> Obtenir un arbitre par id (public) - -> RefereeRestController : Afficher un arbitre par id - -> Obtenir un arbitre par nom (public) - -> RefereeRestController : Afficher un arbitre par nom - -> Ajouter un arbitre (admin) - -> RefereeRestController : Ajouter un arbitre (créer nouveau RefereeBean dans RefereeRepository) - -> Modifier un arbitre (admin) - -> PAS ENCORE PREVU - -> Supprimer un arbitre (admin) - -> RefereeRestController : Supprimer un arbitre (supprimer élément de RefereeRepository en récupérant l'id) +RefereeService --> TODO: + // Obtenir tous les arbitres (public) --> DONE + function getAll() -> array : + return RefereeRepository.getAll() + + // Obtenir un arbitre par id (public) --> DONE + function get(var long id) -> RefereeBean : + return RefereeRepository.findById(id) + + // Obtenir un arbitre par nom (public) --> DONE + function get(var string name) -> RefereeBean : + return RefereeRepository.findByName(name) + + // Ajouter un arbitre (admin) --> DONE + function add(var RefereeBean newReferee) -> integer (success or failure) : + try: + RefereeRepository.add(newReferee) + catch error: + return FAILED + + return SUCCESS + + // Modifier un arbitre (admin) --> TODO + function update(var long id, ...) -> integer (success or failure) : + try: + RefereeRepository. + catch error: + return FAILED + + return SUCCESS + + // Supprimer un arbitre (admin) --> DONE + function delete(var long id) -> integer (success or failure) : + try: + RefereeRepository.deleteById(id) + catch error: + return FAILED + + return SUCCESS -PlayerService: - -> Obtenir tous les joueurs (public) - -> PlayerRestController: Lister tous les joueurs - -> Obtenir un joueur par id (public) - -> PlayerRestController: Afficher un joueur par id - -> Obtenir un joueur par nom (public) - -> PlayerRestController: Afficher un joueur par nom - -> Ajouter un joueur (admin) - -> PlayerRestController: Ajouter un joueur (créer nouveau PlayerBean dans PlayerRepository) - -> Modifier un joueur (admin) - -> PAS ENCORE PREVU - -> Supprimer un joueur (admin) - -> PlayerRestController: Supprimer un joueur (supprimer élément de PlayerRepository en récupérant l'id) +PlayerService --> TODO: + // Obtenir tous les joueurs (public) --> DONE + function getAll() -> array : + return PlayerRepository.getAll() + + // Obtenir un joueur par id (public) --> DONE + function get(var long id) -> PlayerBean : + return PlayerRepository.findById(id) + + // Obtenir un joueur par nom (public) --> DONE + function get(var string name) -> PlayerBean : + return PlayerRepository.findByName(name) + + // Ajouter un joueur (admin) --> DONE + function add(var PlayerBean newPlayer) -> integer (success or failure) : + try: + PlayerRepository.add(newPlayer) + catch error: + return FAILED + + return SUCCESS + + // Modifier un joueur (admin) --> TODO + function update(var long id, ...) -> integer (success or failure) : + try: + PlayerRepository. + catch error: + return FAILED + + return SUCCESS + // Supprimer un joueur (admin) --> DONE + function delete(var long id) -> integer (success or failure) : + try: + PlayerRepository.deleteById(id) + catch error: + return FAILED + + return SUCCESS + +## RestControllers +MatchRestController --> TODO: + // Lister tous les matchs --> DONE + function getAll() -> array : + return MatchService.getAll() + + // Lister tous les matchs à partir d'une certaine date + function getAllFromDate(var Date dateToFilter) -> array : + return MatchService.getAll().filter(date == dateToFilter) + + // Lister les matchs en cours (état : en cours) + function getAllActive() -> array : + return MatchService.getAll().filter(state == "ONGOING") + + // Lister les matchs terminés (état : terminé) + function getAllOver() -> array : + return MatchService.getAll().filter(state == "FINISHED") + + // Lister les matchs non commencés (état : non commencé) + function getAllNotStarted() -> array : + // MatchService : + return MatchService.getAll().filter(state == "NOT STARTED") + + // Afficher un match par id + function get(var long id) -> MatchBean : + return MatchService.get(id) + + // Mettre à jour le score1 d'un match récupéré par id --> TODO + function updateScore1Of(var long id, var integer newScore) -> integer (success or failure) : + return MatchService.update( + + // Mettre à jour le score2 d'un match récupéré par id --> TODO + function updateScore2Of(var long id, var integer newScore) -> integer (success or failure) : + return MatchService.update( + + // Ajouter un match (créer nouveau MatchBean dans MatchRepository) + function add(var MatchBean newMatch) -> integer (success or failure): + return MatchService.add(newMatch) + + // Supprimer un match (supprimer élément de MatchRepository en récupérant l'id) + function deleteById(var long id) -> integer (success or failure) : + return MatchService.deleteById(id) + +RefereeRestController --> DONE: + // Lister tous les arbitres + function getAll() -> array : + return RefereeService.getAll() + + // Afficher un arbitre par id + function get(var long id) -> RefereeBean : + return RefereeService.get(id) + + // Afficher un arbitre par nom + function get(var string name) -> RefereeBean: + return RefereeService.get(name) + + // Ajouter un arbitre (créer nouveau RefereeBean dans RefereeRepository) + function add(var RefereeBean newReferee) -> integer (success or failure) : + return RefereeService.add(newReferee) + + // Supprimer un arbitre (supprimer élément de RefereeRepository en récupérant l'id) + function deleteById(var long id) -> integer (success or failure) : + return RefereeService.deleteById(id) + +PlayerRestController --> DONE: + // Lister tous les joueurs + function getAll() -> array : + return PlayerService.getAll() + + // Afficher un joueur par id + function get(var long id) -> PlayerBean : + return PlayerService.get(id) + + // Afficher un joueur par nom + function get(var string name) -> PlayerBean : + return PlayerService.get(name) + + // Ajouter un joueur (créer nouveau PlayerBean dans PlayerRepository) + function add(var PlayerBean newPlayer) -> integer (success or failure) : + return PlayerService.add(newPlayer) + + // Supprimer un joueur (supprimer élément de PlayerRepository en récupérant l'id) + function deleteById(var long id) -> integer (success or failure) : + return PlayerService.deleteById(id) ## Pages Page des matchs (publique) : From a248cdabdcfab4bc0f4003b69f173884ac91c0f8 Mon Sep 17 00:00:00 2001 From: pedro Date: Fri, 30 May 2025 19:18:55 +0200 Subject: [PATCH 05/13] commit avant ajout messages dans websocket pour les restcontrollers --- FencerJudgeBack/README.md | 106 ++++++++++++++++++++------------------ 1 file changed, 55 insertions(+), 51 deletions(-) diff --git a/FencerJudgeBack/README.md b/FencerJudgeBack/README.md index 3af72fa..4113eaa 100644 --- a/FencerJudgeBack/README.md +++ b/FencerJudgeBack/README.md @@ -1,5 +1,8 @@ ## Websocket -// Ouvrir channel websocket sur port 8500 +// Ouvrir channel websocket sur port 8500 --> DONE +function startWebsocket(var integer port) -> Websocket: + var Websocket websocket = start Websocket at port [port] + return websocket ## Entités MATCHS -> MatchBean, MatchRepository @@ -16,7 +19,8 @@ MatchBean: REFEREES (arbitres) -> RefereeBean, RefereeRepository RefereeBean: - id:Long - - name:Long + - name:Long (nom) + - firstName:String (prénom) PLAYERS -> PlayerBean, PlayerRepository PlayerBean: @@ -25,7 +29,7 @@ PlayerBean: - firstName:String (prénom) ## Services -MatchService --> TODO: +MatchService --> DONE: // Obtenir tous les matchs (public) --> DONE function getAll() -> array : return MatchRepository.getAll() @@ -35,23 +39,23 @@ MatchService --> TODO: return MatchRepository.findById(id) // Ajouter un match (admin) --> DONE - function add(var MatchBean newMatch) -> integer (success or failure) : - try: - MatchRepository.add(newMatch) - catch error: - return FAILED + function add(var MatchBean newMatch) -> MatchBean : + MatchRepository.add(newMatch) + return newMatch + + // Modifier un match (admin) --> DONE + function update(var long id, var PlayerBean player1, var PlayerBean player2, var RefereeBean referee, var integer score1, var integer score2, var Date date, var string state) -> MatchBean: + // Créer nouveau MatchBean + var MatchBean newMatch = new MatchBean(id, player1, player2, referee, score1, score2, date, state) - return SUCCESS - - - // Modifier un match (admin) --> TODO - function update(var long id, ...) -> integer (success or failure) : - try: - MatchRepository. - catch error: - return FAILED - - return SUCCESS + // Supprimer le MatchBean à l'id en paramètre + deleteById(id) + + // Insérer le nouveau MatchBean à l'id en paramètre + MatchRepository.add(newMatch) + + return newMatch + // Supprimer un match (admin) --> DONE function delete(var long id) -> integer (success or failure) : @@ -62,7 +66,7 @@ MatchService --> TODO: return SUCCESS -RefereeService --> TODO: +RefereeService --> DONE: // Obtenir tous les arbitres (public) --> DONE function getAll() -> array : return RefereeRepository.getAll() @@ -76,22 +80,22 @@ RefereeService --> TODO: return RefereeRepository.findByName(name) // Ajouter un arbitre (admin) --> DONE - function add(var RefereeBean newReferee) -> integer (success or failure) : - try: - RefereeRepository.add(newReferee) - catch error: - return FAILED - - return SUCCESS + function add(var RefereeBean newReferee) -> RefereeBean: + RefereeRepository.add(newReferee) + return newReferee - // Modifier un arbitre (admin) --> TODO - function update(var long id, ...) -> integer (success or failure) : - try: - RefereeRepository. - catch error: - return FAILED - - return SUCCESS + // Modifier un arbitre (admin) --> DONE + function update(var long id, var string name, var string firstName) -> RefereeBean: + // Créer nouveau RefereeBean + var RefereeBean newReferee = new RefereeBean(id, name, firstName) + + // Supprimer le RefereeBean à l'id en paramètre + deleteById(id) + + // Insérer le nouveau RefereeBean à l'id en paramètre + RefereeRepository.add(newReferee) + + return newReferee // Supprimer un arbitre (admin) --> DONE function delete(var long id) -> integer (success or failure) : @@ -102,7 +106,7 @@ RefereeService --> TODO: return SUCCESS -PlayerService --> TODO: +PlayerService --> DONE: // Obtenir tous les joueurs (public) --> DONE function getAll() -> array : return PlayerRepository.getAll() @@ -116,22 +120,22 @@ PlayerService --> TODO: return PlayerRepository.findByName(name) // Ajouter un joueur (admin) --> DONE - function add(var PlayerBean newPlayer) -> integer (success or failure) : - try: - PlayerRepository.add(newPlayer) - catch error: - return FAILED - - return SUCCESS + function add(var PlayerBean newPlayer) -> PlayerBean: + PlayerRepository.add(newPlayer) + return newPlayer - // Modifier un joueur (admin) --> TODO - function update(var long id, ...) -> integer (success or failure) : - try: - PlayerRepository. - catch error: - return FAILED - - return SUCCESS + // Modifier un joueur (admin) --> DONE + function update(var long id, var string name, var string firstName) -> PlayerBean : + // Créer nouveau PlayerBean + var PlayerBean newPlayer = new PlayerBean(id, name, firstName) + + // Supprimer le PlayerBean à l'id en paramètre + deleteById(id) + + // Insérer le nouveau PlayerBean à l'id en paramètre + PlayerRepository.add(newPlayer) + + return newPlayer // Supprimer un joueur (admin) --> DONE function delete(var long id) -> integer (success or failure) : From d797c43480244ea8e472d39b9ae62da27c7f5891 Mon Sep 17 00:00:00 2001 From: pedro Date: Fri, 30 May 2025 19:44:50 +0200 Subject: [PATCH 06/13] =?UTF-8?q?maj=20README,=20fichier=20conception=20av?= =?UTF-8?q?ec=20pseudo-code=20(=C3=A0=20finir)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FencerJudgeBack/README.md | 283 ++++++--------------------------- FencerJudgeBack/conception.txt | 244 ++++++++++++++++++++++++++++ 2 files changed, 290 insertions(+), 237 deletions(-) create mode 100644 FencerJudgeBack/conception.txt diff --git a/FencerJudgeBack/README.md b/FencerJudgeBack/README.md index 4113eaa..0eaa707 100644 --- a/FencerJudgeBack/README.md +++ b/FencerJudgeBack/README.md @@ -1,244 +1,53 @@ -## Websocket -// Ouvrir channel websocket sur port 8500 --> DONE -function startWebsocket(var integer port) -> Websocket: - var Websocket websocket = start Websocket at port [port] - return websocket +# Entités +## MATCHS +- id +- player1 +- player2 +- referee (arbitre) +- score1 (score du joueur 1) +- score2 (score du joueur 2) +- date +- state (état du match : en cours, terminé, pas commencé) -## Entités -MATCHS -> MatchBean, MatchRepository -MatchBean: - - id:Long - - player1:PlayerBean - - player2:PlayerBean - - referee:RefereeBean - - score1:Int (score du player1) - - score2:Int (score du player2) - - date:String (date du match) - - state:String (état du match : terminé, en cours, pas commencé) +## ETATS D'UN MATCH +- ONGOING +- OVER +- NOT_STARTED -REFEREES (arbitres) -> RefereeBean, RefereeRepository -RefereeBean: - - id:Long - - name:Long (nom) - - firstName:String (prénom) +## ARBITRES +- id +- name (nom de famille) +- firstName (prénom) -PLAYERS -> PlayerBean, PlayerRepository -PlayerBean: - - id:Long - - name:String (nom) - - firstName:String (prénom) - -## Services -MatchService --> DONE: - // Obtenir tous les matchs (public) --> DONE - function getAll() -> array : - return MatchRepository.getAll() - - // Obtenir un match par id (public) --> DONE - function get(var long id) -> MatchBean : - return MatchRepository.findById(id) - - // Ajouter un match (admin) --> DONE - function add(var MatchBean newMatch) -> MatchBean : - MatchRepository.add(newMatch) - return newMatch - - // Modifier un match (admin) --> DONE - function update(var long id, var PlayerBean player1, var PlayerBean player2, var RefereeBean referee, var integer score1, var integer score2, var Date date, var string state) -> MatchBean: - // Créer nouveau MatchBean - var MatchBean newMatch = new MatchBean(id, player1, player2, referee, score1, score2, date, state) - - // Supprimer le MatchBean à l'id en paramètre - deleteById(id) - - // Insérer le nouveau MatchBean à l'id en paramètre - MatchRepository.add(newMatch) - - return newMatch +## JOUEURS +- id +- name (nom de famille) +- firstName (prénom) - - // Supprimer un match (admin) --> DONE - function delete(var long id) -> integer (success or failure) : - try: - MatchRepository.deleteById(id) - catch error: - return FAILED - - return SUCCESS +# Actions REST sur les entités +## MATCHS (MatchRestController) +- Lister tous les matchs -> MatchRestController.**getAll()** +- Lister tous les matchs à partir d'une certaine date -> MatchRestController.**getAllFromDate(Date date)** +- Lister les matchs en cours (état : en cours) -> MatchRestController.**getAllActive()** +- Lister les matchs terminés (état : terminé) -> MatchRestController.**getAllOver()** +- Lister les matchs non commencés (état : non commencé) -> MatchRestController.**getAllNotStarted()** +- Afficher un match par id -> MatchRestController.**get(Long matchID)** +- Mettre à jour le score1 d'un match récupéré par id -> MatchRestController.**updateScore1Of(Long matchID, String newScore1)** +- Mettre à jour le score2 d'un match récupéré par id -> MatchRestController.**updateScore2Of(Long matchID, String newScore2)** +- Ajouter un match -> MatchRestController.**add(Date date, Long refereeID, Long player1ID, Long player2ID)** +- Supprimer un match (supprimer élément de MatchRepository en récupérant l'id) -> MatchRestController.**delete(Long matchID)** -RefereeService --> DONE: - // Obtenir tous les arbitres (public) --> DONE - function getAll() -> array : - return RefereeRepository.getAll() - - // Obtenir un arbitre par id (public) --> DONE - function get(var long id) -> RefereeBean : - return RefereeRepository.findById(id) - - // Obtenir un arbitre par nom (public) --> DONE - function get(var string name) -> RefereeBean : - return RefereeRepository.findByName(name) - - // Ajouter un arbitre (admin) --> DONE - function add(var RefereeBean newReferee) -> RefereeBean: - RefereeRepository.add(newReferee) - return newReferee - - // Modifier un arbitre (admin) --> DONE - function update(var long id, var string name, var string firstName) -> RefereeBean: - // Créer nouveau RefereeBean - var RefereeBean newReferee = new RefereeBean(id, name, firstName) - - // Supprimer le RefereeBean à l'id en paramètre - deleteById(id) - - // Insérer le nouveau RefereeBean à l'id en paramètre - RefereeRepository.add(newReferee) - - return newReferee - - // Supprimer un arbitre (admin) --> DONE - function delete(var long id) -> integer (success or failure) : - try: - RefereeRepository.deleteById(id) - catch error: - return FAILED - - return SUCCESS +## ARBITRES (RefereeRestController) : +- Lister tous les arbitres -> RefereeRestController.**getAll()** +- Afficher un arbitre par id -> RefereeRestController.**get(Long refereeID)** +- Afficher un arbitre par nom -> RefereeRestController.**get(String refereeName)** +- Ajouter un arbitre -> RefereeRestController.**add(String name, String firstName)** +- Supprimer un arbitre -> RefereeRestController.**delete(Long refereeID)** -PlayerService --> DONE: - // Obtenir tous les joueurs (public) --> DONE - function getAll() -> array : - return PlayerRepository.getAll() - - // Obtenir un joueur par id (public) --> DONE - function get(var long id) -> PlayerBean : - return PlayerRepository.findById(id) - - // Obtenir un joueur par nom (public) --> DONE - function get(var string name) -> PlayerBean : - return PlayerRepository.findByName(name) - - // Ajouter un joueur (admin) --> DONE - function add(var PlayerBean newPlayer) -> PlayerBean: - PlayerRepository.add(newPlayer) - return newPlayer - - // Modifier un joueur (admin) --> DONE - function update(var long id, var string name, var string firstName) -> PlayerBean : - // Créer nouveau PlayerBean - var PlayerBean newPlayer = new PlayerBean(id, name, firstName) - - // Supprimer le PlayerBean à l'id en paramètre - deleteById(id) - - // Insérer le nouveau PlayerBean à l'id en paramètre - PlayerRepository.add(newPlayer) - - return newPlayer +## JOUEURS (PlayerRestController) : +- Lister tous les joueurs -> PlayerRestController.**getAll()** +- Afficher un joueur par id -> PlayerRestController.**get(Long playerID)** +- Afficher un joueur par nom -> PlayerRestController.**get(String playerName)** +- Ajouter un joueur -> PlayerRestController.**add(String name, String firstName) +- Supprimer un joueur -> PlayerRestController.**delete(String name, String firstName) - // Supprimer un joueur (admin) --> DONE - function delete(var long id) -> integer (success or failure) : - try: - PlayerRepository.deleteById(id) - catch error: - return FAILED - - return SUCCESS - -## RestControllers -MatchRestController --> TODO: - // Lister tous les matchs --> DONE - function getAll() -> array : - return MatchService.getAll() - - // Lister tous les matchs à partir d'une certaine date - function getAllFromDate(var Date dateToFilter) -> array : - return MatchService.getAll().filter(date == dateToFilter) - - // Lister les matchs en cours (état : en cours) - function getAllActive() -> array : - return MatchService.getAll().filter(state == "ONGOING") - - // Lister les matchs terminés (état : terminé) - function getAllOver() -> array : - return MatchService.getAll().filter(state == "FINISHED") - - // Lister les matchs non commencés (état : non commencé) - function getAllNotStarted() -> array : - // MatchService : - return MatchService.getAll().filter(state == "NOT STARTED") - - // Afficher un match par id - function get(var long id) -> MatchBean : - return MatchService.get(id) - - // Mettre à jour le score1 d'un match récupéré par id --> TODO - function updateScore1Of(var long id, var integer newScore) -> integer (success or failure) : - return MatchService.update( - - // Mettre à jour le score2 d'un match récupéré par id --> TODO - function updateScore2Of(var long id, var integer newScore) -> integer (success or failure) : - return MatchService.update( - - // Ajouter un match (créer nouveau MatchBean dans MatchRepository) - function add(var MatchBean newMatch) -> integer (success or failure): - return MatchService.add(newMatch) - - // Supprimer un match (supprimer élément de MatchRepository en récupérant l'id) - function deleteById(var long id) -> integer (success or failure) : - return MatchService.deleteById(id) - -RefereeRestController --> DONE: - // Lister tous les arbitres - function getAll() -> array : - return RefereeService.getAll() - - // Afficher un arbitre par id - function get(var long id) -> RefereeBean : - return RefereeService.get(id) - - // Afficher un arbitre par nom - function get(var string name) -> RefereeBean: - return RefereeService.get(name) - - // Ajouter un arbitre (créer nouveau RefereeBean dans RefereeRepository) - function add(var RefereeBean newReferee) -> integer (success or failure) : - return RefereeService.add(newReferee) - - // Supprimer un arbitre (supprimer élément de RefereeRepository en récupérant l'id) - function deleteById(var long id) -> integer (success or failure) : - return RefereeService.deleteById(id) - -PlayerRestController --> DONE: - // Lister tous les joueurs - function getAll() -> array : - return PlayerService.getAll() - - // Afficher un joueur par id - function get(var long id) -> PlayerBean : - return PlayerService.get(id) - - // Afficher un joueur par nom - function get(var string name) -> PlayerBean : - return PlayerService.get(name) - - // Ajouter un joueur (créer nouveau PlayerBean dans PlayerRepository) - function add(var PlayerBean newPlayer) -> integer (success or failure) : - return PlayerService.add(newPlayer) - - // Supprimer un joueur (supprimer élément de PlayerRepository en récupérant l'id) - function deleteById(var long id) -> integer (success or failure) : - return PlayerService.deleteById(id) - -## Pages -Page des matchs (publique) : - à définir (partie front sur Angular ?) - -Page de connexion à l'administration (publique) : - formulaire : - - nom d'utilisateur - - mot de passe - -Page d'administration (privée) : - à définir (partie front sur Angular ?) \ No newline at end of file diff --git a/FencerJudgeBack/conception.txt b/FencerJudgeBack/conception.txt new file mode 100644 index 0000000..4113eaa --- /dev/null +++ b/FencerJudgeBack/conception.txt @@ -0,0 +1,244 @@ +## Websocket +// Ouvrir channel websocket sur port 8500 --> DONE +function startWebsocket(var integer port) -> Websocket: + var Websocket websocket = start Websocket at port [port] + return websocket + +## Entités +MATCHS -> MatchBean, MatchRepository +MatchBean: + - id:Long + - player1:PlayerBean + - player2:PlayerBean + - referee:RefereeBean + - score1:Int (score du player1) + - score2:Int (score du player2) + - date:String (date du match) + - state:String (état du match : terminé, en cours, pas commencé) + +REFEREES (arbitres) -> RefereeBean, RefereeRepository +RefereeBean: + - id:Long + - name:Long (nom) + - firstName:String (prénom) + +PLAYERS -> PlayerBean, PlayerRepository +PlayerBean: + - id:Long + - name:String (nom) + - firstName:String (prénom) + +## Services +MatchService --> DONE: + // Obtenir tous les matchs (public) --> DONE + function getAll() -> array : + return MatchRepository.getAll() + + // Obtenir un match par id (public) --> DONE + function get(var long id) -> MatchBean : + return MatchRepository.findById(id) + + // Ajouter un match (admin) --> DONE + function add(var MatchBean newMatch) -> MatchBean : + MatchRepository.add(newMatch) + return newMatch + + // Modifier un match (admin) --> DONE + function update(var long id, var PlayerBean player1, var PlayerBean player2, var RefereeBean referee, var integer score1, var integer score2, var Date date, var string state) -> MatchBean: + // Créer nouveau MatchBean + var MatchBean newMatch = new MatchBean(id, player1, player2, referee, score1, score2, date, state) + + // Supprimer le MatchBean à l'id en paramètre + deleteById(id) + + // Insérer le nouveau MatchBean à l'id en paramètre + MatchRepository.add(newMatch) + + return newMatch + + + // Supprimer un match (admin) --> DONE + function delete(var long id) -> integer (success or failure) : + try: + MatchRepository.deleteById(id) + catch error: + return FAILED + + return SUCCESS + +RefereeService --> DONE: + // Obtenir tous les arbitres (public) --> DONE + function getAll() -> array : + return RefereeRepository.getAll() + + // Obtenir un arbitre par id (public) --> DONE + function get(var long id) -> RefereeBean : + return RefereeRepository.findById(id) + + // Obtenir un arbitre par nom (public) --> DONE + function get(var string name) -> RefereeBean : + return RefereeRepository.findByName(name) + + // Ajouter un arbitre (admin) --> DONE + function add(var RefereeBean newReferee) -> RefereeBean: + RefereeRepository.add(newReferee) + return newReferee + + // Modifier un arbitre (admin) --> DONE + function update(var long id, var string name, var string firstName) -> RefereeBean: + // Créer nouveau RefereeBean + var RefereeBean newReferee = new RefereeBean(id, name, firstName) + + // Supprimer le RefereeBean à l'id en paramètre + deleteById(id) + + // Insérer le nouveau RefereeBean à l'id en paramètre + RefereeRepository.add(newReferee) + + return newReferee + + // Supprimer un arbitre (admin) --> DONE + function delete(var long id) -> integer (success or failure) : + try: + RefereeRepository.deleteById(id) + catch error: + return FAILED + + return SUCCESS + +PlayerService --> DONE: + // Obtenir tous les joueurs (public) --> DONE + function getAll() -> array : + return PlayerRepository.getAll() + + // Obtenir un joueur par id (public) --> DONE + function get(var long id) -> PlayerBean : + return PlayerRepository.findById(id) + + // Obtenir un joueur par nom (public) --> DONE + function get(var string name) -> PlayerBean : + return PlayerRepository.findByName(name) + + // Ajouter un joueur (admin) --> DONE + function add(var PlayerBean newPlayer) -> PlayerBean: + PlayerRepository.add(newPlayer) + return newPlayer + + // Modifier un joueur (admin) --> DONE + function update(var long id, var string name, var string firstName) -> PlayerBean : + // Créer nouveau PlayerBean + var PlayerBean newPlayer = new PlayerBean(id, name, firstName) + + // Supprimer le PlayerBean à l'id en paramètre + deleteById(id) + + // Insérer le nouveau PlayerBean à l'id en paramètre + PlayerRepository.add(newPlayer) + + return newPlayer + + // Supprimer un joueur (admin) --> DONE + function delete(var long id) -> integer (success or failure) : + try: + PlayerRepository.deleteById(id) + catch error: + return FAILED + + return SUCCESS + +## RestControllers +MatchRestController --> TODO: + // Lister tous les matchs --> DONE + function getAll() -> array : + return MatchService.getAll() + + // Lister tous les matchs à partir d'une certaine date + function getAllFromDate(var Date dateToFilter) -> array : + return MatchService.getAll().filter(date == dateToFilter) + + // Lister les matchs en cours (état : en cours) + function getAllActive() -> array : + return MatchService.getAll().filter(state == "ONGOING") + + // Lister les matchs terminés (état : terminé) + function getAllOver() -> array : + return MatchService.getAll().filter(state == "FINISHED") + + // Lister les matchs non commencés (état : non commencé) + function getAllNotStarted() -> array : + // MatchService : + return MatchService.getAll().filter(state == "NOT STARTED") + + // Afficher un match par id + function get(var long id) -> MatchBean : + return MatchService.get(id) + + // Mettre à jour le score1 d'un match récupéré par id --> TODO + function updateScore1Of(var long id, var integer newScore) -> integer (success or failure) : + return MatchService.update( + + // Mettre à jour le score2 d'un match récupéré par id --> TODO + function updateScore2Of(var long id, var integer newScore) -> integer (success or failure) : + return MatchService.update( + + // Ajouter un match (créer nouveau MatchBean dans MatchRepository) + function add(var MatchBean newMatch) -> integer (success or failure): + return MatchService.add(newMatch) + + // Supprimer un match (supprimer élément de MatchRepository en récupérant l'id) + function deleteById(var long id) -> integer (success or failure) : + return MatchService.deleteById(id) + +RefereeRestController --> DONE: + // Lister tous les arbitres + function getAll() -> array : + return RefereeService.getAll() + + // Afficher un arbitre par id + function get(var long id) -> RefereeBean : + return RefereeService.get(id) + + // Afficher un arbitre par nom + function get(var string name) -> RefereeBean: + return RefereeService.get(name) + + // Ajouter un arbitre (créer nouveau RefereeBean dans RefereeRepository) + function add(var RefereeBean newReferee) -> integer (success or failure) : + return RefereeService.add(newReferee) + + // Supprimer un arbitre (supprimer élément de RefereeRepository en récupérant l'id) + function deleteById(var long id) -> integer (success or failure) : + return RefereeService.deleteById(id) + +PlayerRestController --> DONE: + // Lister tous les joueurs + function getAll() -> array : + return PlayerService.getAll() + + // Afficher un joueur par id + function get(var long id) -> PlayerBean : + return PlayerService.get(id) + + // Afficher un joueur par nom + function get(var string name) -> PlayerBean : + return PlayerService.get(name) + + // Ajouter un joueur (créer nouveau PlayerBean dans PlayerRepository) + function add(var PlayerBean newPlayer) -> integer (success or failure) : + return PlayerService.add(newPlayer) + + // Supprimer un joueur (supprimer élément de PlayerRepository en récupérant l'id) + function deleteById(var long id) -> integer (success or failure) : + return PlayerService.deleteById(id) + +## Pages +Page des matchs (publique) : + à définir (partie front sur Angular ?) + +Page de connexion à l'administration (publique) : + formulaire : + - nom d'utilisateur + - mot de passe + +Page d'administration (privée) : + à définir (partie front sur Angular ?) \ No newline at end of file From ed879ed8c27e6f84b57b911fb85304504d03a10f Mon Sep 17 00:00:00 2001 From: pedro Date: Fri, 30 May 2025 19:46:29 +0200 Subject: [PATCH 07/13] maj affichage README --- FencerJudgeBack/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/FencerJudgeBack/README.md b/FencerJudgeBack/README.md index 0eaa707..f056d1a 100644 --- a/FencerJudgeBack/README.md +++ b/FencerJudgeBack/README.md @@ -12,7 +12,7 @@ ## ETATS D'UN MATCH - ONGOING - OVER -- NOT_STARTED +- NOT STARTED ## ARBITRES - id @@ -48,6 +48,6 @@ - Lister tous les joueurs -> PlayerRestController.**getAll()** - Afficher un joueur par id -> PlayerRestController.**get(Long playerID)** - Afficher un joueur par nom -> PlayerRestController.**get(String playerName)** -- Ajouter un joueur -> PlayerRestController.**add(String name, String firstName) +- Ajouter un joueur -> PlayerRestController.**add(String name, String firstName)** - Supprimer un joueur -> PlayerRestController.**delete(String name, String firstName) From 33f8be706c37122823b9275d951f4f789cb9df48 Mon Sep 17 00:00:00 2001 From: pedro Date: Fri, 30 May 2025 19:47:27 +0200 Subject: [PATCH 08/13] re-maj affichage README --- FencerJudgeBack/README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/FencerJudgeBack/README.md b/FencerJudgeBack/README.md index f056d1a..2924780 100644 --- a/FencerJudgeBack/README.md +++ b/FencerJudgeBack/README.md @@ -49,5 +49,4 @@ - Afficher un joueur par id -> PlayerRestController.**get(Long playerID)** - Afficher un joueur par nom -> PlayerRestController.**get(String playerName)** - Ajouter un joueur -> PlayerRestController.**add(String name, String firstName)** -- Supprimer un joueur -> PlayerRestController.**delete(String name, String firstName) - +- Supprimer un joueur -> PlayerRestController.**delete(String name, String firstName)** From 7d26b9372ca68956e31abe93692aecf1c323b28b Mon Sep 17 00:00:00 2001 From: pedro Date: Sat, 31 May 2025 01:16:40 +0200 Subject: [PATCH 09/13] =?UTF-8?q?ajout=20premi=C3=A8res=20fonctions=20aux?= =?UTF-8?q?=20services?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/misc.xml | 4 ++ .idea/modules.xml | 1 - FencerJudgeBack/README.md | 6 +-- FencerJudgeBack/build.gradle.kts | 7 ++++ .../fencerjudgeback/entities/MatchBean.kt | 8 ++-- .../fencerjudgeback/entities/RefereeBean.kt | 5 ++- .../repositories/PlayerRepository.kt | 2 + .../repositories/RefereeRepository.kt | 10 +++++ .../restControllers/MatchRestController.kt | 1 + .../restControllers/PlayerRestController.kt | 7 ++++ .../restControllers/RefereeRestController.kt | 8 ++++ .../fencerjudgeback/services/MatchService.kt | 37 +++++++++++++---- .../fencerjudgeback/services/PlayerService.kt | 33 +++++++++++++-- .../services/RefereeService.kt | 40 +++++++++++++++++++ 14 files changed, 148 insertions(+), 21 deletions(-) create mode 100644 FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/repositories/RefereeRepository.kt create mode 100644 FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/restControllers/PlayerRestController.kt create mode 100644 FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/restControllers/RefereeRestController.kt create mode 100644 FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/services/RefereeService.kt diff --git a/.idea/misc.xml b/.idea/misc.xml index 639900d..a7e1300 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,5 +1,9 @@ + + + + diff --git a/.idea/modules.xml b/.idea/modules.xml index 2db4f39..6ad2b6b 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -2,7 +2,6 @@ - diff --git a/FencerJudgeBack/README.md b/FencerJudgeBack/README.md index 2924780..ad94450 100644 --- a/FencerJudgeBack/README.md +++ b/FencerJudgeBack/README.md @@ -25,7 +25,7 @@ - firstName (prénom) # Actions REST sur les entités -## MATCHS (MatchRestController) +## MATCHS (MatchRestController, "/matchs") - Lister tous les matchs -> MatchRestController.**getAll()** - Lister tous les matchs à partir d'une certaine date -> MatchRestController.**getAllFromDate(Date date)** - Lister les matchs en cours (état : en cours) -> MatchRestController.**getAllActive()** @@ -37,14 +37,14 @@ - Ajouter un match -> MatchRestController.**add(Date date, Long refereeID, Long player1ID, Long player2ID)** - Supprimer un match (supprimer élément de MatchRepository en récupérant l'id) -> MatchRestController.**delete(Long matchID)** -## ARBITRES (RefereeRestController) : +## ARBITRES (RefereeRestController, "/referees") : - Lister tous les arbitres -> RefereeRestController.**getAll()** - Afficher un arbitre par id -> RefereeRestController.**get(Long refereeID)** - Afficher un arbitre par nom -> RefereeRestController.**get(String refereeName)** - Ajouter un arbitre -> RefereeRestController.**add(String name, String firstName)** - Supprimer un arbitre -> RefereeRestController.**delete(Long refereeID)** -## JOUEURS (PlayerRestController) : +## JOUEURS (PlayerRestController, "/players") : - Lister tous les joueurs -> PlayerRestController.**getAll()** - Afficher un joueur par id -> PlayerRestController.**get(Long playerID)** - Afficher un joueur par nom -> PlayerRestController.**get(String playerName)** diff --git a/FencerJudgeBack/build.gradle.kts b/FencerJudgeBack/build.gradle.kts index 1f21aeb..4962b18 100644 --- a/FencerJudgeBack/build.gradle.kts +++ b/FencerJudgeBack/build.gradle.kts @@ -27,6 +27,13 @@ dependencies { testImplementation("org.springframework.boot:spring-boot-starter-test") testImplementation("org.jetbrains.kotlin:kotlin-test-junit5") testRuntimeOnly("org.junit.platform:junit-platform-launcher") + + // WEBSOCKET + implementation("org.springframework.boot:spring-boot-starter-websocket") + + // SECURITY + implementation("org.springframework.boot:spring-boot-starter-security") + } kotlin { diff --git a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/entities/MatchBean.kt b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/entities/MatchBean.kt index a7b4e9b..4ebfee5 100644 --- a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/entities/MatchBean.kt +++ b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/entities/MatchBean.kt @@ -5,13 +5,13 @@ import jakarta.persistence.Id import jakarta.persistence.Table @Entity -@Table(name="match") +@Table(name="matchs") data class MatchBean( @Id val id:Long?=null, - val player1:PlayerBean?=null, - val player2:PlayerBean?=null, - val referee: RefereeBean?=null, + val player1ID:Long?=null, + val player2ID:Long?=null, + val refereeID: Long?=null, val score1:Int=0, val score2:Int=0, val date:String?=null diff --git a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/entities/RefereeBean.kt b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/entities/RefereeBean.kt index 7e55ed9..ad94881 100644 --- a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/entities/RefereeBean.kt +++ b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/entities/RefereeBean.kt @@ -5,9 +5,10 @@ import jakarta.persistence.Id import jakarta.persistence.Table @Entity -@Table(name="referee") +@Table(name="referees") data class RefereeBean( @Id val id:Long?=null, - val name:Long?=null, + val name:String?=null, + val firstName:String?=null ) \ No newline at end of file diff --git a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/repositories/PlayerRepository.kt b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/repositories/PlayerRepository.kt index 5a2a2a0..ee1eefe 100644 --- a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/repositories/PlayerRepository.kt +++ b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/repositories/PlayerRepository.kt @@ -2,6 +2,8 @@ package fr.teamflash.fencerjudgeback.repositories import fr.teamflash.fencerjudgeback.entities.PlayerBean import org.springframework.data.jpa.repository.JpaRepository +import org.springframework.stereotype.Repository +@Repository interface PlayerRepository: JpaRepository { } \ No newline at end of file diff --git a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/repositories/RefereeRepository.kt b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/repositories/RefereeRepository.kt new file mode 100644 index 0000000..102c985 --- /dev/null +++ b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/repositories/RefereeRepository.kt @@ -0,0 +1,10 @@ +package fr.teamflash.fencerjudgeback.repositories + +import fr.teamflash.fencerjudgeback.entities.RefereeBean +import org.springframework.data.jpa.repository.JpaRepository +import org.springframework.stereotype.Repository + +@Repository +interface RefereeRepository : JpaRepository { + +} \ No newline at end of file diff --git a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/restControllers/MatchRestController.kt b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/restControllers/MatchRestController.kt index 1123f8d..89b6779 100644 --- a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/restControllers/MatchRestController.kt +++ b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/restControllers/MatchRestController.kt @@ -4,4 +4,5 @@ import org.springframework.web.bind.annotation.RestController @RestController class MatchRestController { + } \ No newline at end of file diff --git a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/restControllers/PlayerRestController.kt b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/restControllers/PlayerRestController.kt new file mode 100644 index 0000000..b6ea5c9 --- /dev/null +++ b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/restControllers/PlayerRestController.kt @@ -0,0 +1,7 @@ +package fr.teamflash.fencerjudgeback.restControllers + +import org.springframework.web.bind.annotation.RestController + +@RestController +class PlayerRestController { +} \ No newline at end of file diff --git a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/restControllers/RefereeRestController.kt b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/restControllers/RefereeRestController.kt new file mode 100644 index 0000000..99c20b9 --- /dev/null +++ b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/restControllers/RefereeRestController.kt @@ -0,0 +1,8 @@ +package fr.teamflash.fencerjudgeback.restControllers + +import org.springframework.web.bind.annotation.RestController + +@RestController +class RefereeRestController { + +} \ No newline at end of file diff --git a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/services/MatchService.kt b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/services/MatchService.kt index 688db67..3dd1adc 100644 --- a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/services/MatchService.kt +++ b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/services/MatchService.kt @@ -6,12 +6,35 @@ import fr.teamflash.fencerjudgeback.repositories.MatchRepository import org.springframework.stereotype.Service @Service -class MatchService(matchRepository: MatchRepository) { +class MatchService(private val matchRepository: MatchRepository) { - fun getMatchById(id:Long){} - fun getMatchByPlayer(playerBean: PlayerBean) {} - fun getMatchs(){} - fun createMatch(match: MatchBean){} - fun updateMatchScore(score1:Int, score2:Int){} - fun delMatch(match:MatchBean){} + fun getMatchById(id:Long): MatchBean { + println("MatchService.getMatchById : $id") + return matchRepository.findById(id).get() + } + fun getMatchByPlayer(playerBean: PlayerBean): List { + println("MatchService.getMatchByPlayer : $playerBean") + return matchRepository.findAll().filter { it.player1ID == playerBean.id || it.player2ID == playerBean.id } + } + fun getMatchs() : List { + println("MatchService.getMatchs") + return matchRepository.findAll() + } + fun createMatch(match: MatchBean) : MatchBean { + println("MatchService.createMatch : $match") + matchRepository.save(match) + return match + } + fun updateMatch(match: MatchBean) { + println("MatchService.updateMatch : $match") + matchRepository.save(match) + } + fun updateMatchScore(score1:Int, score2:Int) : MatchBean { + println("MatchService.updateMatchScore : $score1 - $score2") + return matchRepository.findAll().first() + } + fun delMatch(match:MatchBean){ + println("MatchService.delMatch : $match") + matchRepository.delete(match) + } } \ No newline at end of file diff --git a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/services/PlayerService.kt b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/services/PlayerService.kt index 5a0c1ce..6415ddb 100644 --- a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/services/PlayerService.kt +++ b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/services/PlayerService.kt @@ -1,11 +1,36 @@ package fr.teamflash.fencerjudgeback.services import fr.teamflash.fencerjudgeback.entities.PlayerBean +import fr.teamflash.fencerjudgeback.repositories.PlayerRepository import org.springframework.stereotype.Service +import java.util.Optional @Service -class PlayerService { - fun getPlayerById(id:Long){} - fun getPlayers(){} - fun getPlayerByName(name:String){} +class PlayerService(private val playerRepository: PlayerRepository) { + fun getPlayerById(id:Long): Optional { + println("PlayerService.getPlayerById : $id") + return playerRepository.findById(id) + } + fun getPlayers(): List { + println("PlayerService.getPlayers") + return playerRepository.findAll() + } + fun getPlayerByName(name:String) : List { + println("PlayerService.getPlayerByName : $name") + return playerRepository.findAll() + } + fun createPlayer(player: PlayerBean): PlayerBean { + println("PlayerService.createPlayer : $player") + playerRepository.save(player) + return player + } + fun updatePlayer(player: PlayerBean) : PlayerBean{ + println("PlayerService.updatePlayer : $player") + playerRepository.save(player) + return player + } + fun delPlayer(player: PlayerBean) { + println("PlayerService.delPlayer : $player") + playerRepository.delete(player) + } } \ No newline at end of file diff --git a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/services/RefereeService.kt b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/services/RefereeService.kt new file mode 100644 index 0000000..5851b3c --- /dev/null +++ b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/services/RefereeService.kt @@ -0,0 +1,40 @@ +package fr.teamflash.fencerjudgeback.services + +import fr.teamflash.fencerjudgeback.entities.RefereeBean +import fr.teamflash.fencerjudgeback.repositories.RefereeRepository +import org.springframework.stereotype.Service +import java.util.Optional + +@Service +class RefereeService(private val refereeRepository: RefereeRepository) { + fun getRefereeById(id:Long) : Optional { + println("RefereeService.getRefereeById : $id") + return refereeRepository.findById(id) + } + fun getReferees(): List { + println("RefereeService.getReferees") + return refereeRepository.findAll() + } + fun getRefereeByName(name:String): RefereeBean { + println("RefereeService.getRefereeByName : $name") + return refereeRepository.findAll().first { it.name == name } + } + fun createReferee(referee: RefereeBean) : RefereeBean { + println("RefereeService.createReferee : $referee") + refereeRepository.save(referee) + return referee + } + fun updateRefereePassword(referee: RefereeBean) { + println("RefereeService.updateRefereePassword : $referee") + refereeRepository.save(referee) + } + fun updateReferee(referee: RefereeBean) : RefereeBean { + println("RefereeService.updateReferee : $referee") + refereeRepository.save(referee) + return referee + } + fun delReferee(referee: RefereeBean){ + println("RefereeService.delReferee : $referee") + refereeRepository.delete(referee) + } +} \ No newline at end of file From 5bf89dd68418eed382b873066b64ce72778f13fc Mon Sep 17 00:00:00 2001 From: pedro Date: Sat, 31 May 2025 01:17:53 +0200 Subject: [PATCH 10/13] modif nom table players --- .../kotlin/fr/teamflash/fencerjudgeback/entities/PlayerBean.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/entities/PlayerBean.kt b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/entities/PlayerBean.kt index baed789..6486e6b 100644 --- a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/entities/PlayerBean.kt +++ b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/entities/PlayerBean.kt @@ -5,7 +5,7 @@ import jakarta.persistence.Id import jakarta.persistence.Table @Entity -@Table(name="player") +@Table(name="players") data class PlayerBean( @Id val id:Long?=null, From 7224ba7d6f184b60b9f0915e136a806c2d506e94 Mon Sep 17 00:00:00 2001 From: pedro Date: Sun, 1 Jun 2025 22:52:58 +0200 Subject: [PATCH 11/13] maj des services --- FencerJudgeBack/README.md | 115 +++++++++++++++++++++------------ FencerJudgeBack/TODO.txt | 4 ++ FencerJudgeBack/conception.txt | 67 +++++++++++++------ 3 files changed, 123 insertions(+), 63 deletions(-) create mode 100644 FencerJudgeBack/TODO.txt diff --git a/FencerJudgeBack/README.md b/FencerJudgeBack/README.md index ad94450..b1fb3c6 100644 --- a/FencerJudgeBack/README.md +++ b/FencerJudgeBack/README.md @@ -1,52 +1,83 @@ # Entités -## MATCHS -- id -- player1 -- player2 -- referee (arbitre) -- score1 (score du joueur 1) -- score2 (score du joueur 2) -- date -- state (état du match : en cours, terminé, pas commencé) +## MATCHES (MatchBean) +- id -> Long +- player1ID -> Long +- player2ID -> Long +- refereeID (arbitre) -> Long +- score1 (score du joueur 1) -> Integer +- score2 (score du joueur 2) -> Integer +- date -> Date +- state (état du match : en cours, terminé, pas commencé) -> Integer (ENUM) -## ETATS D'UN MATCH -- ONGOING -- OVER -- NOT STARTED +## ETATS D'UN MATCH (MatchesStates) +- ONGOING -> Integer (1) +- OVER -> Integer (2) +- NOT STARTED -> Integer (3) -## ARBITRES -- id -- name (nom de famille) -- firstName (prénom) +## ARBITRES (RefereeBean) +- id -> Long +- name (nom de famille) -> String +- firstName (prénom) -> String -## JOUEURS -- id -- name (nom de famille) -- firstName (prénom) +## JOUEURS (PlayerBean) +- id -> Long +- name (nom de famille) -> String +- firstName (prénom) -> String # Actions REST sur les entités -## MATCHS (MatchRestController, "/matchs") -- Lister tous les matchs -> MatchRestController.**getAll()** -- Lister tous les matchs à partir d'une certaine date -> MatchRestController.**getAllFromDate(Date date)** -- Lister les matchs en cours (état : en cours) -> MatchRestController.**getAllActive()** -- Lister les matchs terminés (état : terminé) -> MatchRestController.**getAllOver()** -- Lister les matchs non commencés (état : non commencé) -> MatchRestController.**getAllNotStarted()** -- Afficher un match par id -> MatchRestController.**get(Long matchID)** -- Mettre à jour le score1 d'un match récupéré par id -> MatchRestController.**updateScore1Of(Long matchID, String newScore1)** -- Mettre à jour le score2 d'un match récupéré par id -> MatchRestController.**updateScore2Of(Long matchID, String newScore2)** -- Ajouter un match -> MatchRestController.**add(Date date, Long refereeID, Long player1ID, Long player2ID)** -- Supprimer un match (supprimer élément de MatchRepository en récupérant l'id) -> MatchRestController.**delete(Long matchID)** +## matches (MatchRestController, "/matches") +- Lister tous les matches -> **GET "/matches/"** -> List +- Lister tous les matches à partir d'une certaine date -> **GET "/matches/date=&date"** -> List +- Lister les matches en cours (état : en cours) -> **GET "/matches/active"** -> List +- Lister les matches terminés (état : terminé) -> **GET "/matches/over"** -> List +- Lister les matches non commencés (état : non commencé) -> **GET "/matches/not-started"** -> List +- Afficher un match par id -> **GET "/matches/id=&id"** -> MatchBean +- Mettre à jour les score d'un match récupéré par id -> **POST "/matches/update-match"** +{ + id=$id, + score1=$score1, + score2=$score2 +} +-> MatchBean +- Ajouter un match -> **POST "/matches/add-match"** +{ + date=$date, + refereeID=$refereeID, + player1ID=$player1ID, + player2ID=$player2ID +} +-> MatchBean +- Supprimer un match (supprimer élément de MatchRepository en récupérant l'id) -> **POST "/matches/delete-match"** +{ + id=$id +} ## ARBITRES (RefereeRestController, "/referees") : -- Lister tous les arbitres -> RefereeRestController.**getAll()** -- Afficher un arbitre par id -> RefereeRestController.**get(Long refereeID)** -- Afficher un arbitre par nom -> RefereeRestController.**get(String refereeName)** -- Ajouter un arbitre -> RefereeRestController.**add(String name, String firstName)** -- Supprimer un arbitre -> RefereeRestController.**delete(Long refereeID)** +- Lister tous les arbitres -> **GET "/referees/"** -> List +- Afficher un arbitre par id -> **GET "/referees/id=$id"** -> RefereeBean +- Afficher un arbitre par nom ->**GET "/referees/name=$name"** -> RefereeBean +- Ajouter un arbitre ->**POST "/referees/add-referee"** +{ + name=$name, + firstName=$firstName +} +-> RefereeBean +- Supprimer un arbitre ->**POST "/referees/delete-referee/"** +{ + id=$id +} ## JOUEURS (PlayerRestController, "/players") : -- Lister tous les joueurs -> PlayerRestController.**getAll()** -- Afficher un joueur par id -> PlayerRestController.**get(Long playerID)** -- Afficher un joueur par nom -> PlayerRestController.**get(String playerName)** -- Ajouter un joueur -> PlayerRestController.**add(String name, String firstName)** -- Supprimer un joueur -> PlayerRestController.**delete(String name, String firstName)** +- Lister tous les joueurs ->**GET "/players/"** -> List +- Afficher un joueur par id ->**GET "/players/id=$id"** -> PlayerBean +- Afficher un joueur par nom ->**GET "/players/name=$name"** -> PlayerBean +- Ajouter un joueur ->**POST "/players/add-player"** +{ + name=$name, + firstName=$firstName +} +-> PlayerBean +- Supprimer un joueur ->**POST "/players/delete-player"** +{ + id=$id +} diff --git a/FencerJudgeBack/TODO.txt b/FencerJudgeBack/TODO.txt new file mode 100644 index 0000000..d5b5baa --- /dev/null +++ b/FencerJudgeBack/TODO.txt @@ -0,0 +1,4 @@ +corriger les services - ~ +tester les restcontrollers via des requêtes http - ~ +créer la bdd avec toutes les tables (repositories) +tester le websocket \ No newline at end of file diff --git a/FencerJudgeBack/conception.txt b/FencerJudgeBack/conception.txt index 4113eaa..02a822b 100644 --- a/FencerJudgeBack/conception.txt +++ b/FencerJudgeBack/conception.txt @@ -35,30 +35,40 @@ MatchService --> DONE: return MatchRepository.getAll() // Obtenir un match par id (public) --> DONE - function get(var long id) -> MatchBean : + function getById(var long id) -> MatchBean : return MatchRepository.findById(id) + // Obtenir un ou plusieurs match(s) par joueurs (id) (public) --> DONE + function getByPlayers(var long player1ID, var long player2ID) -> array { + return MatchRepository.getAll().filterBy(player1ID or player2ID) + } + // Ajouter un match (admin) --> DONE - function add(var MatchBean newMatch) -> MatchBean : + function createMatch(var MatchBean newMatch) -> MatchBean : MatchRepository.add(newMatch) return newMatch // Modifier un match (admin) --> DONE - function update(var long id, var PlayerBean player1, var PlayerBean player2, var RefereeBean referee, var integer score1, var integer score2, var Date date, var string state) -> MatchBean: - // Créer nouveau MatchBean - var MatchBean newMatch = new MatchBean(id, player1, player2, referee, score1, score2, date, state) + function updateMatch(var long id, var Date date, var long refereeID, var long player1ID, var long player2ID, var integer scorePlayer1, var integer scorePlayer2, var Date date, var string matchState) -> integr (success or not): + // Vérifier si le match existe à l'id renseigné + if MatchRepository.getById(id) doesn't exist { + return FAILED + } + + // Créer nouveau MatchBean à l'id renseigné + var MatchBean newMatch = new MatchBean(id, player1ID, player2ID, refereeID, score1, score2, date, state) // Supprimer le MatchBean à l'id en paramètre - deleteById(id) + MatchRepository.deleteById(id) // Insérer le nouveau MatchBean à l'id en paramètre MatchRepository.add(newMatch) - return newMatch + return SUCCESS // Supprimer un match (admin) --> DONE - function delete(var long id) -> integer (success or failure) : + function deleteMatch(var long id) -> integer (success or failure) : try: MatchRepository.deleteById(id) catch error: @@ -72,30 +82,41 @@ RefereeService --> DONE: return RefereeRepository.getAll() // Obtenir un arbitre par id (public) --> DONE - function get(var long id) -> RefereeBean : + function getById(var long id) -> RefereeBean : return RefereeRepository.findById(id) - // Obtenir un arbitre par nom (public) --> DONE - function get(var string name) -> RefereeBean : - return RefereeRepository.findByName(name) + // Obtenir un ou plusieurs arbitre(s) par nom (public) --> DONE + function getByName(var string name) -> array : + return RefereeRepository.getAll().filterBy(name) + + // Obtenir un ou plusieurs arbitre(s) par prénom (public) + function getByFirstName(var string firstName) -> array : + return RefereeRepository.getAll().filterBy(firstName) // Ajouter un arbitre (admin) --> DONE - function add(var RefereeBean newReferee) -> RefereeBean: + function createReferee(var RefereeBean newReferee) -> RefereeBean: RefereeRepository.add(newReferee) return newReferee // Modifier un arbitre (admin) --> DONE - function update(var long id, var string name, var string firstName) -> RefereeBean: - // Créer nouveau RefereeBean + function updateReferee(var long id, var string name, var string firstName) -> integer (success or not): + + // Vérifier si l'arbitre existe à l'id renseigné + if RefereeRepository.getById(id) doesn't exist { + return FAILED + } + + // Créer nouveau RefereeBean à l'id renseigné var RefereeBean newReferee = new RefereeBean(id, name, firstName) // Supprimer le RefereeBean à l'id en paramètre - deleteById(id) + RefereeRepository.deleteById(id) // Insérer le nouveau RefereeBean à l'id en paramètre RefereeRepository.add(newReferee) - return newReferee + return SUCCESS + // Supprimer un arbitre (admin) --> DONE function delete(var long id) -> integer (success or failure) : @@ -112,12 +133,16 @@ PlayerService --> DONE: return PlayerRepository.getAll() // Obtenir un joueur par id (public) --> DONE - function get(var long id) -> PlayerBean : + function getById(var long id) -> PlayerBean : return PlayerRepository.findById(id) - // Obtenir un joueur par nom (public) --> DONE - function get(var string name) -> PlayerBean : - return PlayerRepository.findByName(name) + // Obtenir un ou plusieurs joueur(s) par nom (public) --> DONE + function getByName(var string name) -> array : + return PlayerRepository.getAll().filterBy(name) + + // Obtenir un ou plusieurs joueur(s) par prénom (public) --> DONE + function getByFirstName(var string firstName) -> array : + return PlayerRepository.getAll().filterBy(firstName) // Ajouter un joueur (admin) --> DONE function add(var PlayerBean newPlayer) -> PlayerBean: From f37b021c7c5f67325298efea10be3c2ed0c4ecfc Mon Sep 17 00:00:00 2001 From: pedro Date: Sun, 1 Jun 2025 22:57:03 +0200 Subject: [PATCH 12/13] code 0.0: entities & services --- .../fencerjudgeback/entities/MatchBean.kt | 5 +- .../fencerjudgeback/entities/PlayerBean.kt | 2 + .../fencerjudgeback/entities/RefereeBean.kt | 2 + .../fencerjudgeback/services/MatchService.kt | 114 ++++++++++++++---- .../fencerjudgeback/services/PlayerService.kt | 77 +++++++++--- .../services/RefereeService.kt | 78 ++++++++---- 6 files changed, 209 insertions(+), 69 deletions(-) diff --git a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/entities/MatchBean.kt b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/entities/MatchBean.kt index 4ebfee5..3955ef5 100644 --- a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/entities/MatchBean.kt +++ b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/entities/MatchBean.kt @@ -3,16 +3,17 @@ package fr.teamflash.fencerjudgeback.entities import jakarta.persistence.Entity import jakarta.persistence.Id import jakarta.persistence.Table +import java.util.Date @Entity @Table(name="matchs") data class MatchBean( @Id - val id:Long?=null, + val id:Long?=null, val player1ID:Long?=null, val player2ID:Long?=null, val refereeID: Long?=null, val score1:Int=0, val score2:Int=0, - val date:String?=null + val date: Date?=null ) diff --git a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/entities/PlayerBean.kt b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/entities/PlayerBean.kt index 6486e6b..f349348 100644 --- a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/entities/PlayerBean.kt +++ b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/entities/PlayerBean.kt @@ -1,6 +1,8 @@ package fr.teamflash.fencerjudgeback.entities import jakarta.persistence.Entity +import jakarta.persistence.GeneratedValue +import jakarta.persistence.GenerationType import jakarta.persistence.Id import jakarta.persistence.Table diff --git a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/entities/RefereeBean.kt b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/entities/RefereeBean.kt index ad94881..5511a69 100644 --- a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/entities/RefereeBean.kt +++ b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/entities/RefereeBean.kt @@ -1,6 +1,8 @@ package fr.teamflash.fencerjudgeback.entities import jakarta.persistence.Entity +import jakarta.persistence.GeneratedValue +import jakarta.persistence.GenerationType import jakarta.persistence.Id import jakarta.persistence.Table diff --git a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/services/MatchService.kt b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/services/MatchService.kt index 3dd1adc..0257fa7 100644 --- a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/services/MatchService.kt +++ b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/services/MatchService.kt @@ -3,38 +3,102 @@ package fr.teamflash.fencerjudgeback.services import fr.teamflash.fencerjudgeback.entities.MatchBean import fr.teamflash.fencerjudgeback.entities.PlayerBean import fr.teamflash.fencerjudgeback.repositories.MatchRepository +import fr.teamflash.fencerjudgeback.websocket.controllers.MatchWebSocketController +import fr.teamflash.fencerjudgeback.websocket.models.MatchUpdateMessage +import org.springframework.beans.factory.annotation.Autowired +import org.springframework.context.annotation.Lazy +import org.springframework.http.ResponseEntity import org.springframework.stereotype.Service +import java.util.Date @Service -class MatchService(private val matchRepository: MatchRepository) { - - fun getMatchById(id:Long): MatchBean { - println("MatchService.getMatchById : $id") - return matchRepository.findById(id).get() - } - fun getMatchByPlayer(playerBean: PlayerBean): List { - println("MatchService.getMatchByPlayer : $playerBean") - return matchRepository.findAll().filter { it.player1ID == playerBean.id || it.player2ID == playerBean.id } - } - fun getMatchs() : List { +class MatchService( + @Autowired private val matchRepository: MatchRepository, + @Lazy private val matchWebSocketController: MatchWebSocketController? = null +) { + // Obtenir tous les matchs (public) + fun getAll() : List { println("MatchService.getMatchs") return matchRepository.findAll() } - fun createMatch(match: MatchBean) : MatchBean { - println("MatchService.createMatch : $match") - matchRepository.save(match) - return match + + // Obtenir un match par id (public) + fun getById(id:Long): MatchBean? { + println("MatchService.getMatchById : $id") + return matchRepository.findById(id).get() } - fun updateMatch(match: MatchBean) { - println("MatchService.updateMatch : $match") - matchRepository.save(match) + + // Obtenir un ou plusieurs match(s) par joueurs (id) (public) + fun getByPlayers(player1ID: Long, player2ID: Long): List { + println("MatchService.getMatchByPlayers : $player1ID - $player2ID") + return matchRepository.findAll().filter { it.player1ID == player1ID && it.player2ID == player2ID } } - fun updateMatchScore(score1:Int, score2:Int) : MatchBean { - println("MatchService.updateMatchScore : $score1 - $score2") - return matchRepository.findAll().first() + + // Ajouter un match (admin) + fun createMatch(newMatch: MatchBean): MatchBean { + println("MatchService.createMatch : $newMatch") + // Broadcast the new match via WebSocket +// matchWebSocketController?.broadcastMatchUpdate(savedMatch, MatchUpdateMessage.UpdateType.MATCH_START) + + return matchRepository.save(newMatch) } - fun delMatch(match:MatchBean){ - println("MatchService.delMatch : $match") - matchRepository.delete(match) + + // Modifier un match (admin) + fun updateMatch(id: Long, date: Date, refereeID: Long, player1ID: Long, player2ID: Long, scorePlayer1:Int, scorePlayer2:Int) : Int { + println("MatchService.updateMatch : $id - $refereeID - $player1ID - $player2ID - $scorePlayer1 - $scorePlayer2") + + if (getById(id) == null) { + println("MatchService.updateMatch : Match not found") + return -1 + } + + // Broadcast the update via WebSocket +// matchWebSocketController?.broadcastMatchUpdate(savedMatch, MatchUpdateMessage.UpdateType.SCORE_UPDATE) + + // Créer nouveau MatchBean à l'id renseigné + val newMatch = MatchBean( + id = id, + date = date, + refereeID = refereeID, + player1ID = player1ID, + player2ID = player2ID, + score1 = scorePlayer1, + score2 = scorePlayer2 + ) + +// if ( +// // Supprimer le MatchBean à l'id en paramètre +// deleteMatch(id) == 1 +// && createMatch(newMatch) == 1) { +// +// // Insérer le nouveau MatchBean à l'id en paramètre +// +// +// return 1 +// } + + // Supprimer le MatchBean à l'id en paramètre + if (deleteMatch(id) == 1) { + // Insérer le nouveau MatchBean à l'id en paramètre + createMatch(newMatch) + } + + return 1 } -} \ No newline at end of file + + // Supprimer un match (admin) + fun deleteMatch(id:Long) : Int { + println("MatchService.deleteMatch : $id") + + try { + matchRepository.deleteById(id) + } catch (e: Exception) { + println("Error deleting match: ${e.message}") + return -1 + } + + // Broadcast the match cancellation via WebSocket before deleting +// matchWebSocketController?.broadcastMatchUpdate(matchID, MatchUpdateMessage.UpdateType.MATCH_CANCEL) + return 1 + } +} diff --git a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/services/PlayerService.kt b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/services/PlayerService.kt index 6415ddb..2d5858a 100644 --- a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/services/PlayerService.kt +++ b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/services/PlayerService.kt @@ -2,35 +2,72 @@ package fr.teamflash.fencerjudgeback.services import fr.teamflash.fencerjudgeback.entities.PlayerBean import fr.teamflash.fencerjudgeback.repositories.PlayerRepository +import org.springframework.beans.factory.annotation.Autowired import org.springframework.stereotype.Service import java.util.Optional @Service -class PlayerService(private val playerRepository: PlayerRepository) { - fun getPlayerById(id:Long): Optional { - println("PlayerService.getPlayerById : $id") +class PlayerService(@Autowired private val playerRepository: PlayerRepository) { + // Obtenir tous les joueurs (public) + fun getAll(): List { + println("RefereeService.getReferees") + return playerRepository.findAll() + } + + // Obtenir un joueur par id (public) + fun getById(id:Long) : Optional { + println("RefereeService.getRefereeById : $id") return playerRepository.findById(id) } - fun getPlayers(): List { - println("PlayerService.getPlayers") - return playerRepository.findAll() + + // Obtenir un ou plusieurs joueur(s) par nom (public) + fun getByName(name:String): List? { + println("RefereeService.getRefereeByName : $name") + return playerRepository.findAll().filter{ it.name == name } } - fun getPlayerByName(name:String) : List { - println("PlayerService.getPlayerByName : $name") - return playerRepository.findAll() + + // Obtenir un ou plusieurs joueur(s) par prénom + fun getByFirstName(firstName:String): List? { + println("RefereeService.getRefereeByFirstName : $firstName") + return playerRepository.findAll().filter{ it.firstName == firstName } } - fun createPlayer(player: PlayerBean): PlayerBean { - println("PlayerService.createPlayer : $player") - playerRepository.save(player) - return player + + // Ajouter un joueur (admin) + fun createPlayer(referee: PlayerBean) : PlayerBean { + println("RefereeService.createReferee : $referee") + return playerRepository.save(referee) } - fun updatePlayer(player: PlayerBean) : PlayerBean{ - println("PlayerService.updatePlayer : $player") - playerRepository.save(player) - return player + + // Modifier un joueur (admin) + fun updatePlayer(id:Long, name:String, firstName: String) : Int { + // Vérifier si le joueur existe à l'id renseigné + if (getById(id) == null) { + println("RefereeService.updateReferee : Referee not found") + return -1 + } + + // Créer nouveau PlayerBean à l'id renseigné + val newPlayer = PlayerBean(id, name, firstName) + + // Supprimer le PlayerBean à l'id en paramètre + deletePlayer(id) + + // Insérer le nouveau PlayerBean + createPlayer(newPlayer) + + return 1 } - fun delPlayer(player: PlayerBean) { - println("PlayerService.delPlayer : $player") - playerRepository.delete(player) + + // Supprimer un joueur (admin) + fun deletePlayer(id:Long): Int { + println("RefereeService.deleteReferee : $id") + + if (getById(id) == null) { + println("RefereeService.deleteReferee : Referee not found") + return -1 + } + + playerRepository.deleteById(id) + return 1 } } \ No newline at end of file diff --git a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/services/RefereeService.kt b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/services/RefereeService.kt index 5851b3c..8d169ad 100644 --- a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/services/RefereeService.kt +++ b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/services/RefereeService.kt @@ -2,39 +2,73 @@ package fr.teamflash.fencerjudgeback.services import fr.teamflash.fencerjudgeback.entities.RefereeBean import fr.teamflash.fencerjudgeback.repositories.RefereeRepository +import org.springframework.beans.factory.annotation.Autowired +import org.springframework.data.jpa.domain.AbstractPersistable_.id import org.springframework.stereotype.Service import java.util.Optional @Service -class RefereeService(private val refereeRepository: RefereeRepository) { - fun getRefereeById(id:Long) : Optional { - println("RefereeService.getRefereeById : $id") - return refereeRepository.findById(id) - } - fun getReferees(): List { +class RefereeService(@Autowired private val refereeRepository: RefereeRepository) { + // Obtenir tous les arbitres (public) + fun getAll(): List { println("RefereeService.getReferees") return refereeRepository.findAll() } - fun getRefereeByName(name:String): RefereeBean { - println("RefereeService.getRefereeByName : $name") - return refereeRepository.findAll().first { it.name == name } + + // Obtenir un arbitre par id (public) + fun getById(id:Long) : Optional { + println("RefereeService.getRefereeById : $id") + return refereeRepository.findById(id) } + + // Obtenir un ou plusieurs arbitre(s) par nom (public) + fun getByName(name:String): List? { + println("RefereeService.getRefereeByName : $name") + return refereeRepository.findAll().filter{ it.name == name } + } + + // Obtenir un ou plusieurs arbitre(s) par prénom + fun getByFirstName(firstName:String): List? { + println("RefereeService.getRefereeByFirstName : $firstName") + return refereeRepository.findAll().filter{ it.firstName == firstName } + } + + // Ajouter un arbitre (admin) fun createReferee(referee: RefereeBean) : RefereeBean { println("RefereeService.createReferee : $referee") - refereeRepository.save(referee) - return referee + return refereeRepository.save(referee) } - fun updateRefereePassword(referee: RefereeBean) { - println("RefereeService.updateRefereePassword : $referee") - refereeRepository.save(referee) + + // Modifier un arbitre (admin) + fun updateReferee(id:Long, name:String, firstName: String) : Int { + // Vérifier si l'arbitre existe à l'id renseigné + if (getById(id) == null) { + println("RefereeService.updateReferee : Referee not found") + return -1 + } + + // Créer nouveau RefereeBean à l'id renseigné + val newReferee = RefereeBean(id, name, firstName) + + // Supprimer le RefereeBean à l'id en paramètre + deleteReferee(id) + + // Insérer le nouveau RefereeBean à l'id en paramètre + createReferee(newReferee) + + return 1 } - fun updateReferee(referee: RefereeBean) : RefereeBean { - println("RefereeService.updateReferee : $referee") - refereeRepository.save(referee) - return referee - } - fun delReferee(referee: RefereeBean){ - println("RefereeService.delReferee : $referee") - refereeRepository.delete(referee) + + // Supprimer un arbitre (admin) + fun deleteReferee(id:Long): Int { + println("RefereeService.deleteReferee : $id") + + if (getById(id) == null) { + println("RefereeService.deleteReferee : Referee not found") + return -1 + } + + refereeRepository.deleteById(id) + return 1 } } \ No newline at end of file From cf9c196053152fbdb97ab7f99537417527c7a264 Mon Sep 17 00:00:00 2001 From: pedro Date: Mon, 2 Jun 2025 08:53:13 +0200 Subject: [PATCH 13/13] =?UTF-8?q?restcontrollers=20=C3=A0=20faire?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../restControllers/MatchRestController.kt | 65 ++++++++++++++++++- .../restControllers/PlayerRestController.kt | 56 +++++++++++++++- .../restControllers/RefereeRestController.kt | 57 +++++++++++++++- 3 files changed, 171 insertions(+), 7 deletions(-) diff --git a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/restControllers/MatchRestController.kt b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/restControllers/MatchRestController.kt index 89b6779..1775fc4 100644 --- a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/restControllers/MatchRestController.kt +++ b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/restControllers/MatchRestController.kt @@ -1,8 +1,67 @@ package fr.teamflash.fencerjudgeback.restControllers -import org.springframework.web.bind.annotation.RestController +import fr.teamflash.fencerjudgeback.entities.MatchBean +import fr.teamflash.fencerjudgeback.services.MatchService +import org.springframework.http.HttpStatus +import org.springframework.http.ResponseEntity +import org.springframework.web.bind.annotation.* +import kotlin.random.Random @RestController -class MatchRestController { +@RequestMapping("/matches") +class MatchRestController(private val matchService: MatchService) { -} \ No newline at end of file + // Lister tous les matchs + @GetMapping("/") + fun getAll(): ResponseEntity> { + return ResponseEntity.ok(matchService.getAll()) + } + + // Lister tous les matchs à partir d'une certaine date + @GetMapping("/{date}") + fun getAllFromDate(date:Date): ResponseEntity?> { + return ResponseEntity.ok(matchService.getAll().filter { it.date == date }) + } + + // Lister les matchs en cours + @GetMapping("/active") + fun getAllActive(): ResponseEntity?> { + return ResponseEntity.ok(matchService.getAll().filter { it.state == ACTIVE }) + } + + // Lister les matchs terminés + @GetMapping("/over") + fun getAllFinished(): ResponseEntity?> { + return ResponseEntity.ok(matchService.getAll().filter { }) + } + + // Lister les matchs non commencés + @GetMapping("/not-started") + fun getAllNotStarted(): ResponseEntity?> { + + } + + // Afficher un match par id + @GetMapping("/{id}") + fun getMatchById(@PathVariable id: Long): ResponseEntity { + return ResponseEntity.ok(matchService.getById(id)) + } + + // Ajouter un match + @PostMapping("/create-match") + fun createMatch(@RequestBody match: MatchBean): ResponseEntity { + return ResponseEntity.status(HttpStatus.CREATED).body(matchService.createMatch(match)) + } + + // Mettre à jour un match + @PutMapping("/update-match/{id}") + fun updateMatch(@PathVariable id: Long, @RequestBody refereeID: Long, @RequestBody): ResponseEntity { + return ResponseEntity.ok(matchService.updateMatch(match)) + } + + // Supprimer un match + @DeleteMapping("/delete-match/{id}") + fun deleteMatch(@PathVariable id: Long): ResponseEntity { + return ResponseEntity.ok(matchService.deleteMatch(id)) + } +} diff --git a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/restControllers/PlayerRestController.kt b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/restControllers/PlayerRestController.kt index b6ea5c9..a32d39b 100644 --- a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/restControllers/PlayerRestController.kt +++ b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/restControllers/PlayerRestController.kt @@ -1,7 +1,59 @@ package fr.teamflash.fencerjudgeback.restControllers +import fr.teamflash.fencerjudgeback.entities.PlayerBean +import fr.teamflash.fencerjudgeback.services.PlayerService +import org.springframework.http.ResponseEntity +import org.springframework.web.bind.annotation.DeleteMapping +import org.springframework.web.bind.annotation.GetMapping +import org.springframework.web.bind.annotation.PostMapping +import org.springframework.web.bind.annotation.PutMapping +import org.springframework.web.bind.annotation.RequestMapping import org.springframework.web.bind.annotation.RestController +import java.util.Optional @RestController -class PlayerRestController { -} \ No newline at end of file +@RequestMapping("/players") +class PlayerRestController(private val playerService: PlayerService) { + + // Lister tous les joueurs + @GetMapping + fun getAll(): ResponseEntity> { + return ResponseEntity.ok(playerService.getAll()) + } + + // Afficher un joueur par id + @GetMapping("/{id}") + fun getById(id: Long): ResponseEntity?> { + return ResponseEntity.ok(playerService.getById(id)) + } + + // Afficher un joueur par nom + @GetMapping("/{name}") + fun getByName(name: String): ResponseEntity?> { + return ResponseEntity.ok(playerService.getByName(name)) + } + + // Afficher un joueur par prénom + @GetMapping("/{firstName}") + fun getByFirstName(firstName: String): ResponseEntity?> { + return ResponseEntity.ok(playerService.getByFirstName(firstName)) + } + + // Ajouter un joueur + @PostMapping("/add-player") + fun createPlayer(player: PlayerBean): ResponseEntity { + return ResponseEntity.ok(playerService.createPlayer(player)) + } + + // Modifier un joueur + @PutMapping("/update-player") + fun updatePlayer(id: Long, name: String, firstName: String): ResponseEntity { + return ResponseEntity.ok(playerService.updatePlayer(id, name, firstName)) + } + + // Supprimer un joueur + @DeleteMapping("/delete-player") + fun deletePlayer(id: Long): ResponseEntity { + return ResponseEntity.ok(playerService.deletePlayer(id)) + } +} diff --git a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/restControllers/RefereeRestController.kt b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/restControllers/RefereeRestController.kt index 99c20b9..01216cc 100644 --- a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/restControllers/RefereeRestController.kt +++ b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/restControllers/RefereeRestController.kt @@ -1,8 +1,61 @@ package fr.teamflash.fencerjudgeback.restControllers +import fr.teamflash.fencerjudgeback.entities.RefereeBean +import fr.teamflash.fencerjudgeback.services.RefereeService +import org.springframework.http.ResponseEntity +import org.springframework.web.bind.annotation.DeleteMapping +import org.springframework.web.bind.annotation.GetMapping +import org.springframework.web.bind.annotation.PathVariable +import org.springframework.web.bind.annotation.PostMapping +import org.springframework.web.bind.annotation.PutMapping +import org.springframework.web.bind.annotation.RequestMapping import org.springframework.web.bind.annotation.RestController +import java.util.Optional @RestController -class RefereeRestController { +@RequestMapping("/referees") +class RefereeRestController(private val refereeService: RefereeService) { -} \ No newline at end of file + // Lister tous les arbitres + @GetMapping("/") + fun getAll() : ResponseEntity> { + return ResponseEntity.ok(refereeService.getAll()) + } + + // Afficher un arbitre par id + @GetMapping("/{id}") + fun getById(id: Long): ResponseEntity?> { + return ResponseEntity.ok(refereeService.getById(id)) + } + + // Afficher un ou plusieurs arbitre(s) par nom + @GetMapping("/name/{name}") + fun getByName(name:String): ResponseEntity?> { + return ResponseEntity.ok(refereeService.getByName(name)) + } + + // Afficher ou plusieurs arbitre(s) par prénom + @GetMapping("/first-name/{firstName}") + fun getByFirstName(firstName:String): ResponseEntity?> { + return ResponseEntity.ok(refereeService.getByFirstName(firstName)) + } + + // Ajouter un arbitre + @PostMapping("/create-referee") + fun createReferee(referee: RefereeBean): ResponseEntity { + return ResponseEntity.ok(refereeService.createReferee(referee)) + } + + // Modifier un arbitre + @PutMapping("/update-referee/{id}") + fun updateReferee(@PathVariable id: Long, name: String, firstName: String) : ResponseEntity { + return ResponseEntity.ok(refereeService.updateReferee(id, name, firstName)) + } + + // Supprimer un arbitre + @DeleteMapping("/delete-referee/{id}") + fun deleteReferee(id:Long): ResponseEntity { + return ResponseEntity.ok(refereeService.deleteReferee(id)) + } + +}