class SchoolDigger::Api
Public Instance Methods
autocomplete(query, options = {} )
click to toggle source
SchoolDigger::Api.new.autocomplete('San Die', st: “CA”)
# File lib/school_digger/api.rb, line 11 def autocomplete(query, options = {} ) available_options = %w(q st level boxLatitudeNW boxLongitudeNW boxLatitudeSE boxLongitudeSE returnCount) options = options.select {|k,v| available_options.include?(k.to_s)} options[:q] = query get "/autocomplete/schools", options end
district(district_id)
click to toggle source
SchoolDigger::Api.new.district(“0600001”)
# File lib/school_digger/api.rb, line 29 def district(district_id) response = get "/districts/#{district_id}" return "Not Found" if response.code == 404 response end
district_rankings(state, options = {} )
click to toggle source
SchoolDigger::Api.new.district_rankings('CA')
# File lib/school_digger/api.rb, line 36 def district_rankings(state, options = {} ) available_options = %w(st year page perPage) options = options.select {|k,v| available_options.include?(k.to_s)} options[:perPage] ||= 50 options[:page] ||= 1 get "/rankings/districts/#{state}", options end
districts(state, options = {} )
click to toggle source
SchoolDigger::Api.new.districts('CA')
# File lib/school_digger/api.rb, line 19 def districts(state, options = {} ) available_options = %w(st q city zip nearLatitude nearLongitude boundaryAddress distanceMiles isInBoundaryOnly boxLatitudeNW boxLongitudeNW boxLatitudeSE boxLongitudeSE page perPage sortBy) options = options.select {|k,v| available_options.include?(k.to_s)} options[:st] = state options[:perPage] ||= 50 options[:page] ||= 1 get "/districts", options end
get(path, query = {})
click to toggle source
# File lib/school_digger/api.rb, line 6 def get(path, query = {}) response = self.class.get(school_digger_url_base + path, query: modify_query(query), timeout: 30) end
next_page(response)
click to toggle source
response = SchoolDigger::Api.new.districts('CA') next_page_response = SchoolDigger::Api.new.next_page(response)
# File lib/school_digger/api.rb, line 74 def next_page(response) max_pages = response["numberOfPages"] original_query = response.request.options[:query] current_page = original_query[:page] next_page = current_page.to_i + 1 raise "Already at Last Page" if current_page >= max_pages query = original_query.merge({page: next_page}) SchoolDigger::Api.get( response.request.path, query: query, timeout: 30) end
school(school_id)
click to toggle source
SchoolDigger::Api.new.school(“490003601072”)
# File lib/school_digger/api.rb, line 57 def school(school_id) response = get "/schools/#{school_id}" return "Not Found" if response.code == 404 response end
school_rankings(state, options = {} )
click to toggle source
SchoolDigger::Api.new.school_rankings('CA')
# File lib/school_digger/api.rb, line 64 def school_rankings(state, options = {} ) available_options = %w(st year level page perPage) options = options.select {|k,v| available_options.include?(k.to_s)} options[:perPage] ||= 50 options[:page] ||= 1 get "/rankings/schools/#{state}", options end
schools(state, options = {} )
click to toggle source
SchoolDigger::Api.new.schools('CA') SchoolDigger::Api.new.schools('CA', q: “East High”)
# File lib/school_digger/api.rb, line 47 def schools(state, options = {} ) available_options = %w(st q districtID level city zip isMagnet isCharter isVirtual isTitleI isTitleISchoolwide nearLatitude nearLongitude boundaryAddress distanceMiles isInBoundaryOnly boxLatitudeNW boxLongitudeNW boxLatitudeSE boxLongitudeSE page perPage sortBy) options = options.select {|k,v| available_options.include?(k.to_s)} options[:st] = state options[:perPage] ||= 50 options[:page] ||= 1 get "/schools", options end
Private Instance Methods
modify_query(query)
click to toggle source
# File lib/school_digger/api.rb, line 87 def modify_query(query) default_params = { appID: ENV.fetch("SCHOOL_DIGGER_APP_ID", 'not-implemented'), appKey: ENV.fetch("SCHOOL_DIGGER_APP_KEY", 'not-implemented') } default_params.merge query end
school_digger_api_version()
click to toggle source
# File lib/school_digger/api.rb, line 100 def school_digger_api_version @school_digger_api_version ||= ENV.fetch("SCHOOL_DIGGER_API_VERSION", "1.1") end
school_digger_url_base()
click to toggle source
# File lib/school_digger/api.rb, line 104 def school_digger_url_base @school_digger_url_base ||= "#{school_digger_url_endpoint}/v#{school_digger_api_version}" end
school_digger_url_endpoint()
click to toggle source
# File lib/school_digger/api.rb, line 96 def school_digger_url_endpoint @school_digger_url_endpoint ||= ENV.fetch("SCHOOL_DIGGER_BASE_URL", "https://api.schooldigger.com") end