Class: HQ::GraphQL::FieldExtension::PaginatedLoader

Inherits:
GraphQL::Schema::FieldExtension
  • Object
show all
Defined in:
lib/hq/graphql/field_extension/paginated_loader.rb

Instance Method Summary collapse

Instance Method Details

#resolve(object:, arguments:, **_options) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/hq/graphql/field_extension/paginated_loader.rb', line 9

def resolve(object:, arguments:, **_options)
  limit       = arguments[:limit]
  offset      = arguments[:offset]
  sort_by     = arguments[:sort_by]
  sort_order  = arguments[:sort_order]
  scope       = field.scope.call(**arguments.except(:limit, :offset, :sort_by, :sort_order)) if field.scope
  loader      = PaginatedAssociationLoader.for(
    klass,
    association,
    internal_association: internal_association,
    scope:                scope,
    limit:                limit,
    offset:               offset,
    sort_by:              sort_by,
    sort_order:           sort_order
  )

  loader.load(object.object)
end