10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
# File 'lib/pemilu/api.rb', line 10
def candidates(name: nil, party: nil, electoral_district: nil, election_year: nil, province: nil, gender: nil, religion: nil, legislative_body: nil, limit: 100, offset: nil)
uri = URI("http://api.pemiluapi.org/candidate/api/caleg")
params = {
apiKey: @key,
nama: name,
partai: party,
dapil: electoral_district,
tahun: election_year,
provinsi: province,
jenis_kelamin: gender,
agama: religion,
lembaga: legislative_body,
limit: limit,
offset: offset
}
params.delete_if{ |k,v| v.nil? }
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)
result = []
data = JSON.parse(respond.body) if respond.is_a?(Net::HTTPSuccess)
@total_candidate = data["data"]["results"]["total"]
candidates = data["data"]["results"]["caleg"]
candidates.each do |caleg|
result << Pemilu::Candidate.new(
id: caleg["id"],
name: caleg["nama"],
gender: caleg["jenis_kelamin"],
religion: caleg["agama"],
birthplace: caleg["tempat_lahir"],
date_of_birth: caleg["tanggal_lahir"],
marital_status: caleg["status_perkawinan"],
name_of_couples: caleg["nama_pasangan"],
number_of_children: caleg["jumlah_anak"],
village: caleg["kelurahan_tinggal"],
sub_district: caleg["kecamatan_tinggal"],
district: caleg["kab_kota_tinggal"],
province: {
"id" => caleg["provinsi"]["id"],
"name" => caleg["provinsi"]["nama"]
},
electoral_district: {
"id" => caleg["dapil"]["id"],
"nama" => caleg["dapil"]["nama"]
},
election_year: caleg["tahun"],
legislative_body: caleg["lembaga"],
party: caleg["partai"],
ordinal: caleg["urutan"],
picture: caleg["foto_url"])
end
return result
end
|