Agrego carpeta del source sql de la Base de Datos
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
-- ============================================================================
|
||||
-- fc_obtener_config
|
||||
-- ============================================================================
|
||||
-- PROPÓSITO
|
||||
-- Devuelve la configuración runtime del sistema, como objeto JSON con
|
||||
-- todas las parejas clave→valor de internal.app_config.
|
||||
--
|
||||
-- Ejemplo de uso: el frontend la consulta al iniciar sesión para
|
||||
-- conocer parámetros como la ventana de edición de pagos, defaults
|
||||
-- visuales, etc.
|
||||
--
|
||||
-- PARÁMETROS
|
||||
-- p_token UUID (opcional, default NULL) sesión del actor.
|
||||
--
|
||||
-- AUTORIZACIÓN
|
||||
-- Requiere permiso 'ver_configuraciones_generales'.
|
||||
--
|
||||
-- ERRORES (RAISE EXCEPTION)
|
||||
-- Ninguno propio (sólo los del validador de permiso).
|
||||
--
|
||||
-- RETORNA
|
||||
-- JSONB objeto con todas las pares clave→valor de internal.app_config.
|
||||
-- Si la tabla está vacía, retorna '{}' (no NULL).
|
||||
--
|
||||
-- EFECTOS SECUNDARIOS
|
||||
-- Ninguno.
|
||||
-- ============================================================================
|
||||
|
||||
CREATE OR REPLACE FUNCTION public.fc_obtener_config(p_token uuid DEFAULT NULL)
|
||||
RETURNS jsonb
|
||||
LANGUAGE plpgsql
|
||||
SECURITY DEFINER
|
||||
SET search_path TO 'public'
|
||||
AS $$
|
||||
DECLARE
|
||||
v_resultado jsonb;
|
||||
BEGIN
|
||||
|
||||
PERFORM internal.validate_permission(p_token, 'ver_configuraciones_generales');
|
||||
|
||||
-- Agrupamos todas las filas en un único objeto JSON
|
||||
SELECT jsonb_object_agg(clave, valor)
|
||||
INTO v_resultado
|
||||
FROM internal.app_config;
|
||||
|
||||
-- COALESCE garantiza que si la tabla está vacía, devolvemos un JSON vacío '{}'
|
||||
-- en lugar de NULL, evitando que el frontend lance excepciones (NullReference).
|
||||
RETURN COALESCE(v_resultado, '{}'::jsonb);
|
||||
END;
|
||||
$$;
|
||||
@@ -0,0 +1,39 @@
|
||||
-- ============================================================================
|
||||
-- internal.get_config_int
|
||||
-- ============================================================================
|
||||
-- PROPÓSITO
|
||||
-- Lee un valor entero de internal.app_config por clave. Si la clave no
|
||||
-- existe, devuelve el default provisto. Helper para que las funciones
|
||||
-- públicas tomen parámetros operacionales (ventanas, límites, etc.)
|
||||
-- desde la tabla de configuración runtime sin tener que hardcodear.
|
||||
--
|
||||
-- PARÁMETROS
|
||||
-- p_clave TEXT nombre de la clave en internal.app_config.
|
||||
-- p_default INTEGER valor a devolver si la clave no existe.
|
||||
--
|
||||
-- AUTORIZACIÓN
|
||||
-- Función interna sin validación propia.
|
||||
--
|
||||
-- ERRORES (RAISE EXCEPTION)
|
||||
-- Ninguno propio. Si el valor en la tabla no es casteable a int, falla
|
||||
-- por error de cast de PostgreSQL.
|
||||
--
|
||||
-- RETORNA
|
||||
-- INTEGER con el valor de la clave o p_default si no existe.
|
||||
--
|
||||
-- EFECTOS SECUNDARIOS
|
||||
-- Ninguno (STABLE).
|
||||
-- ============================================================================
|
||||
|
||||
CREATE OR REPLACE FUNCTION internal.get_config_int(p_clave text, p_default integer)
|
||||
RETURNS integer
|
||||
LANGUAGE sql
|
||||
STABLE
|
||||
SECURITY DEFINER
|
||||
SET search_path TO 'public'
|
||||
AS $$
|
||||
SELECT COALESCE(
|
||||
(SELECT valor::int FROM internal.app_config WHERE clave = p_clave),
|
||||
p_default
|
||||
)
|
||||
$$;
|
||||
Reference in New Issue
Block a user