def get(cls): resp = github.authorized_response() if resp is None or resp.get("access_token") is None: error_response = { "error": request.args["error"], "error_description": request.args["error_description"] } return error_response g.access_token = resp['access_token'] github_user = github.get('user') github_username = github_user.data['login'] user = UserModel.find_by_username(github_username) if not user: user = UserModel(username=github_username, password=None) user.save_to_db() confirmation = ConfirmationModel(user.id) confirmation.confirmed = True confirmation.expire_at = 0 confirmation.save_to_db() access_token = create_access_token(identity=user.id, fresh=True) refresh_token = create_refresh_token(user.id) return { "access_token": access_token, "refresh_token": refresh_token }, 200
def post(cls): user = user_schema.load(request.get_json()) if UserModel.find_by_email(user.email): return {"message": "Email already exist"}, 400 if UserModel.find_by_contact(user.contact): return {"message": "contact already registered"}, 400 try: user.save_to_db() confirmation = ConfirmationModel(user.id) confirmation.confirmed = False confirmation.save_to_db() res = user.send_confirmation_email() return {"message": "User created"}, 201 except: traceback.print_exc() user.delete_from_db() return {"message": "User creating error"}, 500