99 validate_table ,
1010 validate_id ,
1111)
12- from .modules .exceptions import RequestError , InvalidResponseError , ValidateError
1312
1413
1514class 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).
0 commit comments