From 1064edce60d2b78546035991455a289b79494896 Mon Sep 17 00:00:00 2001 From: orcas Date: Sat, 22 Jun 2019 18:49:45 +0800 Subject: [PATCH] Added support for postgres listener on member changes --- postgres/1_initial.up.sql | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/postgres/1_initial.up.sql b/postgres/1_initial.up.sql index 592a0c3..150690e 100644 --- a/postgres/1_initial.up.sql +++ b/postgres/1_initial.up.sql @@ -26,3 +26,29 @@ CREATE TABLE IF NOT EXISTS contact ( contact BYTEA REFERENCES "user"(id), UNIQUE ("user", contact) ); + +CREATE OR REPLACE FUNCTION notify_permissions_new () RETURNS TRIGGER AS $$ + BEGIN + PERFORM pg_notify('member_new', CONCAT(NEW."user", '+', NEW."conversation")); + RETURN NULL; + END; +$$ LANGUAGE plpgsql; + +CREATE OR REPLACE FUNCTION notify_permissions_delete () RETURNS TRIGGER AS $$ + BEGIN + PERFORM pg_notify('member_delete', CONCAT(OLD."user", '+', OLD."conversation")); + RETURN NULL; + END; +$$ LANGUAGE plpgsql; + +CREATE TRIGGER notify_permissions_new + AFTER INSERT OR UPDATE + ON "member" + FOR EACH ROW + EXECUTE PROCEDURE notify_permissions_new(); + +CREATE TRIGGER notify_permissions_delete + AFTER DELETE + ON "member" + FOR EACH ROW + EXECUTE PROCEDURE notify_permissions_delete();