Class: Audiences::Scim::ResourcesQuery
- Inherits:
-
Object
- Object
- Audiences::Scim::ResourcesQuery
- Includes:
- Enumerable
- Defined in:
- lib/audiences/scim/resources_query.rb
Instance Attribute Summary collapse
-
#query_options ⇒ Object
readonly
Returns the value of attribute query_options.
Instance Method Summary collapse
- #all ⇒ Object
- #each(all: false, &block) ⇒ Object
-
#initialize(client, resource_type:, **query_options) ⇒ ResourcesQuery
constructor
A new instance of ResourcesQuery.
- #next_page ⇒ Object
- #next_page? ⇒ Boolean
- #resources ⇒ Object
Constructor Details
#initialize(client, resource_type:, **query_options) ⇒ ResourcesQuery
Returns a new instance of ResourcesQuery.
14 15 16 17 18 |
# File 'lib/audiences/scim/resources_query.rb', line 14 def initialize(client, resource_type:, **) @client = client @resource_type = resource_type @query_options = end |
Instance Attribute Details
#query_options ⇒ Object (readonly)
Returns the value of attribute query_options.
12 13 14 |
# File 'lib/audiences/scim/resources_query.rb', line 12 def @query_options end |
Instance Method Details
#all ⇒ Object
20 21 22 |
# File 'lib/audiences/scim/resources_query.rb', line 20 def all to_enum(:each, all: true) end |
#each(all: false, &block) ⇒ Object
24 25 26 27 |
# File 'lib/audiences/scim/resources_query.rb', line 24 def each(all: false, &block) resources.each(&block) next_page&.each(all: true, &block) if all end |
#next_page ⇒ Object
41 42 43 44 45 46 47 |
# File 'lib/audiences/scim/resources_query.rb', line 41 def next_page return unless next_page? current_page = @query_options.fetch(:page, 1) ResourcesQuery.new(@client, resource_type: @resource_type, **@query_options, page: current_page + 1) end |
#next_page? ⇒ Boolean
33 34 35 36 37 38 39 |
# File 'lib/audiences/scim/resources_query.rb', line 33 def next_page? start_index = response.fetch("startIndex", 1) per_page = response["itemsPerPage"].to_i total_results = response["totalResults"].to_i start_index + per_page <= total_results end |
#resources ⇒ Object
29 30 31 |
# File 'lib/audiences/scim/resources_query.rb', line 29 def resources @resources ||= response.fetch("Resources", []) end |