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    $$;

Impressum / About Us