예제 #1
0
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()})
예제 #2
0
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})
예제 #3
0
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") 
예제 #4
0
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()})
예제 #5
0
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})
예제 #6
0
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()})
예제 #7
0
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()})
예제 #8
0
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)