Class: VitableConnect::Plans::Client
- Inherits:
-
Object
- Object
- VitableConnect::Plans::Client
- Defined in:
- lib/VitableConnect/plans/client.rb
Instance Method Summary collapse
- #initialize(client:) ⇒ void constructor
-
#list(request_options: {}, **params) ⇒ VitableConnect::Types::PlanListResponse
Returns a paginated list of benefit plans linked to the authenticated organization.
Constructor Details
#initialize(client:) ⇒ void
9 10 11 |
# File 'lib/VitableConnect/plans/client.rb', line 9 def initialize(client:) @client = client end |
Instance Method Details
#list(request_options: {}, **params) ⇒ VitableConnect::Types::PlanListResponse
Returns a paginated list of benefit plans linked to the authenticated organization.
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/VitableConnect/plans/client.rb', line 32 def list(request_options: {}, **params) params = VitableConnect::Internal::Types::Utils.normalize_keys(params) query_params = {} query_params["limit"] = params[:limit] if params.key?(:limit) query_params["page"] = params[:page] if params.key?(:page) VitableConnect::Internal::OffsetItemIterator.new( initial_page: query_params["page"], item_field: :data, has_next_field: nil, step: false ) do |next_page| query_params["page"] = next_page request = VitableConnect::Internal::JSON::Request.new( base_url: [:base_url], method: "GET", path: "v1/plans", query: query_params, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise VitableConnect::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) parsed_response = VitableConnect::Types::PlanListResponse.load(response.body) [parsed_response, response] else error_class = VitableConnect::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end end |