2024-08-05 16:03:07 +02:00
|
|
|
-- migrate:up
|
2024-08-08 22:29:04 +02:00
|
|
|
CREATE FUNCTION internal.update_last_modified ()
|
|
|
|
|
RETURNS TRIGGER
|
|
|
|
|
AS $$
|
2024-08-05 16:03:07 +02:00
|
|
|
BEGIN
|
|
|
|
|
NEW.last_modified_at = CLOCK_TIMESTAMP();
|
2024-08-08 22:29:04 +02:00
|
|
|
NEW.last_modified_by = (CURRENT_SETTING('request.jwt.claims', TRUE)::JSON ->> 'user_id')::UUID;
|
2024-08-07 19:51:29 +02:00
|
|
|
IF TG_TABLE_NAME != 'website' THEN
|
2024-08-08 22:29:04 +02:00
|
|
|
UPDATE
|
|
|
|
|
internal.website
|
|
|
|
|
SET
|
2024-08-07 19:51:29 +02:00
|
|
|
last_modified_at = NEW.last_modified_at,
|
|
|
|
|
last_modified_by = NEW.last_modified_by
|
2024-08-08 22:29:04 +02:00
|
|
|
WHERE
|
2024-09-10 17:29:57 +02:00
|
|
|
id = NEW.website_id;
|
2024-08-07 19:51:29 +02:00
|
|
|
END IF;
|
2024-08-05 16:03:07 +02:00
|
|
|
RETURN NEW;
|
|
|
|
|
END;
|
2024-08-08 22:29:04 +02:00
|
|
|
$$
|
2024-09-10 17:29:57 +02:00
|
|
|
LANGUAGE plpgsql;
|
2024-08-05 16:03:07 +02:00
|
|
|
|
|
|
|
|
CREATE TRIGGER update_website_last_modified
|
2024-08-08 22:29:04 +02:00
|
|
|
BEFORE UPDATE ON internal.website
|
|
|
|
|
FOR EACH ROW
|
|
|
|
|
EXECUTE FUNCTION internal.update_last_modified ();
|
2024-08-05 16:03:07 +02:00
|
|
|
|
|
|
|
|
CREATE TRIGGER update_settings_last_modified
|
2024-08-08 22:29:04 +02:00
|
|
|
BEFORE UPDATE ON internal.settings
|
|
|
|
|
FOR EACH ROW
|
|
|
|
|
EXECUTE FUNCTION internal.update_last_modified ();
|
2024-08-05 16:03:07 +02:00
|
|
|
|
|
|
|
|
CREATE TRIGGER update_header_last_modified
|
2024-08-08 22:29:04 +02:00
|
|
|
BEFORE UPDATE ON internal.header
|
|
|
|
|
FOR EACH ROW
|
|
|
|
|
EXECUTE FUNCTION internal.update_last_modified ();
|
2024-08-05 16:03:07 +02:00
|
|
|
|
|
|
|
|
CREATE TRIGGER update_home_last_modified
|
2024-08-08 22:29:04 +02:00
|
|
|
BEFORE UPDATE ON internal.home
|
|
|
|
|
FOR EACH ROW
|
|
|
|
|
EXECUTE FUNCTION internal.update_last_modified ();
|
2024-08-05 16:03:07 +02:00
|
|
|
|
|
|
|
|
CREATE TRIGGER update_article_last_modified
|
2024-08-08 22:29:04 +02:00
|
|
|
BEFORE INSERT OR UPDATE OR DELETE ON internal.article
|
|
|
|
|
FOR EACH ROW
|
|
|
|
|
EXECUTE FUNCTION internal.update_last_modified ();
|
2024-08-05 16:03:07 +02:00
|
|
|
|
|
|
|
|
CREATE TRIGGER update_footer_last_modified
|
2024-08-08 22:29:04 +02:00
|
|
|
BEFORE UPDATE ON internal.footer
|
|
|
|
|
FOR EACH ROW
|
|
|
|
|
EXECUTE FUNCTION internal.update_last_modified ();
|
2024-08-05 16:03:07 +02:00
|
|
|
|
2024-09-10 17:29:57 +02:00
|
|
|
CREATE TRIGGER update_legal_information_last_modified
|
|
|
|
|
BEFORE INSERT OR UPDATE OR DELETE ON internal.legal_information
|
|
|
|
|
FOR EACH ROW
|
|
|
|
|
EXECUTE FUNCTION internal.update_last_modified ();
|
|
|
|
|
|
2024-08-05 16:03:07 +02:00
|
|
|
CREATE TRIGGER update_collab_last_modified
|
2024-08-08 22:29:04 +02:00
|
|
|
BEFORE UPDATE ON internal.collab
|
|
|
|
|
FOR EACH ROW
|
|
|
|
|
EXECUTE FUNCTION internal.update_last_modified ();
|
2024-08-05 16:03:07 +02:00
|
|
|
|
|
|
|
|
-- migrate:down
|
|
|
|
|
DROP TRIGGER update_website_last_modified ON internal.website;
|
2024-08-08 22:29:04 +02:00
|
|
|
|
2024-08-05 16:03:07 +02:00
|
|
|
DROP TRIGGER update_settings_last_modified ON internal.settings;
|
2024-08-08 22:29:04 +02:00
|
|
|
|
2024-08-05 16:03:07 +02:00
|
|
|
DROP TRIGGER update_header_last_modified ON internal.header;
|
2024-08-08 22:29:04 +02:00
|
|
|
|
2024-08-05 16:03:07 +02:00
|
|
|
DROP TRIGGER update_home_last_modified ON internal.home;
|
2024-08-08 22:29:04 +02:00
|
|
|
|
2024-08-05 16:03:07 +02:00
|
|
|
DROP TRIGGER update_article_last_modified ON internal.article;
|
2024-08-08 22:29:04 +02:00
|
|
|
|
2024-08-05 16:03:07 +02:00
|
|
|
DROP TRIGGER update_footer_last_modified ON internal.footer;
|
2024-08-08 22:29:04 +02:00
|
|
|
|
2024-09-10 17:29:57 +02:00
|
|
|
DROP TRIGGER update_legal_information_last_modified ON internal.legal_information;
|
|
|
|
|
|
2024-08-05 16:03:07 +02:00
|
|
|
DROP TRIGGER update_collab_last_modified ON internal.collab;
|
|
|
|
|
|
2024-08-08 22:29:04 +02:00
|
|
|
DROP FUNCTION internal.update_last_modified ();
|
|
|
|
|
|