Example #1
0
 def generate_food_items_dict(self, food_items):
     food_items_list = []
     for food_item in range(len(food_items)):
         try:
             Zatiq_Food_Items.objects(id=food_items[food_item].id).modify(inc__views=1)
         except Exception as e:
             print("Error \n %s" % (e))
         food_item_id = food_items[food_item].id
         restaurant_id = food_items[food_item].restaurant_id.id
         restaurant_info = self.get_restaurant_info(restaurant_id)
         item_name = food_items[food_item].item_name
         overview = food_items[food_item].overview
         image = "http://167.99.177.29:5000/image/"+str(food_items[food_item].image)
         item_price = food_items[food_item].item_price
         is_beverage = food_items[food_item].is_beverage
         meal_types = self.generate_meals_dict(food_items[food_item].meal_type)
         image_aspect_ratio = food_items[food_item].image_aspect_ratio
         tags = self.generate_tags_dict(food_items[food_item].tags, is_beverage)
         meats = self.generate_meats_dict(food_items[food_item].tags.meat)
         seafoods = self.generate_seafoods_dict(food_items[food_item].tags.seafood)
         calories = food_items[food_item].calories
         food_item_info = {'food_item_id': str(food_item_id), 'restaurant_id': str(restaurant_id), 'restaurant_info': restaurant_info, 'item_name': item_name, 'meal_type': meal_types, 'item_price': str(item_price), 'overview': overview, 'image': {'base64': image, 'image_aspect_ratio': image_aspect_ratio}, 'tags': tags, 'meat': meats, 'seafood': seafoods, 'calories': calories}
         food_items_list.append(food_item_info)
         if len(food_items_list) > 5:
             food_items_list = random.sample(food_items_list, 5)
     return(food_items_list)
Example #2
0
 def delete_food_item(self, api_token, food_item_id):
     if self.check_valid_api_token(api_token) == True:
         restaurant_id = self.get_restaurant_id_by_api_token(api_token)
         local_image_path = Zatiq_Food_Items.objects(id=food_item_id, restaurant_id=restaurant_id)[0].image
         try:
             Zatiq_Food_Items.objects(id=food_item_id, restaurant_id=restaurant_id).delete()
         except Exception as e:
             return("Error \n %s" %(e))
             
         delete_image = post("http://167.99.177.29:5000/delete/", json={'imagepath': local_image_path})
         if 'Error' in delete_image:
             with open('./food_delete_failed.txt', 'a') as file:
                 file.write('(food_id:{}, restaurant_id:{})\n'.format(food_item_id, restaurant_id))
         return('Food item deleted')
     else:
         return('Could not authenticate')
Example #3
0
    def find_food_grid(self, api_token):
        if not api_token:
            return('Could not authenticate')

        if self.check_valid_api_token(api_token) == True:
            try:
                zatiq_food_items = Zatiq_Food_Items.objects()
            except Exception as e:
                return("Error \n %s" % (e))

            if len(zatiq_food_items) > 0:
                if self.check_user(api_token) == 'user':
                    user_preferences = self.get_user_preferences(api_token)
                    filtered_food = self.filter_food(zatiq_food_items, user_preferences)

                    if len(filtered_food) > 25:
                        food_items_dict = self.generate_food_items_dict_full(filtered_food[0:25])
                        return(food_items_dict)
                    else:
                        food_items_dict = self.generate_food_items_dict_full(filtered_food)
                        return(food_items_dict)
                else:
                    food_items_dict = self.generate_food_items_dict_full(zatiq_food_items)
                    return(food_items_dict)
            else:
                return([])
        else:
            return('Could not authenticate')
    def get_linked_food_item_info(self, food_item_id):
        try:
            food_item_info = Zatiq_Food_Items.objects(id=food_item_id)
        except Exception as e:
            return ("Error \n %s" % (e))

        if len(food_item_info) > 0:
            image = food_item_info[0].image
            image_aspect_ratio = food_item_info[0].image_aspect_ratio
            item_name = food_item_info[0].item_name
            item_price = food_item_info[0].item_price
            try:
                restaurant_info = Zatiq_Businesses.objects(
                    id=food_item_info[0].restaurant_id.id)
            except Exception as e:
                return ("Error \n %s" % (e))

            restaurant_image = restaurant_info[0].image
            restaurant_image_aspect_ratio = restaurant_info[
                0].image_aspect_ratio
            restaurant_name = restaurant_info[0].business_name

            return [
                image, image_aspect_ratio, item_name, item_price,
                restaurant_image, restaurant_image_aspect_ratio,
                restaurant_name
            ]
        else:
            return []
Example #5
0
 def update_food_item_without_image(self, api_token, food_item_id, overview, item_name, meal_type, tags, item_price, meat, seafood, calories):
     if self.check_valid_api_token(api_token) == True:
         restaurant_id = self.get_restaurant_id_by_api_token(api_token)
         try:
             Zatiq_Food_Items.objects(id=food_item_id, restaurant_id=restaurant_id).update_one(upsert=False, item_name=item_name, overview=overview, is_beverage=tags['is_beverage'], item_price=item_price, calories=calories,
             set__tags__indian=tags['indian'], set__tags__greek=tags['greek'], set__tags__chinese=tags['chinese'], set__tags__japanese=tags['japanese'], set__tags__korean=tags['korean'], set__tags__sushi=tags['sushi'], set__tags__dessert=tags['dessert'], set__tags__burger=tags['burger'], set__tags__pizza=tags['pizza'],
             set__tags__fast_food=tags['fast_food'], set__tags__halal=tags['halal'], set__tags__caribbean=tags['caribbean'], set__tags__mexican=tags['mexican'], set__tags__spicy=tags['spicy'], set__tags__fine_food=tags['fine_food'], set__tags__kosher=tags['kosher'], set__tags__healthy=tags['healthy'], set__tags__vegan=tags['vegan'], set__tags__vegetarian=tags['vegetarian'],
             set__tags__gluten_free=tags['gluten_free'], set__tags__italian=tags['italian'], set__tags__middle_eastern=tags['middle_eastern'], set__tags__snack=tags['snack'], set__tags__thai=tags['thai'], set__tags__canadian=tags['canadian'], set__tags__vietnamese=tags['vietnamese'], set__tags__has_soybeans=tags['has_soybeans'], set__tags__has_eggs=tags['has_eggs'], set__tags__jain=tags['jain'], set__tags__has_wheat=tags['has_wheat'], set__tags__has_treenuts=tags['has_treenuts'], set__tags__has_peanuts=tags['has_peanuts'], set__tags__lactose_free=tags['lactose_free'],
             set__tags__meat__bear=meat['bear'], set__tags__meat__beef=meat['beef'], set__tags__meat__buffalo=meat['buffalo'], set__tags__meat__calf=meat['calf'], set__tags__meat__caribou=meat['caribou'], set__tags__meat__goat=meat['goat'], set__tags__meat__ham=meat['ham'], set__tags__meat__horse=meat['horse'], set__tags__meat__kangaroo=meat['kangaroo'], set__tags__meat__lamb=meat['lamb'], set__tags__meat__moose=meat['moose'], set__tags__meat__mutton=meat['mutton'], set__tags__meat__opossum=meat['opossum'],
             set__tags__meat__pork=meat['pork'], set__tags__meat__bacon=meat['bacon'], set__tags__meat__rabbit=meat['rabbit'], set__tags__meat__snake=meat['snake'], set__tags__meat__squirrel=meat['squirrel'], set__tags__meat__turtle=meat['turtle'], set__tags__meat__veal=meat['veal'], set__tags__meat__chicken=meat['chicken'], set__tags__meat__hen=meat['hen'], set__tags__meat__duck=meat['duck'], set__tags__meat__goose=meat['goose'],
             set__tags__meat__ostrich=meat['ostrich'], set__tags__meat__quail=meat['quail'], set__tags__meat__turkey=meat['turkey'], set__tags__seafood__clam=seafood['clam'], set__tags__seafood__pangasius=seafood['pangasius'], set__tags__seafood__cod=seafood['cod'], set__tags__seafood__crab=seafood['crab'], set__tags__seafood__catfish=seafood['catfish'], set__tags__seafood__alaska_pollack=seafood['alaska_pollack'], set__tags__seafood__tilapia=seafood['tilapia'], set__tags__seafood__salmon=seafood['salmon'], set__tags__seafood__tuna=seafood['tuna'],
             set__tags__seafood__shrimp=seafood['shrimp'], set__tags__seafood__lobster=seafood['lobster'], set__tags__seafood__eel=seafood['eel'], set__tags__seafood__trout=seafood['trout'], set__tags__seafood__pike=seafood['pike'], set__tags__seafood__shark=seafood['shark'], set__meal_type__breakfast=meal_type['breakfast'], set__meal_type__lunch=meal_type['lunch'], set__meal_type__dinner=meal_type['dinner'], set__meal_type__brunch=meal_type['brunch'])
         except Exception as e:
             return("Error \n %s" % (e))
         return(['Update successful', food_item_id])
     else:
         return('Could not authenticate')
Example #6
0
 def get_food_by_id(self, food_item_id):
     try:
         food_item = Zatiq_Food_Items.objects(id=food_item_id)
     except Exception as e:
         return("Error \n %s" %(e))
     if len(food_item) > 0:
         food_item_dict = self.generate_food_items_dict(food_item)
         return(food_item_dict)
     else:
         return('No food item found with that id')
Example #7
0
 def get_food_items_by_restaurant_id(self, api_token, restaurant_id):
     if restaurant_id == None:
         restaurant_id = self.get_restaurant_id_by_api_token(api_token)
     try:
         foods_by_restaurant = Zatiq_Food_Items.objects(restaurant_id=restaurant_id)
     except Exception as e:
         return("Error \n %s" % (e))
     if len(foods_by_restaurant) > 0:
         food_items_dict = self.generate_food_items_dict_full(foods_by_restaurant)
         return(food_items_dict)
     else:
         return([])
    def get_list_of_food_items(self):
        food_items_names_dict = {}

        try:
            food_items = Zatiq_Food_Items.objects()
        except Exception as e:
            return ("Error \n %s" % (e))

        if len(food_items) > 0:
            restaurant_names = self.get_all_restaurant_names(food_items)
            for food_item_name in range(len(food_items)):
                food_items_names_dict[str(food_items[food_item_name].item_name)
                                      + " (" +
                                      str(restaurant_names[food_item_name]) +
                                      ")"] = str(food_items[food_item_name].id)

        return food_items_names_dict
 def get_food_name_by_id(self, food_id):
     try:
         food_name = Zatiq_Food_Items.objects(id=food_id)
     except Exception as e:
         return ("Error \n %s" % (e))
     return (food_name[0].item_name)