Planets
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

46 lines
1.7 KiB

from flask_apispec import marshal_with, doc, use_kwargs
from flask_apispec.views import MethodResource
from flask_restful import Resource
from schemes import (UserSchema, UserResponseSchema)
from config import db
from models import User
#!______________ User ______________
class UserService(MethodResource, Resource):
@doc(description='Get User by User_id', tags=['User'])
@marshal_with(UserResponseSchema)
def get(self, user_id):
quser = db.session.query(User).get(user_id)
return UserSchema().dump(quser)
@doc(description='Add new User', tags=['User'])
@use_kwargs(UserSchema, location=('json'))
@marshal_with(UserResponseSchema())
def post(self, user, user_id):
db.session.add(user)
db.session.commit()
return UserSchema().dump(user)
@doc(description='Update User with PUT', tags=['User'])
@use_kwargs(UserSchema, location=('json'))
@marshal_with(UserResponseSchema())
def put(self, user, user_id):
db.session.add(user)
db.session.commit()
return UserSchema().dump(user)
@doc(description='Delete existing User', tags=['User'])
@use_kwargs(UserSchema, location=('json'))
@marshal_with(UserResponseSchema())
def delete(self, user, user_id):
user = db.session.query(User).get(user_id)
db.session.delete(user)
db.session.commit()
return UserSchema().dump(user)
class UserListService(MethodResource, Resource):
@doc(description='Get a List of all User', tags=['List'])
@marshal_with(UserResponseSchema(many=True))
def get(self):
users = db.session.query(User).all()
return UserSchema(many=True).dump(users)