Compare commits

...

10 Commits

Author SHA1 Message Date
5a7209badb Merge pull request 'dev' (#16) from dev into master
All checks were successful
DEPLOY_MULTI_BRACH/pipeline/head This commit looks good
Reviewed-on: #16
2026-04-12 20:57:46 +00:00
d39e078fb6 Merge pull request 'fix admin status' (#15) from pre-dev into dev
All checks were successful
DEPLOY_MULTI_BRACH/pipeline/head This commit looks good
Reviewed-on: #15
2026-04-12 20:56:59 +00:00
juanjo
3da81a9495 fix admin status
All checks were successful
DEPLOY_MULTI_BRACH/pipeline/head This commit looks good
2026-04-12 22:56:35 +02:00
ac1c024bee Merge pull request 'endpoint de status' (#14) from pre-dev into dev
All checks were successful
DEPLOY_MULTI_BRACH/pipeline/head This commit looks good
Reviewed-on: #14
2026-04-12 20:39:31 +00:00
juanjo
e5908b1880 endpoint de status
All checks were successful
DEPLOY_MULTI_BRACH/pipeline/head This commit looks good
2026-04-12 22:38:49 +02:00
147a1d49cc Merge pull request 'pre-dev' (#13) from pre-dev into dev
All checks were successful
DEPLOY_MULTI_BRACH/pipeline/head This commit looks good
Reviewed-on: #13
2026-04-12 20:15:16 +00:00
juanjo
1bf3337616 Update .gitignore
All checks were successful
DEPLOY_MULTI_BRACH/pipeline/head This commit looks good
2026-04-12 22:12:35 +02:00
juanjo
6fb3afa472 fix para ficheros que no se suben
All checks were successful
DEPLOY_MULTI_BRACH/pipeline/head This commit looks good
2026-04-12 22:11:51 +02:00
8579af3f21 Merge pull request 'fix' (#12) from pre-dev into dev
All checks were successful
DEPLOY_MULTI_BRACH/pipeline/head This commit looks good
Reviewed-on: #12
2026-04-12 14:04:06 +00:00
minguezsanzjuanjose
102d7c6bfa fix
All checks were successful
DEPLOY_MULTI_BRACH/pipeline/head This commit looks good
2026-04-12 16:02:58 +02:00
10 changed files with 108 additions and 7 deletions

13
.env
View File

@@ -1,5 +1,10 @@
# Seguridad # Seguridad
CONTAINER_NAME=django_local DEBUG=True
PORT=8000 SECRET_KEY=una-clave-muy-secreta-y-larga-123456
DEBUG_MODE=1
PROJECT_NAME=django_dev_local # Base de Datos (Conectando al PostgreSQL que instalamos)
DB_NAME=gitea
DB_USER=gitea
DB_PASSWORD=gitea
DB_HOST=gitea-db
DB_PORT=5432

10
.env.example Normal file
View File

@@ -0,0 +1,10 @@
# Seguridad
DEBUG=True
SECRET_KEY=una-clave-muy-secreta-y-larga-123456
# Base de Datos (Conectando al PostgreSQL que instalamos)
DB_NAME=gitea
DB_USER=gitea
DB_PASSWORD=gitea
DB_HOST=gitea-db
DB_PORT=5432

12
.gitignore vendored
View File

@@ -1,2 +1,12 @@
*.pyc # Configuración personal y secretos
.env .env
.env.local
# Docker local (si decides no subirlo)
deployments/docker-compose.override.yml
deployments/docker-compose.yml
# Archivos de datos de la DB local
postgres_data/
local_postgres_data/
*.pyc

View File

@@ -0,0 +1,13 @@
class Admin:
def get_status_action(self):
"""
Lógica para comprobar la salud del sistema.
Devuelve el estado básico del entorno.
"""
# En el futuro, podrías usar get_parameterized aquí si quisieras
# consultar estados en la base de datos.
return {
"status": "ok",
"message": "V-Encore API System is active",
"environment": "dev" # Esto podría venir de una variable de entorno
}

View File

@@ -0,0 +1,7 @@
from django.urls import path
from .views import status_view
urlpatterns = [
# Ruta final: /admin/status/
path('status/', status_view, name='admin_status'),
]

View File

@@ -0,0 +1,28 @@
from django.http import JsonResponse
from .actions import Admin
import logging
logger = logging.getLogger(__name__)
def status_view(request):
# BLOQUE 1: Log de iniciación
logger.info("INICIO - Ejecutando Health Check de Administración.")
# BLOQUE 2: Limpieza y validación de datos
# Para un status simple, el diccionario de limpieza está vacío
data_cleaned = {}
# BLOQUE 3: Llamada a la acción
try:
# Instanciamos la clase Admin y llamamos al método
admin_logic = Admin()
response_data = admin_logic.get_status_action()
status_code = 200
except Exception as e:
logger.error(f"ERROR - Fallo en get_status_action: {str(e)}")
response_data = {"status": "error", "message": "Internal Server Error"}
status_code = 500
# BLOQUE 4: Log de cierre y retorno
logger.info(f"FIN - Health Check completado. Status: {status_code}")
return JsonResponse(response_data, status=status_code)

View File

@@ -1,6 +1,13 @@
from django.db import connection from django.db import connection
from apps.common.utils import clean_sql_string, clean_sql_int from apps.common.utils import clean_sql_string, clean_sql_int
def get_status_action():
"""
Acción simple para comprobar que la lógica de la API responde.
"""
return {"status": "ok", "message": "API is running"}
def getData(params): def getData(params):
""" """
Función estándar para obtener datos de promociones. Función estándar para obtener datos de promociones.

View File

@@ -1,7 +1,8 @@
from django.urls import path from django.urls import path
from .views import get_promocion_view from .views import get_promocion_view, status_view
urlpatterns = [ urlpatterns = [
# Capa 1: Definición del endpoint # Capa 1: Definición del endpoint
path('obtener/', get_promocion_view, name='get_promocion'), path('obtener/', get_promocion_view, name='get_promocion'),
] ]

View File

@@ -2,6 +2,10 @@ import logging
from django.http import JsonResponse from django.http import JsonResponse
from .actions import getData from .actions import getData
from django.http import JsonResponse
from .actions import get_status_action
# Configuración del logger para rastrear la ejecución # Configuración del logger para rastrear la ejecución
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@@ -52,3 +56,18 @@ def get_promocion_view(request):
'status': 'error', 'status': 'error',
'message': 'Error interno del servidor' 'message': 'Error interno del servidor'
}, status=500) }, status=500)
# En views.py
def status_view(request):
# BLOQUE 1: Log de iniciación
logger.info("Iniciando petición de status...")
# BLOQUE 2: Limpieza y validación de datos (En este caso no hay datos de entrada)
data_cleaned = {}
# BLOQUE 3: Llamada a la acción
response_data = get_status_action()
# BLOQUE 4: Log de cierre y retorno
logger.info("Status enviado correctamente.")
return JsonResponse(response_data, status=200)

View File

@@ -3,4 +3,5 @@ from django.urls import path, include
urlpatterns = [ urlpatterns = [
# Redirigimos todas las peticiones de /api/promociones/ a nuestra app # Redirigimos todas las peticiones de /api/promociones/ a nuestra app
path('api/promociones/', include('apps.promociones.urls')), path('api/promociones/', include('apps.promociones.urls')),
path('admin/', include('apps.backend_admin.urls')), # El tuyo
] ]