Skip to content

Instantly share code, notes, and snippets.

@Nakort
Created October 23, 2012 16:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Nakort/3939723 to your computer and use it in GitHub Desktop.
Save Nakort/3939723 to your computer and use it in GitHub Desktop.
get_stats for a district in clever
require 'net/https'
require 'json'
def get_resource(url)
uri = URI("https://api.getclever.com#{url}")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_PEER
request = Net::HTTP::Get.new(uri.request_uri)
request.basic_auth('DEMO_KEY','')
response = http.request(request)
JSON.parse(response.body)
end
def get_raw_data
districts = get_resource("/v1.1/districts/")['data']
districts_complete = []
districts.each do |dc|
district_complete = get_resource(dc["uri"])
schools = get_resource(district_complete["links"][1]["uri"])['data']
district_complete["schools"] = []
schools.each do |sc|
school_complete = get_resource(sc["uri"])
school_complete["teachers"] = get_resource(school_complete["links"][2]["uri"])['data']
district_complete["schools"] << school_complete
end
districts_complete << district_complete
end
districts_complete
end
def get_stats
raw_data = get_raw_data
raw_data.each do |dc|
puts "District: #{dc['data']['name']}"
puts " Number of schools: #{dc["schools"].length}"
puts " Number of teachers: #{dc["schools"].reduce(0){|total, school| total + school["teachers"].length }}"
puts " Schools:"
dc["schools"].each do |sc|
puts " #{sc["data"]['name']}"
puts " Teachers:"
sc["teachers"].each do |tc|
puts " #{tc['data']['name']['first']} #{tc['data']['name']['middle']} #{tc['data']['name']['last'] } "
end
end
end
nil
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment