def get_sales_history(self, store_id, user) -> [Purchase]: logger.log("user %s get sales history of store no.%d", user, store_id) if self.users_manager.check_if_registered(user) and ( str(store_id) in self.users_manager.get_managed_stores(user) or self.users_manager.is_admin(user)): return self.stores_manager.get_sales_history( store_id, user, self.users_manager.is_admin(user))
def open_store(self, owner: str, store_name): logger.log("user %s open %s store", owner, store_name) if self.users_manager.check_if_registered(owner): store_id = self.stores_manager.open_store(owner, store_name) self.users_manager.add_managed_store(owner, store_id) return store_id return -1
def register(self, username, new_username, password): logger.log("user %s called register with new_username:%s", username, new_username) ans, data = self.user_manager.register(username, new_username) if ans is True: self.security.add_user(new_username, password) print(data) return ans, data
def remove_permission_from_manager_in_store(self, store_id, owner, manager, permission: str): logger.log("user %s remove %s permission to %s in store no.%d", owner, permission, manager, store_id) if store_id in self.users_manager.get_managed_stores( owner) and store_id in self.users_manager.get_managed_stores( manager): self.stores_manager.remove_permission_from_manager_in_store( store_id, owner, manager, permission)
def add_permission_to_manager_in_store(self, store_id, owner, manager, permission: str): logger.log("user %s add %s permission to %s in store no.%d", owner, permission, manager, store_id) if str(store_id ) in self.users_manager.get_managed_stores(owner) and str( store_id) in self.users_manager.get_managed_stores(manager): return self.stores_manager.add_permission_to_manager_in_store( store_id, owner, manager, permission) return False
def appoint_owner_to_store(self, store_id, owner, to_appoint): logger.log("user %s call appoint owner %s to store no.%d", owner, to_appoint, store_id) if str(store_id) in self.users_manager.get_managed_stores( owner) and self.users_manager.check_if_registered(to_appoint): if self.stores_manager.appoint_owner_to_store( store_id, owner, to_appoint): self.users_manager.add_managed_store(to_appoint, store_id) return True return False
def remove_product(self, username, store_id, product, quantity): """ :param username: :param store_id: :param product: :param quantity: :return: True if product was removed. False otherwise. """ logger.log( "user %s called remove product with store_id:%d, product_name:%s, quantity:%d", username, store_id, product.name, quantity) return self.user_manager.remove_product(username, store_id, product, quantity)
def add_product_to_store(self, store_id: int, user_name: str, product_name: str, product_price: int, product_categories: [str], key_words: [str], amount) -> bool: logger.log( "user %s called add product to store no.%d. product name:%s" " product price:%d product categories:%s,key words:%s, amount:%d", user_name, store_id, product_name, product_price, product_categories, key_words, amount) managed_stores = jsonpickle.decode( self.users_manager.get_managed_stores(user_name)) if store_id in managed_stores: return self.stores_manager.add_product_to_store( store_id, user_name, product_name, product_price, product_categories, key_words, amount) return False
def search_product(self, search_term: str = "", categories: [str] = [], key_words: [str] = []) \ -> {int: [Product]}: """ Args: search_term: categories: key_words: Returns: """ logger.log( "called search with search term:%s, categories:%s, key words:%s", search_term, categories, key_words) return self.stores_manager.search( self.spell_checker.correction(search_term), [self.spell_checker.correction(word) for word in categories], [self.spell_checker.correction(word) for word in key_words])