def get_all_articles(self): """Alle Artikel der Datenbank ausgeben :return: Liste mit Artikeln """ with ArticleMapper() as mapper: return mapper.find_all()
def get_article_by_name(self, name: str): """Artikel anhand ihres Namens ausgeben :param name: Name :return: Liste mit Artikeln """ with ArticleMapper() as mapper: return mapper.find_by_name(name)
def get_article_by_id(self, article_id: int): """Artikel anhand der ID ausgeben :param article_id: ID des Artikels :return: Artikel-Objekt """ with ArticleMapper() as mapper: return mapper.find_by_id(article_id)
def get_articles_by_group_id(self, group_id: int): """Artikel der Gruppe anhand ihrer ID ausgeben :param group_id: ID der Gruppe :return: Liste mit Artikeln """ with ArticleMapper() as mapper: return mapper.find_by_group(group_id)
def get_article_count_by_group(self, group: Group): """Artikel einer Gruppe absteigend sortiert nach der Kaufhäufigkeit ausgeben :param group: Gruppen-Objekt :return: Liste mit Artikeln """ with ArticleMapper() as mapper: return mapper.find_most_frequent_articles_by_group(group)
def save_article(self, article): """Artikel aktualisieren :param article: Artikel-Objekt :return: Aktualisiertes Artikel-Objekt """ article.set_last_updated(datetime.now()) with ArticleMapper() as mapper: return mapper.update(article)
def create_article(self, name: str, group_id: int): """Artikel erstellen :param name: Name :param group_id: ID der zugehörigen Gruppe :return: Artikel-Objekt """ article = Article() article.set_id(0), article.set_name(name), article.set_group(group_id) with ArticleMapper() as mapper: return mapper.insert(article)
def delete_article(self, article_id: int): """Artikel und zugehörige Beziehungen löschen :param article_id: :return: """ article = self.get_article_by_id(article_id) # Standardartikel löschen with ListEntryMapper() as mapper: group = self.get_group_by_id(article.get_group()) mapper.delete_standardarticle_by_group(group) # Listeneinträge mit Artikel löschen with ListEntryMapper() as mapper: mapper.delete_by_article(article) # Artikel löschen with ArticleMapper() as mapper: mapper.delete(article_id)
def delete_group(self, group: Group): """Gruppe und zugehörige Beziehungen löschen :param group: Gruppen-Objekt :return: """ # User löschen with UserGroupRelationsMapper() as mapper: mapper.delete_group_relations(group) # Standardartikel löschen with ListEntryMapper() as mapper: mapper.delete_standardarticle_by_group(group) # Shoppinglists löschen with ShoppingListMapper() as shopping_list_mapper: shopping_lists = shopping_list_mapper.find_by_group(group) # Listeineinträge anhand der ShoppingLists löschen with ListEntryMapper() as mapper: for shopping_list in shopping_lists: mapper.delete_by_shopping_list(shopping_list) shopping_list_mapper.delete_by_group(group) # Artikel löschen with ArticleMapper() as article_mapper: articles = article_mapper.find_by_group(group.get_id()) # Übrige Listeneinträge nach Artikel löschen with ListEntryMapper() as mapper: for article in articles: mapper.delete_by_article(article) article_mapper.delete_by_group(group) # Gruppe löschen with GroupMapper() as mapper: mapper.delete(group)