def processReset(): csrf.protect() username = request.form["pass_reset_email"] password = request.form["pass_reset_password"] confirmPass = request.form["pass_reset_confirm_password"] passSize = len(password) if not username: return jsonify({'message': Message('Oops! Usuário inexistente').alert().render()}) if passSize < CONF_PASS_MIN_LENGTH or passSize > CONF_PASS_MAX_LENGTH: return jsonify({'message': Message(f"Oops! A senha precisa conter entre {CONF_PASS_MIN_LENGTH} e {CONF_PASS_MAX_LENGTH} caracteres").alert().render()}) user = User.findByEmail(username) if user is None: user = Customer.findByName(username) if user: if password != confirmPass: return jsonify({'message': Message('Oops! A senha e confirmação de senha precisam ser iguais').alert().render()}) try: user.password = passHash(password) db.session.commit() return jsonify({'message': Message('Senha redefinida com sucesso').success().render()}) except: return jsonify({'message': Message('Oops! Erro ao processar os dados. Tente novamente mais tarde').error().render()}) else: return jsonify({'message': Message('Oops! Usuário não encontrado').alert().render()})
def searchRecom(): csrf.protect() data = request.form["case_desc"] if data: session["case_desc"] = data start = time.time() dataFrame = TrainModel.generateDataframe() prediction = TrainModel.trainPredict(dataFrame, data) # classifier = load('cidsystem/persist/model.joblib') # vectorizer = load('cidsystem/persist/vector.joblib') # prediction = TrainModel.predictSentence([data], classifier, vectorizer) f1 = load('cidsystem/persist/f1-score.joblib') print("f1 Joblib: {}".format(f1)) end = time.time() diff = end - start print("Time:") print(diff) if prediction: predictedCid = Cid.searchById(int(prediction[0])) session["predicted"] = predictedCid.serialize return jsonify({'redirect': url_for('result')}) else: message = Message('Favor inserir a descrição para busca').info().render() return jsonify({'message': message})
def searchText(): if request.method == 'POST': csrf.protect() search = request.form["search_text"] if search: return jsonify({'redirect': url_for('searchTextRes', search=search, page_num=1)}) else: return jsonify({'message': Message('Oops! Favor incluir o texto para busca').alert().render()}) return render_template('text-search.html', title='Busca de Classificações Internacionais de Doenças - CID´s', description="Pesquisa a Classificação Internacional de Doenças (CID) mais adequada para o seu caso")
def postContact(): csrf.protect() hospitalName = request.form["contact_api_hospital"] prospectName = request.form["contact_api_name"] prospectEmail = request.form["contact_api_email"] prospectTel = request.form["contact_api_tel"] email = Email(f"Contato para Integração: {hospitalName}", recipients=['*****@*****.**']) checkMail = email.bootstrap('support/api-contact-email.html', hospitalName, prospectName, prospectEmail, prospectTel).sendMail(mail) if checkMail: return jsonify({'message': Message('Contato enviado com sucesso').success().render()}) else: return jsonify({'message': Message('Oops! Não foi possível enviar o e-mail. Tente novamente mais tarde').error().render()})
def login(): if request.method == 'POST': csrf.protect() logForm = LoginForm(request.form) if logForm.validate_on_submit(): user = User.query.filter_by(email=logForm.adminEmail.data).first() if user and checkPass(user.password, logForm.adminPass.data): login_user(user, remember=logForm.remember.data) flash(f'Login realizado com sucesso {user.name} :)', 'success') return jsonify({'redirect': url_for('adminHome')}) else: flash(f'Oops! E-mail ou senha incorretos', 'alert'); return jsonify({'reload': True})
def initAdminReset(): csrf.protect() email = request.form["admin_email"] emailBytes = email.encode('ascii') base64Bytes = base64.b64encode(emailBytes) link = base64Bytes.decode('ascii') bootstrap = User.bootstrapResetPass(email) checkClass = isinstance(bootstrap, Email) if checkClass: bootstrap.bootstrapReset('support/reset-password.html', email, link, "admin") if bootstrap.sendMail(mail): return jsonify({'message': Message("Um e-mail com as instruções para reset de senha foi enviado :)").success().render()}) return jsonify({'message': Message("Erro ao enviar o e-mail. Tente mais tarde").error().render()}) return jsonify({'message': Message("Oops! Cliente não foi encontrado. Digite outro e-mail").alert().render()})
def collectFeedback(): csrf.protect() form = request.form code = form["cid"] caseDescription = form["case_description"] helpfull = bool(form["aux_feedback"]) cid = Cid.searchByCode(code) if not cid: return jsonify({'message': Message('Oops! Cid não encontrado').alert().render()}) feedback = Feedback(cid.id, caseDescription, helpfull) try: feedback.saveToDb() return jsonify({'message': Message('Agradecemos seu feedback. Volte sempre :)').success().render()}) except: return jsonify({'message': Message('Oops! Ocorreu um erro. Tente novamente mais tarde').error().render()})
def admin_register(): csrf.protect() regForm = RegistrationForm(request.form) if request.method == 'POST': if not regForm.validateByEmail(regForm.adminEmail.data): flash(f"Oops! O e-mail já foi cadastrado", 'alert'); return jsonify({'reload': True}); if regForm.validate_on_submit(): pHash = passHash(regForm.adminPass.data) user = User(name=regForm.adminName.data, surname=regForm.adminSurname.data, email=regForm.adminEmail.data, password=pHash) db.session.add(user) db.session.commit() flash(f'Conta criada para {regForm.adminName.data} :)', 'success') return jsonify({'reload': True}) else: for error in regForm.errors.items(): flash(f"Oops! {error[1][0]} =/", 'alert') return jsonify({'reload': True}) if current_user.is_authenticated: return render_template('admin/home.html') return render_template('admin-register.html', title=CONF_REGISTER_TITLE, form=regForm, description=CONF_REGISTER_DESCRIPTION, noIndex=True)