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