Skip to content

Agregar utilidades compartidas al módulo core #48

@eduranm

Description

@eduranm

Descrição da nova funcionalidade

Yo, como desarrollador backend, quiero que existan utilidades reutilizables centralizadas en core/utils/utils.py, para evitar duplicación de código en los distintos módulos de la aplicación y estandarizar el manejo de llamadas HTTP, normalización de idiomas e identificación de usuarios.

Critérios de aceitação

  • El módulo core/utils/utils.py debe existir y ser importable desde cualquier app del proyecto.
  • La función language_iso(code) debe normalizar códigos de idioma usando langcodes (e.g. "pt-BR""pt"), retornando cadena vacía si el código no es válido.
  • La función fetch_data(url, ...) debe implementar reintentos automáticos con backoff exponencial (mín. 1s, máx. 5s, hasta 5 intentos) para errores de red y HTTP 5xx.
  • Errores HTTP 4xx deben lanzar NonRetryableError sin reintentos.
  • La función _get_user(request, username, user_id) debe intentar resolver el usuario por request.user_id y, en caso de fallo, por user_id o username.
  • Todos los errores de red deben ser logueados con nivel ERROR.
  • Los archivos deben terminar con salto de línea (\n).

Anexos

  • Librerías requeridas: langcodes, tenacity, urllib3, requests.

Referências

Metadata

Metadata

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions