## 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 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 createMatch(var MatchBean newMatch) -> MatchBean : MatchRepository.add(newMatch) return newMatch // Modifier un match (admin) --> DONE 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 MatchRepository.deleteById(id) // Insérer le nouveau MatchBean à l'id en paramètre MatchRepository.add(newMatch) return SUCCESS // Supprimer un match (admin) --> DONE function deleteMatch(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 getById(var long id) -> RefereeBean : return RefereeRepository.findById(id) // 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 createReferee(var RefereeBean newReferee) -> RefereeBean: RefereeRepository.add(newReferee) return newReferee // Modifier un arbitre (admin) --> DONE 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 RefereeRepository.deleteById(id) // Insérer le nouveau RefereeBean à l'id en paramètre RefereeRepository.add(newReferee) 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 --> DONE: // Obtenir tous les joueurs (public) --> DONE function getAll() -> array : return PlayerRepository.getAll() // Obtenir un joueur par id (public) --> DONE function getById(var long id) -> PlayerBean : return PlayerRepository.findById(id) // 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: 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 ?)