chore: Improve n+1 queries (#4202)
Fixes the n+1 queries that get triggered while accessing agents endpoint
This commit is contained in:
parent
4a3ddad02f
commit
9f8e442333
3 changed files with 5 additions and 3 deletions
|
@ -68,7 +68,7 @@ class Api::V1::Accounts::AgentsController < Api::V1::Accounts::BaseController
|
|||
end
|
||||
|
||||
def agents
|
||||
@agents ||= Current.account.users.order_by_full_name.includes({ avatar_attachment: [:blob] })
|
||||
@agents ||= Current.account.users.order_by_full_name.includes(:account_users, { avatar_attachment: [:blob] })
|
||||
end
|
||||
|
||||
def validate_limit
|
||||
|
|
|
@ -108,7 +108,9 @@ class User < ApplicationRecord
|
|||
end
|
||||
|
||||
def current_account_user
|
||||
account_users.find_by(account_id: Current.account.id) if Current.account
|
||||
# We want to avoid subsequent queries in case where the association is preloaded.
|
||||
# using where here will trigger n+1 queries.
|
||||
account_users.find { |ac_usr| ac_usr.account_id == Current.account.id } if Current.account
|
||||
end
|
||||
|
||||
def available_name
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
json.id resource.id
|
||||
# could be nil for a deleted agent hence the safe operator before account id
|
||||
json.account_id resource.account&.id
|
||||
json.account_id Current.account&.id
|
||||
json.availability_status resource.availability_status
|
||||
json.auto_offline resource.auto_offline
|
||||
json.confirmed resource.confirmed?
|
||||
|
|
Loading…
Reference in a new issue