feat: add Models+Schema and User Controller

This commit is contained in:
2022-09-08 23:16:13 +02:00
parent 388cfbdc94
commit 990dd967dc
12 changed files with 236 additions and 64 deletions

View File

@@ -1,8 +1,11 @@
from flask import request
from Models.User import User
from Models.Role import Role
from Models.Tenant import Tenant
from Models.Schema import user_schema, users_schema
from flask_restful import Resource, abort
from app import db
from datetime import datetime
from werkzeug.security import generate_password_hash
from flask_jwt_extended import create_access_token, get_jwt_identity, jwt_required, JWTManager, current_user
@@ -14,10 +17,22 @@ class UserListResource(Resource):
@jwt_required()
def post(self):
tenants_array= []
for tenant_id in request.json['tenants']:
tenants_array.append(Tenant.query.filter_by(id=tenant_id).first())
roles_array= []
for role_id in request.json['roles']:
roles_array.append(Role.query.filter_by(id=role_id).first())
new_user = User(
name=request.json['name'],
firstname=request.json['firstname'],
lastname=request.json['lastname'],
username=request.json['username'],
email=request.json['email'],
password=generate_password_hash(request.json['password'])
password=generate_password_hash(request.json['password']),
tenants=tenants_array,
roles=roles_array,
creation=datetime.now(),
update=datetime.now()
)
db.session.add(new_user)
db.session.commit()
@@ -34,9 +49,22 @@ class UserResource(Resource):
def put(self, user_id):
user = User.query.get_or_404(user_id)
user.name = request.json['name']
user.email = request.json['email']
user.password = generate_password_hash(request.json['password'])
tenants_array= []
for tenant_id in request.json['tenants']:
tenants_array.append(Tenant.query.filter_by(id=tenant_id).first())
roles_array= []
for role_id in request.json['roles']:
roles_array.append(Role.query.filter_by(id=role_id).first())
user.firstname=request.json['firstname']
user.lastname=request.json['lastname']
user.username=request.json['username']
user.email=request.json['email']
user.password=generate_password_hash(request.json['password'])
user.tenants=tenants_array
user.roles=roles_array
user.creation=datetime.now()
user.update=datetime.now()
db.session.commit()
return user_schema.dump(post)
@@ -45,12 +73,28 @@ class UserResource(Resource):
def patch(self, user_id):
user = User.query.get_or_404(user_id)
if 'name' in request.json:
user.name = request.json['name']
if 'firstname' in request.json:
user.firstname=request.json['firstname']
if 'lastname' in request.json:
user.lastname=request.json['lastname']
if 'username' in request.json:
user.username=request.json['username']
if 'email' in request.json:
user.email = request.json['email']
user.email=request.json['email']
if 'password' in request.json:
user.password = generate_password_hash(request.json['password'])
user.password=generate_password_hash(request.json['password'])
if 'tenants' in request.json:
tenants_array= []
for tenant_id in request.json['tenants']:
tenants_array.append(Tenant.query.filter_by(id=tenant_id).first())
user.tenants=tenants_array
if 'roles' in request.json:
roles_array= []
for role_id in request.json['roles']:
roles_array.append(Role.query.filter_by(id=role_id).first())
user.roles=roles_array
user.update=datetime.now()
db.session.commit()
return user_schema.dump(post)