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