70 lines
1.9 KiB
Python
Raw Permalink Normal View History

2023-12-19 22:54:15 +04:00
from flask_restful import reqparse, abort, Resource, marshal_with, fields
from . import db_session
from recources.Model.User import User
from flask import jsonify
def abort_if_user_not_found(user_id):
db_sess = db_session.create_session()
user = db_sess.query(User).get(user_id)
if not user:
abort(404, message=f'User {user_id} not found')
parser = reqparse.RequestParser()
parser.add_argument('nickname', required=True)
parser.add_argument('email', required=True)
parser.add_argument('password', required=True)
class UserResource(Resource):
def get(self, user_id):
abort_if_user_not_found(user_id)
db_sess = db_session.create_session()
users = db_sess.query(User).get(user_id)
return jsonify(
users.to_dict()
)
def delete(self, user_id):
abort_if_user_not_found(user_id)
db_sess = db_session.create_session()
user = db_sess.query(User).get(user_id)
db_sess.delete(user)
db_sess.commit()
return jsonify({'success': 'OK'})
def put(self, user_id):
abort_if_user_not_found(user_id)
args = parser.parse_args()
db_sess = db_session.create_session()
user = db_sess.query(User).get(user_id)
user.nickname = args["nickname"]
user.email = args["email"]
user.set_password(args["password"])
db_sess.commit()
return jsonify({'success': 'OK'})
class UsersListResource(Resource):
def get(self):
session = db_session.create_session()
user = session.query(User).all()
return jsonify([item.to_dict() for item in user])
def post(self):
args = parser.parse_args()
db_sess = db_session.create_session()
user = User()
user.nickname = args["nickname"]
user.email = args["email"]
user.set_password(args["password"])
db_sess.add(user)
db_sess.commit()
return jsonify(user.to_dict())