-
-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathget_data_from_zen.rb
More file actions
executable file
·52 lines (45 loc) · 1.08 KB
/
get_data_from_zen.rb
File metadata and controls
executable file
·52 lines (45 loc) · 1.08 KB
1
2
3
4
5
6
7
8
9
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
#!/usr/bin/env ruby
require 'net/http'
require 'uri'
require 'json'
uri = URI.parse("https://zen.coderdojo.com/api/2.0/dojos")
request = Net::HTTP::Post.new(uri)
request.content_type = "application/json"
request["Accept"] = "application/json"
request.body = JSON.dump({
"query" => {
"verified" => 1,
"deleted" => 0,
"fields$" => [
"name",
"geo_point",
"country",
"stage",
"url_slug",
"start_time",
"end_time",
"private",
"frequency",
"alternative_frequency",
"day"
]
}
})
req_options = {
use_ssl: uri.scheme == "https",
}
response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
http.request(request)
end
DOJOS_DATA = JSON.parse response.body, symbolize_names: true
DOJOS_JSON = JSON.pretty_generate DOJOS_DATA.sort_by{|dojo| dojo[:id]}
File.open("dojos_earth.json", "w") do |file|
file.write(DOJOS_JSON)
end
# Show next step for developers
puts DOJOS_JSON
puts ''
puts 'Status Code: ' + response.code
puts ''
puts 'Check out JSON data you fetched by:'
puts '$ cat dojos_earth.json'