chore: API improvements (#3637)

- Unique validations for Inbox members and Team member objects
- Move notification processing to Async
This commit is contained in:
Sojan Jose
2021-12-21 22:48:01 +05:30
committed by GitHub
parent 262474166f
commit 009abc1948
13 changed files with 48 additions and 31 deletions

View File

@@ -0,0 +1,19 @@
# ref: https://dev.to/nodefiend/rails-migration-adding-a-unique-index-and-deleting-duplicates-5cde
class AddUniqueIndexOnInboxMembers < ActiveRecord::Migration[6.1]
def up
# partioning the duplicate records and then removing where more than one row is found
ActiveRecord::Base.connection.execute('
DELETE FROM inbox_members WHERE id IN (SELECT id from (
SELECT id, user_id, inbox_id, ROW_NUMBER() OVER w AS rnum FROM inbox_members WINDOW w AS (
PARTITION BY inbox_id, user_id ORDER BY id
)
) t WHERE t.rnum > 1)
')
add_index :inbox_members, [:inbox_id, :user_id], unique: true
end
def down
remove_index :inbox_members, [:inbox_id, :user_id]
end
end