def post(self): json_data = load_json() # get the email and password try: email = json_data['email'] password = json_data['password'] confirmed_password = json_data['confirmed_password'] except KeyError: return {'message': 'request must include email, password, and confirmed_password'}, 422 # check if the user exists test_user = UserModel.query.filter_by(email=email).first() if test_user: return {'message': f"There is already an account associated with {email}."}, 403 # check if the passwords match if password != confirmed_password: return {'message': 'Passwords do not match.'}, 409 # hash the password hashed_password = bcrypt.generate_password_hash(password).decode('utf-8') # create a user and add it to the database new_user = UserModel(email=email, password=hashed_password) db.session.add(new_user) db.session.commit() return {'status': 'success'}, 201
def post(self): data = parser.parse_args() if UserModel.find_by_username(data['username']): return {'message': f"{data['username']} already exists!!"}, 400 new_user = UserModel(username=data['username'], password=UserModel.generate_hash( data['password'])) try: new_user.save_to_db() access_token = create_access_token(identity=data['username']) refresh_token = create_refresh_token(identity=data['username']) return { 'message': f"User {data['username']} was created.", 'access_token': access_token, 'refresh_token': refresh_token }, 201 except: return {'message': 'Something went wrong'}, 500