aonestar
.public
Tables
(current)
Columns
Constraints
Relationships
Orphan Tables
Anomalies
Routines
sp_save_consent_details
Parameters
Name
Type
Mode
data
jsonb
IN
Definition
DECLARE v_state TEXT; v_message TEXT; v_detail TEXT; v_hint TEXT; v_context TEXT; v_d record; v_id int; v_existing_id int; BEGIN SELECT * INTO v_d FROM jsonb_to_record(data) AS d( consent_master_id int, lang_code text, title text, content_body text ); IF v_d.consent_master_id IS NULL OR NOT EXISTS (SELECT 1 FROM public.consent_master WHERE id = v_d.consent_master_id) THEN RETURN fn_result_error('60304', sys_msg('60304', 'consent_master_id does not exist')); END IF; IF v_d.lang_code IS NULL OR btrim(v_d.lang_code) = '' THEN RETURN fn_result_error('60305', sys_msg('60305', 'lang_code is required')); END IF; IF v_d.content_body IS NULL OR btrim(v_d.content_body) = '' THEN RETURN fn_result_error('60306', sys_msg('60306', 'content_body is required')); END IF; SELECT id INTO v_existing_id FROM public.consent_details WHERE consent_master_id = v_d.consent_master_id AND lang_code = v_d.lang_code; IF v_existing_id IS NULL THEN INSERT INTO public.consent_details (consent_master_id, lang_code, title, content_body) VALUES (v_d.consent_master_id, v_d.lang_code, v_d.title, v_d.content_body) RETURNING id INTO v_id; ELSE UPDATE public.consent_details SET title = v_d.title, content_body = v_d.content_body, update_at = CURRENT_TIMESTAMP WHERE id = v_existing_id RETURNING id INTO v_id; END IF; RETURN fn_result_success( (SELECT row_to_json(d) FROM public.consent_details d WHERE d.id = v_id) ); EXCEPTION WHEN OTHERS THEN GET STACKED DIAGNOSTICS v_state = RETURNED_SQLSTATE, v_message = MESSAGE_TEXT, v_detail = PG_EXCEPTION_DETAIL, v_hint = PG_EXCEPTION_HINT, v_context = PG_EXCEPTION_CONTEXT; RETURN fn_handle_error(v_state, v_message, v_detail, v_hint, v_context, 'sp_save_consent_details', data); END