Class: Apiwork::Adapter::Standard::Capability::Pagination::ContractBuilder

Inherits:
Capability::Contract::Base show all
Defined in:
lib/apiwork/adapter/standard/capability/pagination/contract_builder.rb

Instance Attribute Summary

Attributes inherited from Capability::Contract::Base

#options, #scope

Attributes inherited from Builder::Contract::Base

#representation_class

Instance Method Summary collapse

Methods inherited from Capability::Contract::Base

#initialize

Methods inherited from Builder::Contract::Base

#api_class, #contract_for, #enum, #enum?, #import, #initialize, #object, #scoped_enum_name, #scoped_type_name, #type?, #union

Constructor Details

This class inherits a constructor from Apiwork::Adapter::Capability::Contract::Base

Instance Method Details

#buildObject



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/apiwork/adapter/standard/capability/pagination/contract_builder.rb', line 9

def build
  return unless scope.action?(:index)

  object(:page) do |object|
    if options.strategy == :cursor
      object.string?(:after)
      object.string?(:before)
    else
      object.integer?(:number, min: 1)
    end
    object.integer?(:size, max: options.max_size, min: 1)
  end

  action(:index) do |action|
    action.request do |request|
      request.query do |query|
        query.reference?(:page)
      end
    end
  end
end