aonestar
.public
Tables
(current)
Columns
Constraints
Relationships
Orphan Tables
Anomalies
Routines
fn_doorlock_demo_mode
Parameters
Name
Type
Mode
Definition
DECLARE v_cache text; v_flag boolean; BEGIN v_cache := current_setting('cache.doorlock_demo', true); IF NULLIF(v_cache, '') IS NOT NULL THEN RETURN v_cache::boolean; END IF; BEGIN -- fn_prop_config -> dblink ไป authen.fn_get_config(fn_prop_id(), name) -- NULLIF กัน config_value ที่เก็บเป็น '' (ตาราง configs มีจริง เช่น EMAIL_TEST_MODE) v_flag := COALESCE(NULLIF(fn_prop_config('DEMO_MODE_DOORLOCK_PIN', 'false'), ''), 'false')::boolean; EXCEPTION WHEN OTHERS THEN -- อ่าน config ไม่ได้ -> ตกไปทาง production (วันจริง/เลขห้องจริง) -- ปลอดภัยกว่า fallback เป็น true ที่จะยิง roomno '101' ของโรงแรมจริง RAISE WARNING 'fn_doorlock_demo_mode: cannot read DEMO_MODE_DOORLOCK_PIN (%)', SQLERRM; v_flag := false; END; PERFORM set_config('cache.doorlock_demo', v_flag::text, true); RETURN v_flag; END