def post(self): # create user model user_json = request.get_json().get("user") user = user_schema.load(user_json) # check email and userame if UserModel.find_by_username(user.username): raise BadRequest("A user with that username already exists") if UserModel.find_by_email(user.email): raise BadRequest("A user with that email already exists") # Hash the password hashed_pass = custom_pbkdf2.hash(user.password) user.password = hashed_pass # save user user.save_to_db() # create confirmation # confirmation = ConfirmationModel(user.id) # confirmation.save_to_db() # user.send_confirmation_email() # create token access_token = create_access_token(identity=user.id, expires_delta=False, fresh=True) # create refresh token refresh_token = create_refresh_token(user.id) return { "user": { "id": user.id, "username": user.username, "email": user.email, "access_token": access_token, "refresh_token": refresh_token, }, "message": "User created!", }, 201
def put(cls): # get user id user_id = get_jwt_identity() # new username newusername = request.get_json()["username"] # check if username already exists if UserModel.find_by_username(newusername): raise BadRequest("Username already exists") else: # save new user name user = UserModel.find_by_id(user_id) user.username = newusername user.save_to_db() return {"message": "Username updated", "username": newusername}, 200
def post(cls): user_json = request.get_json()["user"] user = user_schema.load(user_json) if UserModel.find_by_username(user.username): return {"message":"Username already exists"}, 400 if UserModel.find_by_email(user.email): return {"message":"Username already exists"}, 400 hashed_password = custom_pbkdf2.hash(user.password) user.password = hashed_password user.save_to_db() user_setting = user_setting_schema.load({"user_id":user.id}) user_setting.save_to_db() access_token = create_access_token(identity=user.id, fresh=True, expires_delta=False,user_claims={"company_id":user.company_id, "role":user.role_id}) refresh_token = create_refresh_token(user.id) return { "message":"User Logged In", "user":{ "user": { user_schema.dump(user), *{"profile_config":user_setting_schema.dump(user_setting)} } , "userToken":{ "access_token":access_token, "refresh_token":refresh_token, } }, }