DEV: Cleanup ignored user logic (#11107)

- IgnoredUser records should all now have an expiring_at value. This commit enforces that in the DB, and fixes any corrupt rows
- Changes to the ignored user list are now handled by the `/u/{username}/notification_level` endpoint. This allows setting expiration dates on the ignore. This commit removes the old logic for saving a list of usernames in the user preferences.
- Many specs were calling `IgnoredUser.create`. This commit changes them to use `Fabricate(:ignored_user)` for consistency
This commit is contained in:
David Taylor
2020-11-03 12:38:54 +00:00
committed by GitHub
parent 1b7d39fa85
commit 5140ec9acf
13 changed files with 29 additions and 104 deletions

View File

@@ -0,0 +1,17 @@
# frozen_string_literal: true
class AddNotNullToIgnoredUsers < ActiveRecord::Migration[6.0]
def up
execute <<~SQL
UPDATE ignored_users
SET expiring_at = created_at + interval '4 months'
WHERE expiring_at IS NULL
SQL
change_column_null :ignored_users, :expiring_at, false
end
def down
change_column_null :ignored_users, :expiring_at, true
end
end