83 lines
2.4 KiB
Python
83 lines
2.4 KiB
Python
from flask_restful import reqparse, abort, Resource
|
|
from . import db_session
|
|
from recources.Model.Dish import Dish
|
|
|
|
from flask import jsonify
|
|
|
|
|
|
def abort_if_dish_not_found(dish_id):
|
|
db_sess = db_session.create_session()
|
|
user = db_sess.query(Dish).get(dish_id)
|
|
if not user:
|
|
abort(404, message=f'Dish {dish_id} not found')
|
|
|
|
|
|
parser = reqparse.RequestParser()
|
|
parser.add_argument('name', required=True)
|
|
parser.add_argument("description", required=True)
|
|
parser.add_argument("image", required=True)
|
|
parser.add_argument("userId", required=True)
|
|
parser.add_argument("categoryId", required=True)
|
|
|
|
|
|
class DishResource(Resource):
|
|
def get(self, dish_id):
|
|
abort_if_dish_not_found(dish_id)
|
|
db_sess = db_session.create_session()
|
|
dish = db_sess.query(Dish)
|
|
return jsonify(dish.to_dict())
|
|
|
|
def delete(self, dish_id):
|
|
abort_if_dish_not_found(dish_id)
|
|
db_sess = db_session.create_session()
|
|
dish = db_sess.query(Dish).get(dish_id)
|
|
db_sess.delete(dish)
|
|
db_sess.commit()
|
|
return jsonify({'success': 'OK'})
|
|
|
|
def put(self, dish_id):
|
|
abort_if_dish_not_found(dish_id)
|
|
args = parser.parse_args()
|
|
db_sess = db_session.create_session()
|
|
|
|
dish = db_sess.query(Dish).get(dish_id)
|
|
dish.name = args["name"]
|
|
dish.description = args["description"]
|
|
dish.image = args["image"]
|
|
dish.userId = args["userId"]
|
|
dish.categoryId = args["categoryId"]
|
|
|
|
db_sess.commit()
|
|
|
|
return jsonify({'success': 'OK'})
|
|
|
|
|
|
class DishListResource(Resource):
|
|
def get(self):
|
|
session = db_session.create_session()
|
|
categories = session.query(Dish).all()
|
|
return jsonify([item.to_dict() for item in categories])
|
|
|
|
def post(self):
|
|
args = parser.parse_args()
|
|
db_sess = db_session.create_session()
|
|
|
|
dish = Dish()
|
|
dish.name = args["name"]
|
|
dish.description = args["description"]
|
|
dish.image = args["image"].encode()
|
|
dish.userId = args["userId"]
|
|
dish.categoryId = args["categoryId"]
|
|
|
|
db_sess.add(dish)
|
|
db_sess.commit()
|
|
|
|
return jsonify({'success': 'OK'})
|
|
|
|
|
|
class DishUserListResource(Resource):
|
|
def get(self, user_id):
|
|
session = db_session.create_session()
|
|
categories = session.query(Dish).where(Dish.userId == user_id)
|
|
return jsonify([item.to_dict() for item in categories])
|