def post(cls): user_json = request.get_json() try: user_data = user_schema.load(user_json) except ValidationError as err: return err.messages, 400 if UserModel.find_by_username(user_data.username): return { "Message": USERNAME_ALREADY_EXIST_INFO.format(user_data.username) }, 401 if UserModel.find_by_email(user_data.email): return { "Message": EMAIL_ALREADY_EXIST_INFO.format(user_data.email) }, 401 try: user_data.insert_in_db() confirmation = ConfirmationModel(user_data.id) confirmation.insert_in_db() user_data.send_confirmation_mail() return {"Message": USER_REGISTRATION_SUCCESSFUL_INFO}, 201 except MailGunException as me: user_data.delete_from_db() return {"message": str(me)} except: traceback.print_exc() return {"Message": FAILED_TO_CREATE}, 500
def post(cls, user_id: int): user = UserModel.find_by_id(user_id) if not user: return {"Message": USER_NOT_FOUND} try: confirmation = user.most_recent_confirmation if confirmation: if confirmation.is_confirmed: return {"Message": ALREADY_CONFIRMED_INFO} confirmation.force_to_expire() new_confirmation = ConfirmationModel(user_id) new_confirmation.insert_in_db() user.send_confirmation_mail() return {"Message": RESEND_SUCCESSFUL}, 201 except MailGunException as me: return {"Message": str(me)}, 501 except: traceback.print_exc() return {"Message": RESEND_FAIL}
def post(cls, user_id: int): user = UserModel.find_by_id(user_id) if not user: return {"Message": gettext("confirmation_user_not_found").format(user_id)}, 401 try: confirmation = user.most_recent_confirmation if confirmation: if confirmation.is_confirmed: return {"Message": gettext("confirmation_already_confirmed")}, 401 confirmation.force_to_expire() new_confirmation = ConfirmationModel(user_id) new_confirmation.insert_in_db() user.send_confirmation_mail() return {"Message": gettext("confirmation_mail_resend_successful")}, 201 except MailGunException as me: return {"Message": str(me)}, 501 except: traceback.print_exc() return {"Message": gettext("confirmation_mail_resend_failed")}, 401
def post(cls): user_json = request.get_json() try: user_data = user_schema.load(user_json) user_data.password = generate_password_hash(user_data.password) print(user_data.password) except ValidationError as err: return err.messages, 401 if UserModel.find_by_username(user_data.username): return { "Message": gettext("user_username_already_exist").format( user_data.username) }, 401 if UserModel.find_by_email(user_data.email): return { "Message": gettext("user_email_already_exist").format(user_data.email) }, 401 try: user_data.insert_in_db() confirmation = ConfirmationModel(user_data.id) confirmation.insert_in_db() user_data.send_confirmation_mail() return {"Message": gettext("user_registration_successful")}, 201 except MailGunException as me: user_data.delete_from_db() return {"Message": gettext("user_email_sending_failed")}, 501 except: traceback.print_exc() return {"Message": gettext("user_internal_server_error")}, 501