Commit 34768301 authored by Willard's avatar Willard

Add stall edit and delete reviews

parent bc2b90de
......@@ -129,7 +129,7 @@ def create_dish_review(dish_id):
review = DishReview(title, body, rating, user_id, dish_id)
db.session.add(review)
db.session.commit()
return jsonify(review_obj(review))
return jsonify(dish_review_obj(review))
@app.route('/api/dishes/<int:dish_id>/reviews/<int:dish_review_id>', methods=['PUT'])
@auth.login_required
......@@ -141,7 +141,7 @@ def edit_dish_review(dish_id, dish_review_id):
review.body = request.json['body']
review.rating = float(request.json['rating'])
db.session.commit()
return jsonify(review_obj(review))
return jsonify(dish_review_obj(review))
@app.route('/api/dishes/<int:dish_id>/reviews/<int:dish_review_id>', methods=['DELETE'])
@auth.login_required
......@@ -163,7 +163,7 @@ def dish_reviews(dish_id):
reviews = dish.reviews.all()
data = []
for review in reviews:
data.append(review_obj(review))
data.append(dish_review_obj(review))
return jsonify(data)
@app.route('/api/stalls', methods=['GET'])
......@@ -182,7 +182,7 @@ def get_dishes_by_stall(stall_id):
@app.route('/api/dishes/<int:dish_id>/reviews/<int:review_id>', methods=['GET'])
def dish_review(dish_id, review_id):
review = Dish.query.get(dish_id).reviews.filter_by(id=review_id).first()
return jsonify(review_obj(review))
return jsonify(dish_review_obj(review))
@app.route('/api/stalls/<int:stall_id>/favorites', methods=['GET', 'POST'])
@auth.login_required
......@@ -210,20 +210,44 @@ def create_stall_review(stall_id):
review = StallReview(title, body, rating, user_id, stall_id)
db.session.add(review)
db.session.commit()
return jsonify(review_obj(review))
return jsonify(stall_review_obj(review))
@app.route('/api/stalls/<int:stall_id>/reviews/<int:stall_review_id>', methods=['PUT'])
@auth.login_required
def edit_stall_review(stall_id, stall_review_id):
review = StallReview.query.get(stall_review_id)
if review is None or g.user.id != review.user_id:
return abort(401)
review.title = request.json['title']
review.body = request.json['body']
review.rating = float(request.json['rating'])
db.session.commit()
return jsonify(stall_review_obj(review))
@app.route('/api/stalls/<int:stall_id>/reviews/<int:stall_review_id>', methods=['DELETE'])
@auth.login_required
def delete_stall_review(stall_id, stall_review_id):
review = StallReview.query.get(stall_review_id)
if review is None or g.user.id != review.user_id:
return abort(401)
db.session.delete(review)
db.session.commit()
return {
'message': 'Review deleted successfully'
}, 200
@app.route('/api/stalls/<int:stall_id>/reviews', methods=['GET'])
def stall_reviews(stall_id):
reviews = Stall.query.get(stall_id).reviews.all()
data = []
for review in reviews:
data.append(review_obj(review))
data.append(stall_review_obj(review))
return jsonify(data)
@app.route('/api/stalls/<int:stall_id>/reviews/<int:review_id>', methods=['GET'])
def stall_review(stall_id, review_id):
review = Stall.query.get(stall_id).reviews.filter_by(id=review_id).first()
return jsonify(review_obj(review))
return jsonify(stall_review_obj(review))
def dish_obj(dish):
if dish is None:
......@@ -246,7 +270,7 @@ def stall_obj(stall):
'location': Location.query.get(stall.location_id).name
}
def review_obj(review):
def dish_review_obj(review):
if review is None:
return None
return {
......@@ -257,4 +281,17 @@ def review_obj(review):
'user': User.query.get(review.user_id).username,
'user_id': review.user_id,
'dish_id': review.dish_id
}
def stall_review_obj(review):
if review is None:
return None
return {
'id': review.id,
'title': review.title,
'body': review.body,
'rating': review.rating,
'user': User.query.get(review.user_id).username,
'user_id': review.user_id,
'stall_id': review.stall_id
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment