liquid_feedback_core
diff core.sql @ 538:1bc3dfe5823e
Implementation of unit/area/policy event triggers
author | jbe |
---|---|
date | Mon Jun 26 16:45:54 2017 +0200 (2017-06-26) |
parents | aa261389c993 |
children | eaa330e4c0fb |
line diff
1.1 --- a/core.sql Mon Jun 26 16:20:36 2017 +0200 1.2 +++ b/core.sql Mon Jun 26 16:45:54 2017 +0200 1.3 @@ -1785,7 +1785,21 @@ 1.4 CREATE FUNCTION "write_event_unit_trigger"() 1.5 RETURNS TRIGGER 1.6 LANGUAGE 'plpgsql' VOLATILE AS $$ 1.7 + DECLARE 1.8 + "event_v" "event_type"; 1.9 BEGIN 1.10 + IF TG_OP = 'UPDATE' THEN 1.11 + IF OLD."active" = FALSE AND NEW."active" = FALSE THEN 1.12 + RETURN NULL; 1.13 + ELSIF OLD."active" = TRUE AND NEW."active" = FALSE THEN 1.14 + "event_v" := 'unit_removed'; 1.15 + ELSE 1.16 + "event_v" := 'unit_updated'; 1.17 + END IF; 1.18 + ELSE 1.19 + "event_v" := 'unit_created'; 1.20 + END IF; 1.21 + INSERT INTO "event" ("event", "unit_id") VALUES ("event_v", NEW."id"); 1.22 RETURN NULL; 1.23 END; 1.24 $$; 1.25 @@ -1800,7 +1814,21 @@ 1.26 CREATE FUNCTION "write_event_area_trigger"() 1.27 RETURNS TRIGGER 1.28 LANGUAGE 'plpgsql' VOLATILE AS $$ 1.29 + DECLARE 1.30 + "event_v" "event_type"; 1.31 BEGIN 1.32 + IF TG_OP = 'UPDATE' THEN 1.33 + IF OLD."active" = FALSE AND NEW."active" = FALSE THEN 1.34 + RETURN NULL; 1.35 + ELSIF OLD."active" = TRUE AND NEW."active" = FALSE THEN 1.36 + "event_v" := 'area_removed'; 1.37 + ELSE 1.38 + "event_v" := 'area_updated'; 1.39 + END IF; 1.40 + ELSE 1.41 + "event_v" := 'area_created'; 1.42 + END IF; 1.43 + INSERT INTO "event" ("event", "area_id") VALUES ("event_v", NEW."id"); 1.44 RETURN NULL; 1.45 END; 1.46 $$; 1.47 @@ -1815,7 +1843,21 @@ 1.48 CREATE FUNCTION "write_event_policy_trigger"() 1.49 RETURNS TRIGGER 1.50 LANGUAGE 'plpgsql' VOLATILE AS $$ 1.51 + DECLARE 1.52 + "event_v" "event_type"; 1.53 BEGIN 1.54 + IF TG_OP = 'UPDATE' THEN 1.55 + IF OLD."active" = FALSE AND NEW."active" = FALSE THEN 1.56 + RETURN NULL; 1.57 + ELSIF OLD."active" = TRUE AND NEW."active" = FALSE THEN 1.58 + "event_v" := 'policy_removed'; 1.59 + ELSE 1.60 + "event_v" := 'policy_updated'; 1.61 + END IF; 1.62 + ELSE 1.63 + "event_v" := 'policy_created'; 1.64 + END IF; 1.65 + INSERT INTO "event" ("event", "policy_id") VALUES ("event_v", NEW."id"); 1.66 RETURN NULL; 1.67 END; 1.68 $$;