Method: Pemilu::API#electoral_district

Defined in:
lib/pemilu/api.rb

#electoral_district(id) ⇒ Object



227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
# File 'lib/pemilu/api.rb', line 227

def electoral_district(id)
  uri = URI("http://api.pemiluapi.org/candidate/api/dapil/#{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 Electoral District with id: #{id}" if respond.is_a?(Net::HTTPInternalServerError)

  data = JSON.parse(respond.body) if respond.is_a?(Net::HTTPSuccess)
  ed = data["data"]["results"]["dapil"][0]
  return Pemilu::ElectoralDistrict.new(
      id: ed["id"],
      name: ed["nama"],
      full_name: ed["nama_lengkap"],
      legislative_body: ed["nama_lembaga"],
      available_chairs: ed["jumlah_kursi"],
      population: ed["jumlah_penduduk"],
      province: {
        "id" => ed["provinsi"]["id"],
        "name" => ed["provinsi"]["nama"]
      })
end