Class: Gitlab::Serializer::Pagination

Inherits:
Object
  • Object
show all
Defined in:
lib/gitlab/serializer/pagination.rb

Defined Under Namespace

Classes: CursorPagination

Constant Summary collapse

InvalidResourceError =
Class.new(StandardError)

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(request, response) ⇒ Pagination

Returns a new instance of Pagination.



37
38
39
40
# File 'lib/gitlab/serializer/pagination.rb', line 37

def initialize(request, response)
  @request = request
  @response = response
end

Instance Attribute Details

#requestObject (readonly)

Methods needed by Gitlab::Pagination::OffsetPagination



55
56
57
# File 'lib/gitlab/serializer/pagination.rb', line 55

def request
  @request
end

Instance Method Details

#header(header, value) ⇒ Object



61
62
63
# File 'lib/gitlab/serializer/pagination.rb', line 61

def header(header, value)
  @response.headers[header] = value
end

#paginate(resource) ⇒ Object



42
43
44
45
46
47
48
49
50
# File 'lib/gitlab/serializer/pagination.rb', line 42

def paginate(resource)
  if resource.respond_to?(:page)
    ::Gitlab::Pagination::OffsetPagination.new(self).paginate(resource)
  elsif resource.respond_to?(:cursor_for_next_page)
    CursorPagination.new(self).paginate(resource)
  else
    raise InvalidResourceError
  end
end

#paramsObject



57
58
59
# File 'lib/gitlab/serializer/pagination.rb', line 57

def params
  @request.query_parameters
end