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
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)