84 lines
3.2 KiB
Kotlin
84 lines
3.2 KiB
Kotlin
package fr.teamflash.fencerjudgeback.restControllers
|
|
|
|
import fr.teamflash.fencerjudgeback.entities.MatchBean
|
|
import fr.teamflash.fencerjudgeback.services.MatchService
|
|
import org.springframework.http.ResponseEntity
|
|
import org.springframework.web.bind.annotation.*
|
|
|
|
@RestController
|
|
@RequestMapping("/matches")
|
|
class MatchRestController(private val matchService: MatchService) {
|
|
|
|
// Lister tous les matchs
|
|
@GetMapping("/")
|
|
fun getAll(): ResponseEntity<List<MatchBean>?> {
|
|
return ResponseEntity.ok(matchService.getAll())
|
|
}
|
|
|
|
// Lister tous les matchs à partir d'une certaine date
|
|
@GetMapping("/date/{date}")
|
|
fun getAllFromDate(@PathVariable date:String): ResponseEntity<List<MatchBean?>?> {
|
|
return ResponseEntity.ok(matchService.getAll().filter { it.date == date })
|
|
}
|
|
|
|
// Lister tous les matchs par pays
|
|
@GetMapping("/country/{country}")
|
|
fun getAllFromCountry(@PathVariable country:String): ResponseEntity<List<MatchBean>?> {
|
|
return ResponseEntity.ok(matchService.getAll().filter { it.country == country })
|
|
}
|
|
|
|
// Lister tous les matchs par ville
|
|
@GetMapping("/city/{city}")
|
|
fun getAllFromCity(@PathVariable city:String): ResponseEntity<List<MatchBean>?> {
|
|
return ResponseEntity.ok(matchService.getAll().filter { it.city == city })
|
|
}
|
|
|
|
// Lister tous les matchs par joueurs
|
|
@GetMapping("/players/{player1ID}/{player2ID}")
|
|
fun getAllWithPlayers(@PathVariable player1ID: Long?, @PathVariable player2ID: Long?): ResponseEntity<List<MatchBean>?> {
|
|
return ResponseEntity.ok(matchService.getByPlayers(player1ID, player2ID))
|
|
}
|
|
|
|
// Lister les matchs en cours
|
|
@GetMapping("/active")
|
|
fun getAllActive(): ResponseEntity<List<MatchBean>?> {
|
|
return ResponseEntity.ok(matchService.getAll().filter { it.state == "ACTIVE" })
|
|
}
|
|
|
|
// Lister les matchs terminés
|
|
@GetMapping("/over")
|
|
fun getAllFinished(): ResponseEntity<List<MatchBean>?> {
|
|
return ResponseEntity.ok(matchService.getAll().filter { it.state == "FINISHED" })
|
|
}
|
|
|
|
// Lister les matchs non commencés
|
|
@GetMapping("/not-started")
|
|
fun getAllNotStarted(): ResponseEntity<List<MatchBean>?> {
|
|
return ResponseEntity.ok(matchService.getAll().filter { it.state == "NOT STARTED" })
|
|
}
|
|
|
|
// Afficher un match par id
|
|
@GetMapping("/{id}")
|
|
fun getById(@PathVariable id: Long): ResponseEntity<MatchBean?> {
|
|
return ResponseEntity.ok(matchService.getById(id))
|
|
}
|
|
|
|
// Ajouter un match
|
|
@PostMapping("/create-match")
|
|
fun createMatch(@RequestBody match: MatchBean): ResponseEntity<MatchBean> {
|
|
// return ResponseEntity.status(HttpStatus.CREATED).body(matchService.createMatch(match))
|
|
return ResponseEntity.ok(matchService.createMatch(match))
|
|
}
|
|
|
|
// Mettre à jour un match
|
|
@PutMapping("/update-match/{id}")
|
|
fun updateMatch(@PathVariable id: Long, @RequestBody match: MatchBean): ResponseEntity<Int> {
|
|
return ResponseEntity.ok(matchService.updateMatch(id, match))
|
|
}
|
|
|
|
// Supprimer un match
|
|
@DeleteMapping("/delete-match/{id}")
|
|
fun deleteMatch(@PathVariable id: Long): ResponseEntity<Int> {
|
|
return ResponseEntity.ok(matchService.deleteMatchById(id))
|
|
}
|
|
}
|