Sha256: eb5a84de20e8716201fb35aba2b99a5f547c116abcb3f2539eee6cbcbd87e6d4

Contents?: true

Size: 551 Bytes

Versions: 4

Compression:

Stored size: 551 Bytes

Contents

# frozen_string_literal: true

module SolidusGraphqlApi
  class BatchLoader
    # A batch loader for +has_one+ associations.
    class HasOne < BatchLoader
      def load
        graphql_loader_for(object.id) do |object_ids, loader|
          retrieve_records_for(object_ids).each do |record|
            loader.call(record.send(reflection.foreign_key), record)
          end
        end
      end

      private

      def retrieve_records_for(object_ids)
        base_relation.where(reflection.foreign_key => object_ids)
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
solidus_graphql_api-0.3.1 lib/solidus_graphql_api/batch_loader/has_one.rb
solidus_graphql_api-0.3.0 lib/solidus_graphql_api/batch_loader/has_one.rb
solidus_graphql_api-0.2.0 lib/solidus_graphql_api/batch_loader/has_one.rb
solidus_graphql_api-0.1.0 lib/solidus_graphql_api/batch_loader/has_one.rb