liquid_feedback_core
changeset 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 |
files | core.sql update/core-update.v3.2.2-v4.0.0.sql |
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 $$;
2.1 --- a/update/core-update.v3.2.2-v4.0.0.sql Mon Jun 26 16:20:36 2017 +0200 2.2 +++ b/update/core-update.v3.2.2-v4.0.0.sql Mon Jun 26 16:45:54 2017 +0200 2.3 @@ -944,7 +944,21 @@ 2.4 CREATE FUNCTION "write_event_unit_trigger"() 2.5 RETURNS TRIGGER 2.6 LANGUAGE 'plpgsql' VOLATILE AS $$ 2.7 + DECLARE 2.8 + "event_v" "event_type"; 2.9 BEGIN 2.10 + IF TG_OP = 'UPDATE' THEN 2.11 + IF OLD."active" = FALSE AND NEW."active" = FALSE THEN 2.12 + RETURN NULL; 2.13 + ELSIF OLD."active" = TRUE AND NEW."active" = FALSE THEN 2.14 + "event_v" := 'unit_removed'; 2.15 + ELSE 2.16 + "event_v" := 'unit_updated'; 2.17 + END IF; 2.18 + ELSE 2.19 + "event_v" := 'unit_created'; 2.20 + END IF; 2.21 + INSERT INTO "event" ("event", "unit_id") VALUES ("event_v", NEW."id"); 2.22 RETURN NULL; 2.23 END; 2.24 $$; 2.25 @@ -959,7 +973,21 @@ 2.26 CREATE FUNCTION "write_event_area_trigger"() 2.27 RETURNS TRIGGER 2.28 LANGUAGE 'plpgsql' VOLATILE AS $$ 2.29 + DECLARE 2.30 + "event_v" "event_type"; 2.31 BEGIN 2.32 + IF TG_OP = 'UPDATE' THEN 2.33 + IF OLD."active" = FALSE AND NEW."active" = FALSE THEN 2.34 + RETURN NULL; 2.35 + ELSIF OLD."active" = TRUE AND NEW."active" = FALSE THEN 2.36 + "event_v" := 'area_removed'; 2.37 + ELSE 2.38 + "event_v" := 'area_updated'; 2.39 + END IF; 2.40 + ELSE 2.41 + "event_v" := 'area_created'; 2.42 + END IF; 2.43 + INSERT INTO "event" ("event", "area_id") VALUES ("event_v", NEW."id"); 2.44 RETURN NULL; 2.45 END; 2.46 $$; 2.47 @@ -974,7 +1002,21 @@ 2.48 CREATE FUNCTION "write_event_policy_trigger"() 2.49 RETURNS TRIGGER 2.50 LANGUAGE 'plpgsql' VOLATILE AS $$ 2.51 + DECLARE 2.52 + "event_v" "event_type"; 2.53 BEGIN 2.54 + IF TG_OP = 'UPDATE' THEN 2.55 + IF OLD."active" = FALSE AND NEW."active" = FALSE THEN 2.56 + RETURN NULL; 2.57 + ELSIF OLD."active" = TRUE AND NEW."active" = FALSE THEN 2.58 + "event_v" := 'policy_removed'; 2.59 + ELSE 2.60 + "event_v" := 'policy_updated'; 2.61 + END IF; 2.62 + ELSE 2.63 + "event_v" := 'policy_created'; 2.64 + END IF; 2.65 + INSERT INTO "event" ("event", "policy_id") VALUES ("event_v", NEW."id"); 2.66 RETURN NULL; 2.67 END; 2.68 $$;