authen
.public
Tables
(current)
Columns
Constraints
Relationships
Orphan Tables
Anomalies
Routines
fn_parse_param_values
Parameters
Name
Type
Mode
params
json
IN
param_values
jsonb
IN
date_ref
date
IN (DEFAULT CURRENT_DATE)
Definition
declare param jsonb; out_params jsonb = '{}'; param_name text; param_text text; date_value date; begin for param in select jsonb_array_elements(params::jsonb->'parameters') loop param_name := param->>'name'; param_text := coalesce(param_values->>param_name, param->>'defaultValue'); --raise notice '%: % (%,%)', param_name, param_text, param_values->param_name, param->'defaultValue'; case upper(param->>'type') when 'DATE' then out_params := out_params || jsonb_build_object(param_name, fn_parse_date(param_text, false, date_ref)); when 'DATERANGE' then param_name := param->'property'->>'startDateName'; out_params := out_params || jsonb_build_object(param_name, fn_period_start(param_text, false, date_ref)); param_name := param->'property'->>'endDateName'; out_params := out_params || jsonb_build_object(param_name, fn_period_end(param_text, false, date_ref)); else out_params := out_params || jsonb_build_object(param_name, coalesce(param_values->param_name, param->'defaultValue')); end case; end loop; return out_params; end;