refactor: reorganizar estructura del proyecto al estándar app/api_config
All checks were successful
DEPLOY_MULTI_BRACH/pipeline/head This commit looks good
All checks were successful
DEPLOY_MULTI_BRACH/pipeline/head This commit looks good
- core/ → app/api_config/ - apps/backend_admin/ → app/backend_admin/ - apps/common/ → app/common/ - apps/promociones/ → app/promociones/ - manage.py → app/manage.py - Añadir app/requirements.txt - Actualizar todos los imports y referencias (DJANGO_SETTINGS_MODULE, ROOT_URLCONF, WSGI_APPLICATION, INSTALLED_APPS) - Actualizar Dockerfile con nuevo WORKDIR Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
64
app/promociones/acciones.py
Normal file
64
app/promociones/acciones.py
Normal file
@@ -0,0 +1,64 @@
|
||||
from django.db import connection
|
||||
from 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. Definimos la query con placeholders (%s)
|
||||
query = """
|
||||
SELECT id, nombre, fecha_inicio, descripcion
|
||||
FROM promociones
|
||||
WHERE id = %s AND activo = %s
|
||||
"""
|
||||
|
||||
|
||||
# 2. Preparamos el diccionario de parámetros (tu estándar get_parameterized)
|
||||
# Limpiamos los datos antes de enviarlos a la base de datos
|
||||
id_promocion = clean_sql_int(params.get('id'))
|
||||
is_active = True if params.get('activo') else False
|
||||
|
||||
parameter_dict = [id_promocion, is_active]
|
||||
|
||||
# 3. Ejecución parametrizada
|
||||
with connection.cursor() as cursor:
|
||||
cursor.execute(query, parameter_dict)
|
||||
columns = [col[0] for col in cursor.description]
|
||||
result = [dict(zip(columns, row)) for row in cursor.fetchall()]
|
||||
|
||||
return result
|
||||
|
||||
def setData(params):
|
||||
"""
|
||||
Función estándar para insertar o actualizar (set_parameterized).
|
||||
"""
|
||||
# Ejemplo de UPDATE con JOIN (como solicitaste en tu estándar)
|
||||
query = """
|
||||
UPDATE promociones p
|
||||
SET p.nombre = %s, p.fecha_modificacion = %s
|
||||
FROM categorias c
|
||||
WHERE p.categoria_id = c.id AND p.id = %s
|
||||
"""
|
||||
|
||||
# Fecha en formato YYYY-MM-DD para SQL
|
||||
import datetime
|
||||
fecha_hoy = datetime.datetime.now().strftime('%Y-%m-%d')
|
||||
|
||||
parameter_dict = [
|
||||
clean_sql_string(params.get('nombre')),
|
||||
fecha_hoy,
|
||||
clean_sql_int(params.get('id'))
|
||||
]
|
||||
|
||||
with connection.cursor() as cursor:
|
||||
cursor.execute(query, parameter_dict)
|
||||
affected_rows = cursor.rowcount
|
||||
|
||||
return affected_rows
|
||||
Reference in New Issue
Block a user