def incluir_pessoa():
    resposta = jsonify({
        "resultado": "Sucesso!",
        "detalhes": "Seu cadastro foi um sucesso!"
    })
    dados = request.get_json()
    try:
        pessoa = Pessoa(**dados)
        #Coloquei a foto de perfil como opcional, então a pessoa pode ter, ou não.
        if (dados["fotoperfil"] != None):
            pessoa.fotoperfil = salvar_imagem_perfil('/imagens',
                                                     (dados["fotoperfil"]))
        #Retiro os caracteres da máscara do cpf, afim de não causar maus entendidos no db.
        #Escolhi o cpf como chave primária por conta de que aprendi que quando mexemos com pessoas em banco de dados
        #essa é a melhor opção.
        pessoa.cpf = pessoa.cpf.replace(".", "")
        pessoa.cpf = pessoa.cpf.replace("-", "")
        sala1 = pessoa.sala_um_id
        sala2 = pessoa.sala_dois_id
        espaco1 = pessoa.espacocafe_um_id
        espaco2 = pessoa.espacocafe_dois_id
        #Aqui, dependendo da sala que a pessoa escolher, eu faço a lotação aumentar.
        if sala1 == sala2:
            salaescolhida = Sala.query.get(sala1)
            salaescolhida.lotacao += 1
        else:
            salaescolhida1 = Sala.query.get(sala1)
            salaescolhida1.lotacao += 1
            salaescolhida2 = Sala.query.get(sala2)
            salaescolhida2.lotacao += 1
        db.session.add(pessoa)
        db.session.commit()
    except Exception as e:
        resposta = jsonify({"resultado": "Erro!", "detalhes": str(e)})
    resposta.headers.add("Access-Control-Allow-Origin", "*")
    return resposta
Example #2
0
def alterar_pessoa():

    nome_pessoa = request.args.get("nome_pessoa")
    idade = request.args.get("idade")
    genero = request.args.get("genero")
    cpf = request.args.get("cpf")

    for i in range(len(lista_pessoas)):
        if lista_pessoas[i].nome_pessoa == nome_original:
            indice = i
            break

    if indice >= 0:
        lista_pessoas[indice] = Pessoa(nome_pessoa, idade, ida, volta)

    return listar_pessoa()
Example #3
0
    def add_aluno(self, data):
        try:
            p = Pessoa(data['nome'], data['email'], data['telefone'])
            pessoa = self.ctrl_pessoa.add_pessoa(p)

            aluno = Aluno(pessoa['idx'])
            aluno.resumo = data.get('resumo')
            aluno.idx = random.randint(0x0000, 0xffff)
            db.session.add(aluno)
            db.session.commit()

            return self.dump_aluno(aluno)

        except IntegrityError as e:
            db.session.rollback()

            raise e
Example #4
0
def cadastar_Pessoa():
    resp = jsonify({"resultado": "ok", "detalhes": "ok"})

    dados = request.get_json()
    try:
        nova_p = Pessoa(**dados)
        db.session.add(nova_p)

        add_p_sala(nova_Pessoa.sala_1_id, nova_Pessoa.id_pessoa, 1)
        add_p_cafe(nova_Pessoa.ecafe_1_id, nova_Pessoa.id_pessoa, 1)

        db.session.commit()

    except Exception as x:
        resposta = jsonify({"resultado": "erro", "detalhes": str(x)})

    resp.headers.add("Access-Control-Allow-Origin", "*")

    return resp
Example #5
0
    def add_professor(self, nome, email, senha, telefone, sala):
        pessoa = Pessoa(nome, email, telefone)
        pessoa_dict = self.ctrl_pessoa.add_pessoa(pessoa)

        professor = Professor(pessoa_dict['idx'], sala)

        try:
            professor.idx = random.randint(0x0000, 0xffff)
            user = User(email, senha, professor.idx)
            db.session.add(professor)
            db.session.add(user)
            db.session.commit()

            return self.dump_professor(professor)

        except IntegrityError as e:
            db.session.rollback()

            return dict(error='IntegrityError', message=str(e))
Example #6
0
def incluir_pessoa():

    #info básica
    form_nome_pessoa = request.args.get("input_nome_pessoa")
    form_idade = request.args.get("input_idade")
    form_genero = request.args.get("input_genero")
    form_cpf = request.args.get("input_cpf")

    nova_pessoa = Pessoa(model_pk=lista_pessoas[-1].pk +
                         1 if lista_pessoas else 1,
                         model_nome_pessoa=form_nome_pessoa,
                         model_idade=form_idade,
                         model_genero=form_genero,
                         model_cpf=form_cpf)

    lista_pessoas.append(nova_pessoa)

    return render_template(
        'success_pessoa.html',
        mensagem=f"Pessoa {nova_pessoa.nome_pessoa} foi inserida com sucesso!")
Example #7
0
from model import Pessoa, calc_por

with open("../pessoas.csv", 'r') as file:
    arr = []
    next(file)
    for linha in file:
        nome, idade, sexo = linha.strip().split(',')
        arr.append(Pessoa(nome, idade, sexo))

    result = calc_por(arr)
    cols = [
        'Porcentagem de Homens', 'Porcentagem de Mulheres',
        'Quantidade de maiores de idade', 'Quantidade de menores de idade'
    ]
    with open("estatisticas.csv", 'w') as out_file:
        out_file.write('Análise estatistica do arquivo pessoas.csv\n')
        out_file.write(','.join(cols) + '\n')
        out_file.write(','.join(list(map(str, result))) + '\n')
Example #8
0
def listar_pessoas():
    p = db.session.query(Pessoa).all()
    p_js = [Pessoa.json() for Pessoa in p]
    return (jsonify(p_js))
Example #9
0
def lambda_handler(event, context):
    # table column names
    person_keys = [
        'nome_completo', 'email', 'username', 'password', 'genero', 'photo'
    ]
    # names where i will use the similarity function
    # These names are the same from that we get flatted dicts
    person_keys_words = [['name_first', 'name_last'], ['email'],
                         ['login_username'], ['login_password'], ['gender'],
                         ['picture_large']]
    person = dict.fromkeys(person_keys, None)
    person_search = {}
    # now i nest boot dicts, each column name with yours keys
    # i do the same with address data
    for key, value in zip(person_keys, person_keys_words):
        person_search[key] = {}
        for v in value:
            person_search[key][v] = {}

    address_keys = ['rua', 'numero', 'cidade', 'estado']
    address_keys_words = [['location_street_name'], ['location_street_number'],
                          ['location_city'], ['location_state']]
    address = dict.fromkeys(address_keys, None)
    address_search = {}
    for key, value in zip(address_keys, address_keys_words):
        address_search[key] = {}
        for v in value:
            address_search[key][v] = {}

    # get data from API
    response = requests.get('https://randomuser.me/api/')
    json_data = json.loads(response.text)
    user_data = json_data['results'][0]
    # flat json data
    user_data_flatt = flatten(user_data)

    person_search = join_data(person_search, user_data_flatt)
    address_search = join_data(address_search, user_data_flatt)

    person_dict = clean_dict(person_search, person)
    address_dict = clean_dict(address_search, address)

    # get image data
    response = requests.get(person_dict["photo"])
    #response.raw.decode_content = True
    # convert to base to be possible to save in postgres
    person_dict["photo"] = b64encode(response.content)

    # create connection and session with database
    engine = create_engine(db_string, echo=True)
    Session = sessionmaker(bind=engine)
    s = Session()
    pessoa = Pessoa(**person_dict)
    # add data and get get the instance primary key to be used as foreign key in address instance
    s.add(pessoa)
    s.flush()

    pessoa_id = pessoa.id
    address_dict["pessoa_id"] = pessoa.id
    endereco = Endereco(**address_dict)
    s.add(endereco)
    s.commit()
    s.close()

    # save raw data in s3 bucket, this ios important to data scientists and machine learning engineers
    bucket_name = "rbs-case"
    file_name = str(pessoa_id) + ".json"
    s3_path = "randomuser/" + file_name

    json_data["aquisition_date"] = "{:%Y%m%d_%H%M%s}".format(datetime.now())