lib/neetob/cli/cronitor/base.rb in neetob-0.5.32 vs lib/neetob/cli/cronitor/base.rb in neetob-0.5.33
- old
+ new
@@ -30,19 +30,35 @@
raise(StandardError, "Request failed with status code #{http_result.code}: #{error_message}")
end
end
def get(username:, password:, headers: { "Accept" => "application/json" })
- uri = URI(MONITORS_URL)
- request = Net::HTTP::Get.new(uri)
- headers.each { |key, value| request[key] = value }
- request.basic_auth(username, password)
+ monitors = []
+ move_to_next_page = true
+ page = 1
+ while move_to_next_page
+ url_to_fetch_from = MONITORS_URL
+ url_to_fetch_from += "?page=#{page}" if page > 1
+ uri = URI(url_to_fetch_from)
+ request = Net::HTTP::Get.new(uri)
+ headers.each { |key, value| request[key] = value }
+ request.basic_auth(username, password)
- response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http|
- http.request(request)
- end
+ response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http|
+ http.request(request)
+ end
- parse_response(response)
+ parsed_response = parse_response(response)
+ total_monitor_count = parsed_response[:total_monitor_count]
+ page_size = parsed_response[:page_size]
+ if total_monitor_count > (page * page_size)
+ page += 1
+ else
+ move_to_next_page = false
+ end
+ monitors += parsed_response[:monitors]
+ end
+ monitors
end
end
end
end
end