[feature] #2: validação de chave API

função para validar chave API. falta implementação e testes
This commit is contained in:
2024-08-22 21:26:59 +01:00
parent 70bc6862c1
commit 228eb47f0b

View File

@ -2,6 +2,7 @@
import csv
# gravar dados importados para ficheiro csv
def gravar_dados_ficheiro_csv(
nome_ficheiro: str,
@ -13,7 +14,7 @@ def gravar_dados_ficheiro_csv(
Args:
nome_ficheiro (str): O nome do ficheiro CSV.
dados_importados (list): Uma lista de dicionários com os dados a serem
dados_importados (list): Uma lista de dicionários com os dados a serem
gravados.
campos (list): Uma lista com os nomes dos campos a serem gravados.
@ -30,7 +31,7 @@ def gravar_dados_ficheiro_csv(
raise ValueError('\'dados_importados\' não é do tipo \'list\'')
if not isinstance(campos, list):
raise ValueError('\'campos\' não é do tipo \'list\'')
with open(nome_ficheiro, 'w', newline='') as ficheiro_csv_historico_precos:
ficheiroCSV = csv.DictWriter(
ficheiro_csv_historico_precos,
@ -38,6 +39,7 @@ def gravar_dados_ficheiro_csv(
ficheiroCSV.writeheader()
ficheiroCSV.writerows(dados_importados)
# carregar dados de ficheiro csv e guardar em lista
def carregar_dados_ficheiro_csv(
nome_ficheiro: str,
@ -48,7 +50,7 @@ def carregar_dados_ficheiro_csv(
Args:
nome_ficheiro (str): O nome do ficheiro CSV.
campos (list): Uma lista de nomes de campos correspondentes aos
campos (list): Uma lista de nomes de campos correspondentes aos
chaves dos dicionários.
Raises:
@ -63,7 +65,7 @@ def carregar_dados_ficheiro_csv(
raise ValueError('\'nome_ficheiro\' não é do tipo \'str\'')
if not isinstance(campos, list):
raise ValueError('\'campos\' não é do tipo \'list\'')
with open(nome_ficheiro, 'r', newline='') as ficheiro_csv_historico_precos:
ficheiroCSV = csv.DictReader(
ficheiro_csv_historico_precos,
@ -71,4 +73,17 @@ def carregar_dados_ficheiro_csv(
lista_linhas_ficheiro_csv: list = []
for linha in ficheiroCSV:
lista_linhas_ficheiro_csv.append(linha)
return lista_linhas_ficheiro_csv
return lista_linhas_ficheiro_csv
# validar chave API http://192.168.1.131:3000/sanctus/crypto_portfolio/issues/1
def validarChaveAPI(chave_api: str) -> bool:
# remover espaços em branco
chave_api.strip()
# chave invalida se tamanho for diferente de 27 ('CG-' + 24)
if len(chave_api) != 27:
return False
# chave inválida se primeiros 3 caracteres forem diferentes de 'CG-'
if len(chave_api) >= 3 and chave_api[0:3] != 'CG-':
return False
return True