Class: RailsAuditLog::Graphql::Sources::RecordByIdSource

Inherits:
GraphQL::Dataloader::Source
  • Object
show all
Defined in:
lib/rails_audit_log/graphql/sources/record_by_id_source.rb

Instance Method Summary collapse

Constructor Details

#initialize(class_name) ⇒ RecordByIdSource

Returns a new instance of RecordByIdSource.



7
8
9
# File 'lib/rails_audit_log/graphql/sources/record_by_id_source.rb', line 7

def initialize(class_name)
  @class_name = class_name
end

Instance Method Details

#fetch(ids) ⇒ Object



11
12
13
14
15
16
17
# File 'lib/rails_audit_log/graphql/sources/record_by_id_source.rb', line 11

def fetch(ids)
  klass = @class_name.safe_constantize
  return ids.map { nil } unless klass

  records = klass.where(id: ids).index_by { |r| r.id.to_s }
  ids.map { |id| records[id]&.attributes }
end