def update(self, oid, params): valid_params = verify_params(params, Review.REVIEW_REQUIRED_PARAMS) if oid and valid_params: try: review_to_update = Review.get_review_by_id(oid) old_dish = Dish.get_dish_by_id(review_to_update.dish_id) if not review_to_update: return jsonify(message='Review Not Found!'), 404 for key, value in valid_params.item(): setattr(review_to_update, key, value) review_to_update.update() result = { 'message': 'Success!', 'review': review_to_update.to_dict(), } if old_dish.did != review_to_update.dish_id: new_dish = Dish.get_dish_by_id(review_to_update.dish_id) if review_to_update.experience: old_dish.rating -= 2 new_dish.rating += 2 else: old_dish.rating += 2 new_dish.rating -= 2 old_dish.update() new_dish.update() return jsonify(result), 200 except Exception as err: return jsonify(message="Server error!", error=err.__str__()), 500 else: return jsonify(message="Bad Request!"), 400
def update(self, oid, params): valid_params = verify_params(params, UpVote.UPVOTE_REQUIRED_PARAMS) if oid and valid_params: try: upvote_to_update = UpVote.get_upvote_by_id(oid) old_dish = Dish.get_dish_by_id(upvote_to_update.dish_id) if not upvote_to_update: return jsonify(message='Upvote Not Found!'), 404 for key, value in valid_params.items(): setattr(upvote_to_update, key, value) upvote_to_update.update() result = { "message": "Success!", "upvote": upvote_to_update.to_dict() } if upvote_to_update.dish_id != old_dish.did: new_dish = Dish.get_dish_by_id(upvote_to_update.dish_id) old_dish.rating -= 1 new_dish.rating += 1 old_dish.update() new_dish.update() return jsonify(result), 200 except Exception as err: return jsonify(message="Server error!", error=err.__str__()), 500 else: return jsonify(message="Bad Request!"), 400
def create(self, params): valid_params = verify_params(params, Review.REVIEW_REQUIRED_PARAMS) if valid_params: try: user = User.get_user_by_id(valid_params.get('user_id', None)) if not user or not user.isVerified: return jsonify( message='User does not exist or is not verified'), 400 new_review = Review(**valid_params) created_review = new_review.create() result = { 'message': 'Success!', 'review': created_review.to_dict(), } dish = Dish.get_dish_by_id(new_review.dish_id) if new_review.experience: dish.rating += 2 else: dish.rating -= 2 dish.update() return jsonify(result), 201 except Exception as err: return jsonify(message="Server error!", error=err.__str__()), 500 else: return jsonify(message="Bad Request!"), 400
def create(self, params): valid_params = verify_params(params, Dish.DISH_REQUIRED_PARAMS) if valid_params: try: new_dish = Dish(**valid_params) created_dish = new_dish.create() result = { 'message': 'Success!', 'dish': created_dish.to_dict(), } return jsonify(result), 201 except Exception as err: return jsonify(message="Server error!", error=err.__str__()), 500 else: return jsonify(message="Bad Request!"), 400
def delete(self, oid): if oid: try: dish_to_delete = Dish.get_dish_by_id(oid) if not dish_to_delete: return jsonify(message="Not Found!"), 404 dish_to_delete.delete() return jsonify(message="Success!"), 200 except Exception as err: return jsonify(message="Server error!", error=err.__str__()), 500 else: return jsonify(message="Bad Request!"), 400
def delete(self, oid): if oid: try: upvote_to_delete = UpVote.get_upvote_by_id(oid) if not upvote_to_delete: return jsonify(message="Not Found!"), 404 dish = Dish.get_dish_by_id(upvote_to_delete.dish_id) dish.rating -= 1 dish.update() upvote_to_delete.delete() return jsonify(message="Success!"), 200 except Exception as err: return jsonify(message="Server error!", error=err.__str__()), 500 else: return jsonify(message="Bad Request!"), 400
def get_all(self, params=None): dishes = Dish.get_all_dishes() if params: establishment_id = params.get('eid', None) limit = params.get('limit', 3) top_rated = params.get('topRated', None) featured = params.get('featured', None) if establishment_id and limit: if top_rated: dishes = Dish.get_top_dishes_by_establishment( int(establishment_id), int(limit)) else: dishes = Dish.get_all_dishes_by_establishment( int(establishment_id)) elif top_rated and limit: dishes = Dish.get_top_dishes(int(limit)) elif featured and limit: dishes = Dish.get_random_dishes(int(limit)) result_list = [dish.to_dict() for dish in dishes] result = { 'message': 'Success!', 'dishes': result_list, } return jsonify(result), 200
def get_by_id(self, oid): if oid: try: dish = Dish.get_dish_by_id(oid) if not dish: return jsonify(message='Dish Not Found!'), 404 result = { 'message': 'Success!', 'dish': dish.to_dict(), } return jsonify(result), 200 except Exception as err: return jsonify(message="Server error!", error=err.__str__()), 500 else: return jsonify(message="Bad Request!"), 400
def create(self, params): valid_params = verify_params(params, UpVote.UPVOTE_REQUIRED_PARAMS) if valid_params: try: new_upvote = UpVote(**valid_params) created_upvote = new_upvote.create() result = { 'message': 'Success!', 'upvote': created_upvote.to_dict(), } dish = Dish.get_dish_by_id(created_upvote.dish_id) dish.rating += 1 dish.update() return jsonify(result), 201 except Exception as err: return jsonify(message="Server error!", error=err.__str__()), 500 else: return jsonify(message="Bad Request!"), 400
def delete(self, oid): if oid: try: review_to_delete = Review.get_review_by_id(oid) if not review_to_delete: return jsonify(message="Not Found!"), 404 dish = Dish.get_dish_by_id(review_to_delete.dish_id) if review_to_delete.experience: dish.rating -= 2 else: dish.rating += 2 dish.update() review_to_delete.delete() return jsonify(message="Success!"), 200 except Exception as err: return jsonify(message="Server error!", error=err.__str__()), 500 else: return jsonify(message="Bad Request!"), 400
def update(self, oid, params): valid_params = verify_params(params, Dish.DISH_REQUIRED_PARAMS) if oid and valid_params: try: dish_to_update = Dish.get_dish_by_id(oid) if not dish_to_update: return jsonify(message='Dish Not Found!'), 404 for key, value in valid_params.items(): setattr(dish_to_update, key, value) dish_to_update.update() result = { "message": "Success!", "dish": dish_to_update.to_dict() } return jsonify(result), 200 except Exception as err: return jsonify(message="Server error!", error=err.__str__()), 500 else: return jsonify(message="Bad Request!"), 400