diff --git a/app/controllers/api/v1/accounts/agents_controller.rb b/app/controllers/api/v1/accounts/agents_controller.rb index a666d1a67..68389d3cd 100644 --- a/app/controllers/api/v1/accounts/agents_controller.rb +++ b/app/controllers/api/v1/accounts/agents_controller.rb @@ -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 diff --git a/app/models/user.rb b/app/models/user.rb index cbb06b39a..ad4abc142 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -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 diff --git a/app/views/api/v1/models/_agent.json.jbuilder b/app/views/api/v1/models/_agent.json.jbuilder index fd7119ca5..02601d6b0 100644 --- a/app/views/api/v1/models/_agent.json.jbuilder +++ b/app/views/api/v1/models/_agent.json.jbuilder @@ -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?