LP#1750894 Cascade settings batch retrieve func
authorBill Erickson <berickxx@gmail.com>
Thu, 22 Mar 2018 18:16:28 +0000 (14:16 -0400)
committerBill Erickson <berickxx@gmail.com>
Tue, 29 May 2018 14:13:36 +0000 (10:13 -0400)
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Open-ILS/src/sql/Pg/upgrade/XXXX.schema.workstation-settings.sql
Open-ILS/src/sql/Pg/upgrade/ZZZZ.schema.workstation-settings.UNDO.sql

index e4a68a4..c091320 100644 (file)
@@ -142,6 +142,22 @@ END;
 $FUNC$ LANGUAGE PLPGSQL;
 
 
+CREATE OR REPLACE FUNCTION actor.get_setting_batch(setting_names TEXT[], 
+    org_id INT, user_id INT, workstation_id INT) RETURNS SETOF JSON AS
+$FUNC$
+-- Returns a row per setting matching the setting name order.  If no 
+-- value is applied, NULL is returned to retain name-response ordering.
+DECLARE
+    setting_name TEXT;
+BEGIN
+    FOREACH setting_name IN ARRAY setting_names LOOP
+        RETURN NEXT * FROM actor.get_setting(
+            setting_Name, org_id, user_id, workstation_id);
+    END LOOP;
+END;
+$FUNC$ LANGUAGE PLPGSQL;
+
 COMMIT;
 
 
+
index 6408f8d..2340d17 100644 (file)
@@ -1,6 +1,7 @@
 BEGIN;
 
 DROP FUNCTION actor.get_setting(TEXT, INT, INT, INT);
+DROP FUNCTION actor.get_setting_batch(TEXT[], INT, INT, INT);
 
 DROP TRIGGER IF EXISTS check_setting_is_usr_or_ws ON actor.workstation_setting;
 DROP TRIGGER IF EXISTS check_setting_is_usr_or_ws ON actor.usr_setting;