mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-26 20:56:48 +00:00
44 lines
1.0 KiB
Ruby
44 lines
1.0 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module Admin
|
|
class EnterpriseRolesQuery
|
|
class << self
|
|
def query
|
|
enterprise_roles = query_enterprise_roles
|
|
users = query_users
|
|
enterprises = query_enterprises
|
|
|
|
[enterprise_roles, users, enterprises]
|
|
end
|
|
|
|
private
|
|
|
|
def query_enterprise_roles
|
|
EnterpriseRole.joins(:user, :enterprise).order('spree_users.email ASC').
|
|
pluck(:id, :user_id, :enterprise_id, 'spree_users.email', 'enterprises.name').
|
|
map do |data|
|
|
id, user_id, enterprise_id, user_email, enterprise_name = data
|
|
|
|
{ id:, user_id:, enterprise_id:, user_email:, enterprise_name: }
|
|
end
|
|
end
|
|
|
|
def query_users
|
|
Spree::User.order(:email).pluck(:id, :email).map do |data|
|
|
id, email = data
|
|
|
|
{ id:, email: }
|
|
end
|
|
end
|
|
|
|
def query_enterprises
|
|
Enterprise.order(:name).pluck(:id, :name).map do |data|
|
|
id, name = data
|
|
|
|
{ id:, name: }
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|