def user_update(email): error = None actions = [] data = {} try: data = UserSchema().load(request.json) except ValidationError as err: error = err for key, value in data.items(): actions.append(getattr(UserModel, key).set(value)) user = UserModel.get(email) user.update(actions=actions) return { "status": "error" if error else "success", "error": error, "data": UserSchema().dump(user) }
def user_create(): error = None data = request.json try: data = UserSchema().load(request.json) except ValidationError as err: error = err if not error: user = UserModel(**data) user.save() return { "status": "error" if error else "success", "error": error, "data": data }
def create_token(cls, user: User) -> TokenSchema: """Token creation method. Args: user (User): User model instance. Returns: The created token object. """ user_data = UserSchema.from_orm(user) now = datetime.utcnow() token = jwt.encode( { 'iat': now, 'nbf': now, 'exp': now + timedelta(seconds=settings.token_expires), 'sub': str(user_data.id), 'user_id': str(user_data.id) }, settings.secret_key, algorithm=settings.crypt_algorithm) return TokenSchema(access_token=token)
from schemas.users import UserSchema from werkzeug.security import safe_str_cmp from marshmallow import ValidationError import json from flask_jwt_extended import ( create_access_token, create_refresh_token, jwt_required, get_jwt_identity ) BLANK_ERROR = "{} cannot be left blank!" CREDENTIAL_ERROR = "Invalid Credentials." RETRIEVAL_ERROR = "Error retrieving user." user_schema = UserSchema() class CurrentUser(Resource): @jwt_required() def get(self): try: user_id = get_jwt_identity() user = UserModel.find_by_id(user_id) if user is not None: return {"success": True, "user": user.json()}, 200 except ValidationError as err: return err.messages, 400 return {"success": False, "message": RETRIEVAL_ERROR}
from flask import request from flask_restful import Resource from flask_jwt_extended import create_access_token, jwt_required, get_raw_jwt, get_jwt_claims from blacklist import blacklist from models.users import User from schemas.users import UserSchema User_schema = UserSchema() User_list_schema = UserSchema(many=True) class UserLogin(Resource): @classmethod def post(cls): email = request.form["email"] password = request.form["password"] user = User.authenticate(email, password) if not user: return {"msg": "Password ou email incorretos"}, 401 access_token = create_access_token(identity={ "email": user.email, "id": user.idUser }) return { 'access_token': "Bearer " + access_token, 'idUser': user.idUser }, 200 @classmethod
from models.users import UserModel from schemas.users import UserSchema from utils.extensions import db user_schema = UserSchema() users_schema = UserSchema(many=True) def get_user_by_user_id(user_id): return UserModel.query.filter(user_id == UserModel.user_id).first() def get_user_by_username(username): return UserModel.query.filter(username == UserModel.username).first() def get_all_user(): return UserModel.query.filter().all() def db_commit(): return db.session.commit() def db_add(user): return db.session.add(user) def db_delete(user): return db.session.delete(user)
def user_list(): return {"user_list": UserSchema(many=True).dump(UserModel.scan())}