diff options
Diffstat (limited to 'db/rest/post/api_post_update.sql')
-rw-r--r-- | db/rest/post/api_post_update.sql | 50 |
1 files changed, 0 insertions, 50 deletions
diff --git a/db/rest/post/api_post_update.sql b/db/rest/post/api_post_update.sql deleted file mode 100644 index 70230d0..0000000 --- a/db/rest/post/api_post_update.sql +++ /dev/null @@ -1,50 +0,0 @@ -CREATE FUNCTION _api.post_update() -RETURNS TRIGGER -LANGUAGE plpgsql VOLATILE -AS $BODY$ -DECLARE - _user_id INTEGER; - _changed BOOLEAN; -BEGIN - _user_id = _api.get_user_id(); - _changed = FALSE; - - IF OLD.user_id <> _user_id THEN - PERFORM _api.raise_deny(); - END IF; - - NEW.content = COALESCE(NEW.content, OLD.content); - NEW.content := _api.trim(NEW.content); - PERFORM _api.validate_text( - _text => NEW.content, - _column => 'content', - _min => 1, - _max => 4096 - ); - - IF NEW.content IS DISTINCT FROM OLD.content THEN - _changed = TRUE; - END IF; - - IF _changed THEN - UPDATE admin.post - SET content = NEW.content - WHERE id = OLD.id; - END IF; - - RETURN NEW; -END -$BODY$; - -GRANT EXECUTE ON FUNCTION _api.post_update() - TO rest_user; -GRANT UPDATE ON TABLE api.post - TO rest_user; -GRANT UPDATE ON TABLE admin.post - TO rest_user; - -CREATE TRIGGER api_post_update_trgr - INSTEAD OF UPDATE - ON api.post - FOR EACH ROW - EXECUTE PROCEDURE _api.post_update(); |