Add account_id
param to GET /api/v1/notifications
(#10796)
* Add `from_account` to notifications API this adds the ability to filter notifications by the account they originated from * passing a non-existent user should cause none to be returned * Fix codeclimate warnings * fix more codeclimate warnings * make requested changes: * use account id instead of user@domain * name the param `account_id` instead of `from_account` * Don't use `return` in a lambda
This commit is contained in:
parent
4d65740663
commit
0c933c1b8c
3 changed files with 77 additions and 3 deletions
|
@ -41,9 +41,13 @@ class Notification < ApplicationRecord
|
|||
validates :account_id, uniqueness: { scope: [:activity_type, :activity_id] }
|
||||
validates :activity_type, inclusion: { in: TYPE_CLASS_MAP.values }
|
||||
|
||||
scope :browserable, ->(exclude_types = []) {
|
||||
scope :browserable, ->(exclude_types = [], account_id = nil) {
|
||||
types = TYPE_CLASS_MAP.values - activity_types_from_types(exclude_types + [:follow_request])
|
||||
where(activity_type: types)
|
||||
if account_id.nil?
|
||||
where(activity_type: types)
|
||||
else
|
||||
where(activity_type: types, from_account_id: account_id)
|
||||
end
|
||||
}
|
||||
|
||||
cache_associated :from_account, status: STATUS_INCLUDES, mention: [status: STATUS_INCLUDES], favourite: [:account, status: STATUS_INCLUDES], follow: :account, poll: [status: STATUS_INCLUDES]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue