Exemplo n.º 1
0
def get_new_records() -> typing.List[Registro]:
    try:
        logger.debug("Running get from spreadsheet")
        client = get_sheet_client()
        sheet = client.open("Leishmaniose").get_worksheet(0)
        updates = []
        added = []
        for i, row in enumerate(sheet.get_all_values()):
            if i == 0:
                continue
            if row[-1] != "":
                continue
            if row[0] == "" or row[1] == "":
                continue
            try:
                reg_dict = create_dict_from_str_list(row)
                reg = Registro.new(**reg_dict)
            except Exception as e:
                logger.exception(e)
            else:
                added.append(reg)
                updates.append({
                    "range": "J" + str(i + 1),
                    "values": [[reg.reg_data_adicionado]]
                })

        sheet.batch_update(updates)
    except Exception as e:
        logger.exception(e)
        raise
    else:
        return added
Exemplo n.º 2
0
def api_registrar():
    try:
        logger.debug(f"Request of register: {request.form}")
        reg = Registro.new(
            **{
                f"reg_{dado['nome']}": request.form[f"reg_{dado['nome']}"]
                for dado in utils.get_data() if dado["coletar"]
            })
    except KeyError as e:
        logger.exception(e)
        return Response(
            response=f"Erro ao adicionar registro, dados insuficientes",
            status=400)
    except Exception as e:
        logger.exception(e)
        return Response(response=f"Erro ao adicionar registro", status=400)
    else:
        logger.debug("Register success")
        return Response(
            response=f"""Adicionado com sucesso: '{reg.brief()}'""",
            status=201)