Class: Gitlab::Pagination::Keyset::CursorBasedRequestContext
- Inherits:
-
Object
- Object
- Gitlab::Pagination::Keyset::CursorBasedRequestContext
- Defined in:
- lib/gitlab/pagination/keyset/cursor_based_request_context.rb
Constant Summary collapse
- DEFAULT_SORT_DIRECTION =
:desc
- DEFAULT_SORT_COLUMN =
:id
Instance Attribute Summary collapse
-
#request_context ⇒ Object
readonly
Returns the value of attribute request_context.
Instance Method Summary collapse
- #apply_headers(cursor_for_next_page) ⇒ Object
- #cursor ⇒ Object
-
#initialize(request_context) ⇒ CursorBasedRequestContext
constructor
A new instance of CursorBasedRequestContext.
- #order ⇒ Object
- #order_by ⇒ Object
- #per_page ⇒ Object
- #sort ⇒ Object
Constructor Details
#initialize(request_context) ⇒ CursorBasedRequestContext
Returns a new instance of CursorBasedRequestContext.
14 15 16 |
# File 'lib/gitlab/pagination/keyset/cursor_based_request_context.rb', line 14 def initialize(request_context) @request_context = request_context end |
Instance Attribute Details
#request_context ⇒ Object (readonly)
Returns the value of attribute request_context.
10 11 12 |
# File 'lib/gitlab/pagination/keyset/cursor_based_request_context.rb', line 10 def request_context @request_context end |
Instance Method Details
#apply_headers(cursor_for_next_page) ⇒ Object
26 27 28 29 30 |
# File 'lib/gitlab/pagination/keyset/cursor_based_request_context.rb', line 26 def apply_headers(cursor_for_next_page) Gitlab::Pagination::Keyset::HeaderBuilder .new(request_context) .add_next_page_header({ cursor: cursor_for_next_page }) end |
#cursor ⇒ Object
22 23 24 |
# File 'lib/gitlab/pagination/keyset/cursor_based_request_context.rb', line 22 def cursor params[:cursor] end |
#order ⇒ Object
36 37 38 |
# File 'lib/gitlab/pagination/keyset/cursor_based_request_context.rb', line 36 def order params[:order_by]&.to_sym || DEFAULT_SORT_COLUMN end |
#order_by ⇒ Object
32 33 34 |
# File 'lib/gitlab/pagination/keyset/cursor_based_request_context.rb', line 32 def order_by { (params[:order_by]&.to_sym || DEFAULT_SORT_COLUMN) => (params[:sort]&.to_sym || DEFAULT_SORT_DIRECTION) } end |
#per_page ⇒ Object
18 19 20 |
# File 'lib/gitlab/pagination/keyset/cursor_based_request_context.rb', line 18 def per_page params[:per_page] end |
#sort ⇒ Object
40 41 42 |
# File 'lib/gitlab/pagination/keyset/cursor_based_request_context.rb', line 40 def sort params[:sort]&.to_sym || DEFAULT_SORT_DIRECTION end |