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)
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])
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))
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)
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)
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])
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)
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)