a3bf2f1cf1
* Automatically resolve report when post/comment is removed (#3850) * Automatically resolve report when post/comment is removed * also handle apub removes * Removing auto-resolve report triggers. * Dont allow creating reports for deleted / removed items. * Running pgformat. * Fixing test. * Addressing PR comments. * Forgot comment report. --------- Co-authored-by: Nutomic <me@nutomic.com>
48 lines
1.1 KiB
PL/PgSQL
48 lines
1.1 KiB
PL/PgSQL
-- Automatically resolve all reports for a given post once it is marked as removed
|
|
CREATE OR REPLACE FUNCTION post_removed_resolve_reports ()
|
|
RETURNS TRIGGER
|
|
LANGUAGE plpgsql
|
|
AS $$
|
|
BEGIN
|
|
UPDATE
|
|
post_report
|
|
SET
|
|
resolved = TRUE,
|
|
resolver_id = NEW.mod_person_id,
|
|
updated = now()
|
|
WHERE
|
|
post_report.post_id = NEW.post_id;
|
|
RETURN NULL;
|
|
END
|
|
$$;
|
|
|
|
CREATE OR REPLACE TRIGGER post_removed_resolve_reports
|
|
AFTER INSERT ON mod_remove_post
|
|
FOR EACH ROW
|
|
WHEN (NEW.removed)
|
|
EXECUTE PROCEDURE post_removed_resolve_reports ();
|
|
|
|
-- Same when comment is marked as removed
|
|
CREATE OR REPLACE FUNCTION comment_removed_resolve_reports ()
|
|
RETURNS TRIGGER
|
|
LANGUAGE plpgsql
|
|
AS $$
|
|
BEGIN
|
|
UPDATE
|
|
comment_report
|
|
SET
|
|
resolved = TRUE,
|
|
resolver_id = NEW.mod_person_id,
|
|
updated = now()
|
|
WHERE
|
|
comment_report.comment_id = NEW.comment_id;
|
|
RETURN NULL;
|
|
END
|
|
$$;
|
|
|
|
CREATE OR REPLACE TRIGGER comment_removed_resolve_reports
|
|
AFTER INSERT ON mod_remove_comment
|
|
FOR EACH ROW
|
|
WHEN (NEW.removed)
|
|
EXECUTE PROCEDURE comment_removed_resolve_reports ();
|
|
|