Method: Pemilu::API#province

Defined in:
lib/pemilu/api.rb

#province(id) ⇒ Object



174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
# File 'lib/pemilu/api.rb', line 174

def province(id)
  uri = URI("http://api.pemiluapi.org/candidate/api/provinsi/#{id}")
  params = { apiKey: @key }
  uri.query = URI.encode_www_form(params)
  respond = Net::HTTP.get_response(uri)
  return "Invalid request error. Please check your API key" if respond.is_a?(Net::HTTPUnauthorized)
  return "Can't get Province with id: #{id}" if respond.is_a?(Net::HTTPBadRequest)

  data = JSON.parse(respond.body) if respond.is_a?(Net::HTTPSuccess)
  province = data["data"]["results"]["provinsi"][0]
  return Pemilu::Province.new(
      id: province["id"].to_i,
      name: province["nama"],
      full_name: province["nama_lengkap"],
      international_name: province["nama_inggris"],
      available_chairs: province["jumlah_kursi"],
      electoral_district: province["dapil"],
      population: province["jumlah_penduduk"])
end