def delete(self, food_id, restaurant_id): ownerPermission = ModRestaurantPermission(restaurant_id) if not ownerPermission.can(): abort(403) if FoodDao.get_food_by_id(food_id) != None: FoodDao.del_food(food_id) DaoHelper.commit(db) return 204 else: return { "message": "The food %d is not in the menu" % (food_id) }, 400
def get(self, restaurant_id): ownerPermission = ModRestaurantPermission(restaurant_id) if not ownerPermission.can(): abort(403) foods = FoodDao.get_foods(restaurant_id) return {'foods': [food.__json__() for food in foods]}, 200
def delete(self, restaurant_id): ownerPermission = ModRestaurantPermission(restaurant_id) if not ownerPermission.can(): abort(403) #data = parser.parse_args() data = request.get_json(force=True) if FoodDao.get_food_by_id(data['foods'][0]['food_id']) != None: FoodDao.del_food(data['foods'][0]['food_id']) DaoHelper.commit(db) return 204 else: return { "message": "The food %d is not in the menu" % (data['foods'][0]['food_id']) }, 400
def get(self, food_id, restaurant_id): ownerPermission = ModRestaurantPermission(restaurant_id) if not ownerPermission.can(): abort(403) food = FoodDao.get_food_by_id(food_id) if food == None: return {"message": "No such food exists in this menu"}, 400 else: return {'foods': [food.__json__()]}, 200
def get(self, user_id, restaurant_id, food_id): #data = parser.parse_args() food = FoodDao.get_food_by_id(int(food_id)) #pdb.set_trace() if food == None: return { "message": "No such food %d exists in this menu" % (int(food_id)) }, 400 else: return {'foods': [food.__json__()]}, 200
def get(self, user_id, restaurant_id, order_id, food_id): identityPermission = Permission(UserNeed(user_id)) if not identityPermission.can(): abort(403) customer_order_items = OrderHistoryItemDao.get_order_history_items( int(order_id)) for customer_order_item in customer_order_items: food = FoodDao.get_food_by_name(customer_order_item.name) if (food != None) and (food.id == int(food_id)): return {'foods': [food.__json__()]}, 200 return {'message': "No such food exists in this order"}, 400
def put(self, restaurant_id, food_id): ownerPermission = ModRestaurantPermission(restaurant_id) if not ownerPermission.can(): abort(403) #data = parser.parse_args() data = request.get_json(force=True) food = FoodDao.get_food_by_id(food_id) #pdb.set_trace() if food == None: #由于传进来的json是数组形式来存储数据的,所以需要index来检索 food = data['foods'][0] FoodDao.add_food(food['name'], food['price'], food['food_type'], food['description'], food['image'], service.str2bool(food['available']), food['restaurant_id']) food_id = FoodDao.get_food_by_name(food['name']).id else: #food['available'] = service.str2bool(food['available']) #keys, values = service.get_keys_values(data['foods'][0]) dict = data['foods'][0] dict['available'] = service.str2bool(dict['available']) FoodDao.update_food(int(food_id), dict) #pdb.set_trace() DaoHelper.commit(db) return { "URL": "/restaurants/%d/menu/%d" % (int(restaurant_id), int(food_id)) }, 200
def post(self, restaurant_id): ownerPermission = ModRestaurantPermission(restaurant_id) if not ownerPermission.can(): abort(403) #data = parser.parse_args() data = request.get_json(force=True) #foods是一个list类型,里面的元素是food_item的json foods = data['foods'] for i in range(len(foods)): food = FoodDao.get_food_by_name(foods[i]['name']) #如果提交的food的信息数据库里面有相同id,则更新它 #pdb.set_trace() if food != None: foods[i]['available'] = service.str2bool(foods[i]['available']) #keys, values = service.get_keys_values(foods[i]) FoodDao.update_food(food.id, foods[i]) #如果没有则创建 else: FoodDao.add_food(foods[i]['name'], foods[i]['price'], foods[i]['food_type'], foods[i]['description'], foods[i]['image'], service.str2bool(foods[i]['available']), foods[i]['restaurant_id']) DaoHelper.commit(db) food = FoodDao.get_food_by_name(foods[0]['name']) return { 'URL': "/restaurants/%d/menu/%d" % (food.restaurant_id, food.id) }, 200
def get(self, restaurant_id, order_id, food_id): ownerPermission = ModRestaurantPermission(restaurant_id) if not ownerPermission.can(): abort(403) food = FoodDao.get_food_by_id(food_id) if food == None: return { "message": "The food %d doesn't exist" % (int(food_id)) }, 400 return { "URL": "/restaurants/%d/menu/%d" % (int(restaurant_id), int(food_id)) }, 200
def get(self, restaurant_id, user_id): foods = FoodDao.get_foods(restaurant_id) return {'foods': [food.__json__() for food in foods]}, 200