Example #1
0
 def create(self, tournoi):
     """
     Méthode permettant de créer un tournoi dans la table "table_tournois"
     """
     if self.tournoi_exists(tournoi):
         message = f"Le tournoi existe déjà en table : {tournoi}"
         raise TournoiDAOException(message)
     else:
         tournoi.id = TournoiDAO._table_tournois._get_next_id()
         TournoiDAO._table_tournois.insert(util.document(tournoi))
         for joueur in tournoi.liste_de_participants:
             data = self.data_participant_tournoi(tournoi.id, joueur)
             data['id'] = \
                 TournoiDAO._liens_participant_tournoi._get_next_id()
             document = util.document(data)
             TournoiDAO._liens_participant_tournoi.insert(document)
         for tour in tournoi.liste_de_tours:
             TourDAO().create(tournoi.id, tour)
Example #2
0
 def update(self, id_tour, match):
     try:
         self.read_by_index(id_tour, match.paire_de_joueurs[0].id,
                            match.paire_de_joueurs[1].id)
     except MatchDAOException:
         self.create(id_tour, match)
     else:
         document = util.document(self.data_match_tour(id_tour, match))
         MatchDAO._liens_match_tour.update(document, doc_ids=[match.id])
Example #3
0
 def create(self, joueur):
     """
     Méthode permettant de créer un joueur dans la table : "table_joueurs"
     """
     if self.joueur_exists(joueur):
         message = f"Le joueur existe déjà en base : {joueur}"
         raise JoueurDAOException(message)
     else:
         joueur.id = JoueurDAO._table_joueurs._get_next_id()
         JoueurDAO._table_joueurs.insert(util.document(joueur))
Example #4
0
 def create(self, id_tour, match):
     """
     Méthode permettant de créer un match dans la table : "liens_match_tour"
     """
     if self.match_exists(id_tour, match):
         message = f"Le match existe déjà en base de données : {match}"
         raise MatchDAOException(message)
     else:
         match.id = MatchDAO._liens_match_tour._get_next_id()
         document = util.document(self.data_match_tour(id_tour, match))
         MatchDAO._liens_match_tour.insert(document)
Example #5
0
 def create(self, id_tournoi, tour):
     """
     Méthode permettant de créer un tour dans la table "liens_tour_tournoi"
     """
     if self.tour_exists(id_tournoi, tour.nom):
         message = f"Le tour existe déjà dans la base de données : {tour}"
         raise TourDAOException(message)
     else:
         tour.id = TourDAO._liens_tour_tournoi._get_next_id()
         tour._id_tournoi = id_tournoi
         TourDAO._liens_tour_tournoi.insert(util.document(tour))
         for match in tour.liste_de_matchs:
             MatchDAO().create(tour.id, match)
Example #6
0
 def update(self, joueur):
     """
     Méthode permettant de mettre à jour un joueur dans la table :
     "table_joueurs"
     """
     try:
         self.read_by_index(joueur.nom, joueur.prenom,
                            joueur.date_de_naissance)
     except JoueurDAOException:
         self.create(joueur)
     else:
         JoueurDAO._table_joueurs.update(util.document(joueur),
                                         doc_ids=[joueur.id])
Example #7
0
 def update(self, id_tournoi, tour):
     """
     Méthode qui met à jour un tour dans un tournoi
     """
     try:
         self.read_by_index(id_tournoi, tour.nom)
     except TourDAOException:
         self.create(id_tournoi, tour)
     else:
         tour._id_tournoi = id_tournoi
         document = util.document(tour)
         TourDAO._liens_tour_tournoi.update(document, doc_ids=[tour.id])
         for match in tour.liste_de_matchs:
             MatchDAO().update(tour.id, match)
Example #8
0
 def update(self, tournoi):
     """
     Méthode de mise à jour d'un tournoi
     """
     try:
         self.read_by_index(tournoi.nom, tournoi.lieu,
                            tournoi.date_de_debut)
     except TournoiDAOException:
         self.create(tournoi)
     else:
         TournoiDAO._table_tournois.update(util.document(tournoi),
                                           doc_ids=[tournoi.id])
         for joueur in tournoi.liste_de_participants:
             requete = Query()
             data = self.data_participant_tournoi(tournoi.id, joueur)
             TournoiDAO._liens_participant_tournoi.upsert(
                 data, (requete.id_joueur == joueur.id)
                 & (requete.id_tournoi == tournoi.id))
         for tour in tournoi.liste_de_tours:
             TourDAO().update(tournoi.id, tour)