Compare commits
10 Commits
32e3184b59
...
5a7209badb
| Author | SHA1 | Date | |
|---|---|---|---|
| 5a7209badb | |||
| d39e078fb6 | |||
|
|
3da81a9495 | ||
| ac1c024bee | |||
|
|
e5908b1880 | ||
| 147a1d49cc | |||
|
|
1bf3337616 | ||
|
|
6fb3afa472 | ||
| 8579af3f21 | |||
|
|
102d7c6bfa |
13
.env
13
.env
@@ -1,5 +1,10 @@
|
||||
# Seguridad
|
||||
CONTAINER_NAME=django_local
|
||||
PORT=8000
|
||||
DEBUG_MODE=1
|
||||
PROJECT_NAME=django_dev_local
|
||||
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
|
||||
10
.env.example
Normal file
10
.env.example
Normal 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
12
.gitignore
vendored
@@ -1,2 +1,12 @@
|
||||
*.pyc
|
||||
# Configuración personal y secretos
|
||||
.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
|
||||
|
||||
13
apps/backend_admin/actions.py
Normal file
13
apps/backend_admin/actions.py
Normal 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
|
||||
}
|
||||
7
apps/backend_admin/urls.py
Normal file
7
apps/backend_admin/urls.py
Normal 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'),
|
||||
]
|
||||
28
apps/backend_admin/views.py
Normal file
28
apps/backend_admin/views.py
Normal 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)
|
||||
@@ -1,6 +1,13 @@
|
||||
from django.db import connection
|
||||
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):
|
||||
"""
|
||||
Función estándar para obtener datos de promociones.
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
from django.urls import path
|
||||
from .views import get_promocion_view
|
||||
from .views import get_promocion_view, status_view
|
||||
|
||||
urlpatterns = [
|
||||
# Capa 1: Definición del endpoint
|
||||
path('obtener/', get_promocion_view, name='get_promocion'),
|
||||
|
||||
]
|
||||
@@ -2,6 +2,10 @@ import logging
|
||||
from django.http import JsonResponse
|
||||
from .actions import getData
|
||||
|
||||
from django.http import JsonResponse
|
||||
from .actions import get_status_action
|
||||
|
||||
|
||||
# Configuración del logger para rastrear la ejecución
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -52,3 +56,18 @@ def get_promocion_view(request):
|
||||
'status': 'error',
|
||||
'message': 'Error interno del servidor'
|
||||
}, 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)
|
||||
@@ -3,4 +3,5 @@ from django.urls import path, include
|
||||
urlpatterns = [
|
||||
# Redirigimos todas las peticiones de /api/promociones/ a nuestra app
|
||||
path('api/promociones/', include('apps.promociones.urls')),
|
||||
path('admin/', include('apps.backend_admin.urls')), # El tuyo
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user