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
Beispiel #3
0
 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
Beispiel #7
0
 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])