class NexosisApi::ListQuery
Class to hold general query options for list requests @since 3.0.0
Attributes
page_number[RW]
zero-based page number of results to retrieve @return [Integer]
page_size[RW]
Count of results to retrieve in each page (max 1000). @return [Integer]
sort_by[RW]
The name of an entity property to sort by @return [String] @note - each entity has different possibilities. See the api doc links on each list type for more information.
sort_order[RW]
Direction to sort the results. @return [NexosisApi::SortOrder]
Public Class Methods
new(options = { 'page_number': 0, 'page_size': 50 }, *additional_keys)
click to toggle source
# File lib/nexosis_api/list_queries.rb, line 6 def initialize(options = { 'page_number': 0, 'page_size': 50 }, *additional_keys) assert_valid_keys(options, :page_number, :page_size, :sort_order, :sort_by, additional_keys) @page_number = options.key?(:page_number) ? options[:page_number] : 0 @page_size = options.key?(:page_size) ? options[:page_size] : 50 @sort_order = NexosisApi::SortOrder.const_get(options[:sort_order].upcase) if options.key? :sort_order @sort_by = options[:sort_by] if options.key? :sort_by end
Public Instance Methods
to_hash()
click to toggle source
# File lib/nexosis_api/list_queries.rb, line 14 def to_hash query = { 'page': @page_number, 'pageSize': @page_size } query.store(:sortOrder, @sort_order) unless @sort_order.nil? query.store(:sortBy, @sort_by) unless @sort_by.nil? query end
Private Instance Methods
assert_valid_keys(options, *valid_keys)
click to toggle source
# File lib/nexosis_api/list_queries.rb, line 49 def assert_valid_keys(options, *valid_keys) valid_keys.flatten! options.keys.each do |k| unless valid_keys.include?(k) raise ArgumentError.new("Unknown key: #{k.inspect}. Valid keys are: #{valid_keys.map(&:inspect).join(', ')}") end end end
date_string(date_field)
click to toggle source
# File lib/nexosis_api/list_queries.rb, line 43 def date_string(date_field) raise ArgumentError, 'date_field was not provided and is not optional ' if date_field.to_s.empty? date = DateTime.parse(date_field.to_s) date.strftime('%FT%T%:z') end