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 87ccf3e..ae1fe3a 100644 --- a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/entities/MatchBean.kt +++ b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/entities/MatchBean.kt @@ -6,7 +6,14 @@ import jakarta.persistence.GenerationType import jakarta.persistence.Id import jakarta.persistence.SequenceGenerator import jakarta.persistence.Table -import jakarta.validation.constraints.* +import jakarta.validation.constraints.* +import java.util.Date + +enum class MatchState { + ONGOING, + FINISHED, + NOT_STARTED +} @Entity @Table(name="matches") @@ -28,6 +35,6 @@ data class MatchBean( var score1:Int=0, @field:Min(value = 0, message = "Score must be at least 0") var score2:Int=0, - val date: String?=null, - val state:String?=null + val date: Date?=null, + val state: MatchState?=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 4756fee..cb2570a 100644 --- a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/entities/RefereeBean.kt +++ b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/entities/RefereeBean.kt @@ -7,6 +7,13 @@ import jakarta.persistence.Id import jakarta.persistence.SequenceGenerator import jakarta.persistence.Table +enum class RefereeLevel { + DEPARTMENTAL, + REGIONAL, + NATIONAL, + INTERNATIONAL +} + @Entity @Table(name="referees") data class RefereeBean( @@ -16,5 +23,5 @@ data class RefereeBean( val id:Long?=null, val name:String?=null, val firstName:String?=null, - val qualification:String?=null + val level:RefereeLevel?=null ) \ 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 eb45355..8e4da4e 100644 --- a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/restControllers/MatchRestController.kt +++ b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/restControllers/MatchRestController.kt @@ -1,12 +1,14 @@ package fr.teamflash.fencerjudgeback.restControllers import fr.teamflash.fencerjudgeback.entities.MatchBean -import fr.teamflash.fencerjudgeback.restControllers.RefereeRestController.Companion.URL_ORIGIN +import fr.teamflash.fencerjudgeback.entities.MatchState import fr.teamflash.fencerjudgeback.services.MatchService import org.springframework.http.ResponseEntity import org.springframework.web.bind.annotation.* +import java.util.Date @RestController +@CrossOrigin(origins = ["*"]) @RequestMapping("/matches") class MatchRestController(private val matchService: MatchService) { @@ -22,7 +24,7 @@ class MatchRestController(private val matchService: MatchService) { // Lister tous les matchs à partir d'une certaine date @GetMapping("/date/{date}") - fun getAllFromDate(@PathVariable date:String): ResponseEntity?> { + fun getAllFromDate(@PathVariable date: Date): ResponseEntity?> { return ResponseEntity.ok(matchService.getAll().filter { it.date == date }) } @@ -47,19 +49,19 @@ class MatchRestController(private val matchService: MatchService) { // Lister les matchs en cours @GetMapping("/active") fun getAllActive(): ResponseEntity?> { - return ResponseEntity.ok(matchService.getAll().filter { it.state == "ACTIVE" }) + return ResponseEntity.ok(matchService.getAll().filter { it.state == MatchState.ONGOING }) } // Lister les matchs terminés @GetMapping("/over") fun getAllFinished(): ResponseEntity?> { - return ResponseEntity.ok(matchService.getAll().filter { it.state == "FINISHED" }) + return ResponseEntity.ok(matchService.getAll().filter { it.state == MatchState.FINISHED }) } // Lister les matchs non commencés @GetMapping("/not-started") fun getAllNotStarted(): ResponseEntity?> { - return ResponseEntity.ok(matchService.getAll().filter { it.state == "NOT STARTED" }) + return ResponseEntity.ok(matchService.getAll().filter { it.state == MatchState.NOT_STARTED }) } // Afficher un match par id @@ -69,22 +71,18 @@ class MatchRestController(private val matchService: MatchService) { } // Ajouter un match - @CrossOrigin(origins = [URL_ORIGIN]) @PostMapping("/create-match") fun createMatch(@RequestBody match: MatchBean): ResponseEntity { -// return ResponseEntity.status(HttpStatus.CREATED).body(matchService.createMatch(match)) return ResponseEntity.ok(matchService.createMatch(match)) } // Mettre à jour un match - @CrossOrigin(origins = [URL_ORIGIN]) @PutMapping("/update-match/{id}") fun updateMatch(@PathVariable id: Long, @RequestBody match: MatchBean): ResponseEntity { return ResponseEntity.ok(matchService.updateMatch(id, match)) } // Supprimer un match - @CrossOrigin(origins = [URL_ORIGIN]) @DeleteMapping("/delete-match/{id}") fun deleteMatch(@PathVariable id: Long): ResponseEntity { return ResponseEntity.ok(matchService.deleteMatchById(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 96c6f87..75fe6ce 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,7 @@ package fr.teamflash.fencerjudgeback.restControllers import fr.teamflash.fencerjudgeback.entities.PlayerBean -import fr.teamflash.fencerjudgeback.restControllers.RefereeRestController.Companion.URL_ORIGIN +import fr.teamflash.fencerjudgeback.restControllers.MatchRestController.Companion.URL_ORIGIN import fr.teamflash.fencerjudgeback.services.PlayerService import org.springframework.http.ResponseEntity import org.springframework.web.bind.annotation.CrossOrigin @@ -15,13 +15,10 @@ import org.springframework.web.bind.annotation.RequestMapping import org.springframework.web.bind.annotation.RestController @RestController +@CrossOrigin(origins = ["*"]) @RequestMapping("/players") class PlayerRestController(private val playerService: PlayerService) { - companion object { - const val URL_ORIGIN: String = "http://localhost:*" - } - // Lister tous les joueurs @GetMapping("/") fun getAll(): ResponseEntity> { 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 4535561..42ca424 100644 --- a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/restControllers/RefereeRestController.kt +++ b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/restControllers/RefereeRestController.kt @@ -1,6 +1,8 @@ package fr.teamflash.fencerjudgeback.restControllers +import fr.teamflash.fencerjudgeback.entities.MatchState import fr.teamflash.fencerjudgeback.entities.RefereeBean +import fr.teamflash.fencerjudgeback.entities.RefereeLevel import fr.teamflash.fencerjudgeback.services.RefereeService import org.springframework.http.ResponseEntity import org.springframework.web.bind.annotation.CrossOrigin @@ -14,13 +16,10 @@ import org.springframework.web.bind.annotation.RequestMapping import org.springframework.web.bind.annotation.RestController @RestController +@CrossOrigin(origins = ["*"]) @RequestMapping("/referees") class RefereeRestController(private val refereeService: RefereeService) { - companion object { - const val URL_ORIGIN: String = "http://localhost:*" - } - // Lister tous les arbitres @GetMapping("/") fun getAll() : ResponseEntity> { @@ -45,28 +44,25 @@ class RefereeRestController(private val refereeService: RefereeService) { return ResponseEntity.ok(refereeService.getByFirstName(firstName)) } - // Afficher un ou plusieurs arbitre(s) par qualification - @GetMapping("/qualification/{qualification}") - fun getByQualification(@PathVariable qualification:String): ResponseEntity?> { - return ResponseEntity.ok(refereeService.getByQualification(qualification)) + // Afficher un ou plusieurs arbitre(s) par niveau + @GetMapping("/level/{level}") + fun getByQualification(@PathVariable level: RefereeLevel): ResponseEntity?> { + return ResponseEntity.ok(refereeService.getByLevel(level)) } // Ajouter un arbitre - @CrossOrigin(origins = [URL_ORIGIN]) @PostMapping("/create-referee") fun createReferee(@RequestBody referee: RefereeBean): ResponseEntity { return ResponseEntity.ok(refereeService.createReferee(referee)) } // Modifier un arbitre - @CrossOrigin(origins = [URL_ORIGIN]) @PutMapping("/update-referee/{id}") fun updateReferee(@PathVariable id: Long, @RequestBody referee: RefereeBean) : ResponseEntity { return ResponseEntity.ok(refereeService.updateReferee(id, referee)) } // Supprimer un arbitre - @CrossOrigin(origins = [URL_ORIGIN]) @DeleteMapping("/delete-referee/{id}") fun deleteReferee(@PathVariable id:Long): ResponseEntity { return ResponseEntity.ok(refereeService.deleteRefereeById(id)) 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 218a1cb..c3491ed 100644 --- a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/services/RefereeService.kt +++ b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/services/RefereeService.kt @@ -1,6 +1,8 @@ package fr.teamflash.fencerjudgeback.services +import fr.teamflash.fencerjudgeback.entities.MatchState import fr.teamflash.fencerjudgeback.entities.RefereeBean +import fr.teamflash.fencerjudgeback.entities.RefereeLevel import fr.teamflash.fencerjudgeback.repositories.RefereeRepository import fr.teamflash.fencerjudgeback.websocket.controllers.RefereeWebSocketController import fr.teamflash.fencerjudgeback.websocket.models.RefereeUpdateMessage @@ -42,10 +44,10 @@ class RefereeService( return refereeRepository.findAll().filter{ it.firstName == firstName } } - // Obtenir un ou plusieurs arbitre(s) par qualification - fun getByQualification(qualification:String): List? { - println("RefereeService.getRefereeByQualification : $qualification") - return refereeRepository.findAll().filter{ it.qualification == qualification } + // Obtenir un ou plusieurs arbitre(s) par niveau + fun getByLevel(level: RefereeLevel): List? { + println("RefereeService.getByLevel : $level") + return refereeRepository.findAll().filter{ it.level == level } } // Ajouter un arbitre (admin)