def user_login(): try: payload = UserLoginSchema().load(request.json) user = UserHandler.get_user_from_email(payload.get('email')) UserHandler.verify_password(password=payload.get('password'), stored_hash=user.password_hash, salt=user.password_salt) except ValidationError as error: return error.messages, 422 except (UserNotFoundException, PasswordMismatchException) as e: return {"error": "Failed login attempt"}, 401 UserSessionHandler.invalidate_active_sessions(user) token = UserSessionHandler.generate_session_jwt(user.user_id) return jsonify({"token": token}), 201
def user_register(): try: payload = NewUserInputSchema().load(request.json) new_user = UserHandler.create_new_user(**payload) except ValidationError as error: return error.messages, 422 except RepeatEmailException: return jsonify(message="Email is already being used"), 422 out = UserSchema().dump(new_user) return jsonify(out), 201
def invalidate_user_session(): user_id = get_jwt_identity() user = UserHandler.get_user_from_id(user_id) UserSessionHandler.invalidate_active_sessions(user) return jsonify(message=f"Terminated sessions for #{user_id}"), 201
def getAllContactsFor(id): if request.method == 'GET': return UserHandler().getUserContacts(id) elif request.method == 'POST': return ContactHandler().insertContact(id, request.get_json())
def getOwnerOfGroup(self, id): # dao = GroupDAO() result = dao.getOwnerOfGroup(id) if result is None: return jsonify(Error="NOT FOUND"), 404 return jsonify(Owner=UserHandler().ownerToDict(result))
def getAllUsers(): if not request.args: return UserHandler().getAllUsers() else: return UserHandler().searchUser(request.args)
def getUserByID(): return UserHandler().getUserById(request.headers)
def getProfileById(id): return UserHandler().profileInfoById(id)
def register(): if request.method == 'POST': return UserHandler().insertUser(request.get_json())
def login(): if request.method == 'POST': return UserHandler().login(request.get_json())