Class: ShopifyApiBruv::Resources::Rest::Pagination

Inherits:
Object
  • Object
show all
Defined in:
lib/shopify_api_bruv/resources/rest/pagination.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(resource:, page_info:) ⇒ Pagination

Returns a new instance of Pagination.



9
10
11
12
# File 'lib/shopify_api_bruv/resources/rest/pagination.rb', line 9

def initialize(resource:, page_info:)
  @resource = resource
  @page_info = page_info
end

Instance Attribute Details

#page_infoObject (readonly)

Returns the value of attribute page_info.



7
8
9
# File 'lib/shopify_api_bruv/resources/rest/pagination.rb', line 7

def page_info
  @page_info
end

#resourceObject (readonly)

Returns the value of attribute resource.



7
8
9
# File 'lib/shopify_api_bruv/resources/rest/pagination.rb', line 7

def resource
  @resource
end

Instance Method Details

#fetch_next_pageObject



26
27
28
29
30
31
# File 'lib/shopify_api_bruv/resources/rest/pagination.rb', line 26

def fetch_next_page
  raise Errors::ResourceError, 'Next page cursor not found' unless next_page?

  resource.query[:page_info] = page_info[:next]
  resource.call
end

#fetch_previous_pageObject



33
34
35
36
37
38
# File 'lib/shopify_api_bruv/resources/rest/pagination.rb', line 33

def fetch_previous_page
  raise Errors::ResourceError, 'Previous page cursor not found' unless previous_page?

  resource.query[:page_info] = page_info[:previous]
  resource.call
end

#next_page?Boolean

Returns:

  • (Boolean)


14
15
16
# File 'lib/shopify_api_bruv/resources/rest/pagination.rb', line 14

def next_page?
  !page_info[:next].nil?
end

#page_exists?Boolean

Returns:

  • (Boolean)


22
23
24
# File 'lib/shopify_api_bruv/resources/rest/pagination.rb', line 22

def page_exists?
  next_page? || previous_page?
end

#previous_page?Boolean

Returns:

  • (Boolean)


18
19
20
# File 'lib/shopify_api_bruv/resources/rest/pagination.rb', line 18

def previous_page?
  !page_info[:previous].nil?
end