2023-12-19 22:54:15 +04:00

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])