Skip to content

Commit 6c87b02

Browse files
Corrigindo bugs da CLI
1 parent d3972e3 commit 6c87b02

File tree

2 files changed

+22
-21
lines changed

2 files changed

+22
-21
lines changed

app/app.py

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
validate_table,
1010
validate_id,
1111
)
12-
from .modules.exceptions import RequestError, InvalidResponseError, ValidateError
1312

1413

1514
class App:
@@ -21,6 +20,7 @@ def __init__(self) -> None:
2120
self.url = "http://127.0.0.1:5000"
2221
self.table = None
2322
self.valid = True
23+
self.ids = []
2424

2525
def clear(self) -> None:
2626
"""
@@ -106,32 +106,32 @@ def input_id(self, option: str) -> int:
106106
sleep(1)
107107
self.get(option, search=True, method=option)
108108
if self.valid:
109-
id = str(input("Informe o id: ")).strip()
110-
id_valid = validate_id(id)
111-
if not id_valid:
112-
input("APERTE ENTER PARA CONTINUAR")
109+
while not id_valid:
110+
id = str(input("Informe o id: ")).strip()
111+
id_valid = validate_id(id, self.ids)
112+
if not id_valid:
113+
input("APERTE ENTER PARA CONTINUAR")
114+
self.menu_option(option)
115+
self.get(option, search=True, method=option)
113116
else:
114117
return None
118+
115119
except ValueError:
116120
print("ID inválido. Por favor, insira um número válido.")
117121
input("APERTE ENTER PARA CONTINUAR")
118122
return int(id)
119123

120124
def view_dados(self, dados: list[list], option: str, id: bool = False):
121125
dados_list = ["id", "nome", "marca", "ano"]
122-
self.menu_option(option)
123126
if id:
124127
self.menu_option("ids")
125128
if dados:
126129
for dado in dados:
127-
if len(dado) < len(dados_list):
128-
print("Dados incompletos encontrados!")
129-
input("APERTE ENTER PARA CONTINUAR")
130-
continue
131130
if id:
132131
nome = dado[1]
133-
valor = dado[0]
134-
print(f"{valor:<3} -> {nome}")
132+
valor_id = dado[0]
133+
self.ids.append(valor_id)
134+
print(f"{valor_id:<3} -> {nome}")
135135
else:
136136
self.menu_option(option)
137137
for indice, campo in enumerate(dados_list):
@@ -287,7 +287,6 @@ def get(self, option: str = "get", search: bool = False, method: str = "") -> No
287287
try:
288288
dados = response.json()
289289
except ValueError:
290-
self.menu_option(option)
291290
print("Erro ao decodificar a resposta JSON.")
292291
input("APERTE ENTER PARA CONTINUAR")
293292
dados = json.loads(dados.get("content"))
@@ -302,15 +301,14 @@ def get(self, option: str = "get", search: bool = False, method: str = "") -> No
302301
else:
303302
print("Falha ao obter dados após várias tentativas.")
304303
input("APERTE ENTER PARA CONTINUAR")
305-
tentativas += 1
306-
if not search:
307304
if self.voltar_menu(option):
308305
break
309306
else:
310307
self.menu_option(option)
311-
print(f"Reiniciando método: {option}")
308+
print(f"Reiniciando método: {option}...")
312309
sleep(1)
313310
continue
311+
tentativas += 1
314312
except requests.RequestException as e:
315313
print(f"Erro na requisição: {e}")
316314
input("APERTE ENTER PARA CONTINUAR")
@@ -326,7 +324,7 @@ def patch(self) -> None:
326324
while True:
327325
option = "patch"
328326
id = self.input_id(option)
329-
if self.valid and id:
327+
if id is not None:
330328
option_id = f"{option} id: {id}"
331329
column = self.input_column(option_id)
332330
new_value = self.input_value(option_id, new=True)
@@ -337,8 +335,8 @@ def patch(self) -> None:
337335
"value": new_value,
338336
}
339337
response = requests.patch(f"{self.url}/patch", json=dados)
340-
self.menu_option(option)
341338
if response.status_code == 200:
339+
self.menu_option(option)
342340
print("Dados atualizados com sucesso!")
343341
input("APERTE ENTER PARA CONTINUAR")
344342
if self.voltar_menu(option):
@@ -366,7 +364,7 @@ def patch(self) -> None:
366364
except Exception as e:
367365
print(f"Erro: {e}")
368366
input("APERTE ENTER PARA CONTINUAR")
369-
367+
370368
def delete(self) -> None:
371369
"""
372370
Método para deletar dados (DELETE).

app/modules/validations.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,14 @@ def validate_value(value: str) -> bool:
4646
return False
4747

4848

49-
def validate_id(id: str):
49+
def validate_id(id: str, id_list: list[id]) -> bool:
5050
try:
5151
if id:
5252
if id.isdigit() and id != None:
53-
return True
53+
if int(id) in id_list:
54+
return True
55+
else:
56+
raise ValidateError("Id não encontrado.")
5457
else:
5558
raise ValidateError("O Id deve conter apenas números.")
5659
else:

0 commit comments

Comments
 (0)