From f0dfec03ddb64acc8161ed211b1d39ea984dcbc4 Mon Sep 17 00:00:00 2001 From: Kenio de Souza Date: Wed, 12 Nov 2025 16:41:09 -0300 Subject: [PATCH] =?UTF-8?q?fix():=20Ajuste=20na=20fun=C3=A7=C3=A3o=20que?= =?UTF-8?q?=20retorna=20o=20hash=20para=20visualiza=C3=A7=C3=A3o=20do=20ar?= =?UTF-8?q?quivo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- actions/validations/hash.py | 25 +++++++++++++++++++ .../ato_principal_show_atos_repository.py | 9 +++++-- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/actions/validations/hash.py b/actions/validations/hash.py index b35c312..a5a242b 100644 --- a/actions/validations/hash.py +++ b/actions/validations/hash.py @@ -5,6 +5,31 @@ from datetime import date import hashlib +# Separa a última parte de uma string com três partes separadas por "/" +def get_last_part(text: str) -> str: + """ + Separa uma string por "/" e retorna a última parte. + Exemplo: "100/15/arquivo.txt" -> "arquivo.txt" + + Args: + text (str): String no formato com três partes separadas por "/" + + Returns: + str: Última parte da string (após a última "/") + """ + # Divide a string em partes + partes = text.split("/") + + # Verifica se há pelo menos 3 partes + if len(partes) < 3: + raise ValueError( + "A string deve conter pelo menos três partes separadas por '/'." + ) + + # Retorna a última parte + return partes[-1] + + # Função que gera o hash baseado na data atual def generate_storage_hash() -> str: """ diff --git a/packages/v1/administrativo/repositories/ato_principal/ato_principal_show_atos_repository.py b/packages/v1/administrativo/repositories/ato_principal/ato_principal_show_atos_repository.py index f8dd2f7..7526099 100644 --- a/packages/v1/administrativo/repositories/ato_principal/ato_principal_show_atos_repository.py +++ b/packages/v1/administrativo/repositories/ato_principal/ato_principal_show_atos_repository.py @@ -11,6 +11,7 @@ from packages.v1.administrativo.schemas.ato_principal_schema import ( from actions.validations.hash import ( generate_storage_hash, generate_temporary_token, + get_last_part, ) @@ -115,7 +116,9 @@ class ShowAtosRepository: documentos_list = [ { "url": ( - f"{URL_API}/view/{generate_storage_hash()}/{d.url.decode('utf-8')}?token=" + f"{URL_API}/view/{generate_storage_hash()}/" + + get_last_part({d.url.decode("utf-8")}) + + "?token=" if d.url else None ), @@ -179,7 +182,9 @@ class ShowAtosRepository: documentos_vinc_list = [ { "url": ( - f"{URL_API}/view/{generate_storage_hash()}/{d.url.decode('utf-8')}?token=" + f"{URL_API}/view/{generate_storage_hash()}/" + + get_last_part({d.url.decode("utf-8")}) + + "?token=" if d.url else None ),