Skip to content

Commit e4cbb71

Browse files
authored
Merge pull request #1733 from coderdojo-japan/update_event_data_keys_to_symbol
doorkeeperの近日開催イベント収集の問題を解消
2 parents 92ac900 + d14608f commit e4cbb71

File tree

5 files changed

+89
-33
lines changed

5 files changed

+89
-33
lines changed

lib/event_service/providers/doorkeeper.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ def fetch_events(group_id:, since_at: @default_since, until_at: @default_until)
3131

3232
break if part.size.zero?
3333

34-
events.push(*part.map { |e| e['event'] })
34+
events.push(*part.map { |e| e[:event] })
3535

3636
break if part.size < 25 # 25 items / 1 request
3737

lib/statistics/tasks/doorkeeper.rb

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,16 @@ def run
2020
dojo.dojo_event_services.for(:doorkeeper).each do |dojo_event_service|
2121
events = @client.fetch_events(**@params.merge(group_id: dojo_event_service.group_id))
2222
(events || []).compact.each do |e|
23-
next unless e['group'].to_s == dojo_event_service.group_id
23+
next unless e[:group].to_s == dojo_event_service.group_id
2424

2525
EventHistory.create!(dojo_id: dojo.id,
2626
dojo_name: dojo.name,
2727
service_name: dojo_event_service.name,
2828
service_group_id: dojo_event_service.group_id,
29-
event_id: e['id'],
30-
event_url: e['public_url'],
31-
participants: e['participants'],
32-
evented_at: Time.zone.parse(e['starts_at']))
29+
event_id: e[:id],
30+
event_url: e[:public_url],
31+
participants: e[:participants],
32+
evented_at: Time.zone.parse(e[:starts_at]))
3333
end
3434
end
3535
end

lib/upcoming_events/tasks/doorkeeper.rb

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,20 @@ def run
1313
events = @client.fetch_events(**@params.merge(group_id: dojo_event_service.group_id))
1414
puts "[Doorkeeper] dojo_id: #{dojo.id}, group_id: #{dojo_event_service.group_id}, fetched events: #{events&.size || 0}"
1515
(events || []).compact.each do |e|
16-
puts "[Doorkeeper] event_id: #{e.fetch('id')}, title: #{e.fetch('title')}"
17-
next unless e.fetch('group').to_s == dojo_event_service.group_id
16+
puts "[Doorkeeper] event_id: #{e.fetch(:id)}, title: #{e.fetch(:title)}"
17+
next unless e.fetch(:group).to_s == dojo_event_service.group_id
1818

19-
record = dojo_event_service.upcoming_events.find_or_initialize_by(event_id: e.fetch('id'))
19+
record = dojo_event_service.upcoming_events.find_or_initialize_by(event_id: e.fetch(:id))
2020
record.update!(service_name: dojo_event_service.name,
21-
event_title: e.fetch('title'),
22-
event_url: e.fetch('public_url'),
23-
participants: e.fetch('participants'),
24-
event_at: Time.zone.parse(e.fetch('starts_at')),
25-
event_end_at: Time.zone.parse(e.fetch('ends_at')),
26-
event_update_at: Time.zone.parse(e.fetch('updated_at')),
27-
address: e.fetch('address'),
28-
place: e.fetch('venue_name'),
29-
limit: e.fetch('ticket_limit'))
21+
event_title: e.fetch(:title),
22+
event_url: e.fetch(:public_url),
23+
participants: e.fetch(:participants),
24+
event_at: Time.zone.parse(e.fetch(:starts_at)),
25+
event_end_at: Time.zone.parse(e.fetch(:ends_at)),
26+
event_update_at: Time.zone.parse(e.fetch(:updated_at)),
27+
address: e.fetch(:address),
28+
place: e.fetch(:venue_name),
29+
limit: e.fetch(:ticket_limit))
3030
end
3131
end
3232
end

spec/lib/event_service/providers/doorkeeper_spec.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010
it do
1111
expect(subject).to be_instance_of(Array)
1212
expect(subject.size).to eq 1
13-
expect(subject.first['event']['id']).to eq 1234
14-
expect(subject.first['event']['group']).to eq 5555
13+
expect(subject.first[:event][:id]).to eq 1234
14+
expect(subject.first[:event][:group]).to eq 5555
1515
end
1616
end
1717

@@ -21,8 +21,8 @@
2121
it do
2222
expect(subject).to be_instance_of(Array)
2323
expect(subject.size).to eq 1
24-
expect(subject.first['id']).to eq 1234
25-
expect(subject.first['group']).to eq 5555
24+
expect(subject.first[:id]).to eq 1234
25+
expect(subject.first[:group]).to eq 5555
2626
end
2727
end
2828
end

spec/support/shared_contexts/statistics.rb

Lines changed: 67 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,29 @@
8383
[
8484
200,
8585
{ 'Content-Type' => 'application/json' },
86-
'[{"event":{"title":"CoderDojo title","id":1234,"starts_at":"2017-05-28T01:00:00.000Z","ends_at":"2017-05-28T04:00:00.000Z","venue_name":"奥多摩町","address":"奥多摩町","lat":"35.801763000000","long":"139.087656000000","ticket_limit":30,"published_at":"2017-04-22T03:43:04.000Z","updated_at":"2017-05-10T11:31:21.810Z","group":5555,"banner":null,"description":"CoderDojo description","public_url":"https://coderdojo-okutama.doorkeeper.jp/events/8888","participants":12,"waitlisted":0}}]'
86+
[
87+
{
88+
event: {
89+
title: "CoderDojo title",
90+
id: 1234,
91+
starts_at: (Time.zone.today.prev_month + 10.days).to_time.utc.iso8601,
92+
ends_at: (Time.zone.today.prev_month + 10.days + 3.hours).to_time.utc.iso8601,
93+
venue_name: "奥多摩町",
94+
address: "奥多摩町",
95+
lat: "35.801763000000",
96+
long: "139.087656000000",
97+
ticket_limit: 30,
98+
published_at: (Time.zone.today.prev_month - 5.days).to_time.utc.iso8601,
99+
updated_at: (Time.zone.today.prev_month - 1.day).to_time.utc.iso8601,
100+
group: 5555,
101+
banner: nil,
102+
description: "CoderDojo description",
103+
public_url: "https://coderdojo-okutama.doorkeeper.jp/events/8888",
104+
participants: 12,
105+
waitlisted: 0
106+
}
107+
}
108+
]
87109
]
88110
end
89111
end
@@ -128,16 +150,50 @@
128150
[
129151
200,
130152
{ 'Content-Type' => 'application/json' },
131-
'[{"event":{"title":"CoderDojo title","id":1234,"starts_at":"' +
132-
"#{Time.zone.today + 1.month}T01:00:00.000Z" + '","ends_at":"' +
133-
"#{Time.zone.today + 1.month}T04:00:00.000Z" + '","venue_name":"奥多摩町","address":"奥多摩町","lat":"35.801763000000","long":"139.087656000000","ticket_limit":30,"published_at":"' +
134-
"#{Time.zone.today - 4.days}T03:43:04.000Z" + '","updated_at":"' +
135-
"#{Time.zone.today}T11:31:21.810Z" + '","group":5555,"banner":null,"description":"CoderDojo description","public_url":"https://coderdojo-okutama.doorkeeper.jp/events/8888","participants":12,"waitlisted":0}},' +
136-
'{"event":{"title":"CoderDojo title","id":2345,"starts_at":"' +
137-
"#{Time.zone.today + 1.month + 1.day}T01:00:00.000Z" + '","ends_at":"' +
138-
"#{Time.zone.today + 1.month + 1.day}T04:00:00.000Z" + '","venue_name":"奥多摩町","address":"奥多摩町","lat":"35.801763000000","long":"139.087656000000","ticket_limit":30,"published_at":"' +
139-
"#{Time.zone.today - 4.days}T03:43:04.000Z" + '","updated_at":"' +
140-
"#{Time.zone.today}T11:31:21.810Z" + '","group":5555,"banner":null,"description":"CoderDojo description","public_url":"https://coderdojo-okutama.doorkeeper.jp/events/8888","participants":12,"waitlisted":0}}]'
153+
[
154+
{
155+
event: {
156+
title: "CoderDojo title",
157+
id: 1234,
158+
starts_at: "#{Time.zone.today + 1.month}T01:00:00.000Z",
159+
ends_at: "#{Time.zone.today + 1.month}T04:00:00.000Z",
160+
venue_name: "奥多摩町",
161+
address: "奥多摩町",
162+
lat: "35.801763000000",
163+
long: "139.087656000000",
164+
ticket_limit: 30,
165+
published_at: "#{Time.zone.today - 4.days}T03:43:04.000Z",
166+
updated_at: "#{Time.zone.today}T11:31:21.810Z",
167+
group: 5555,
168+
banner: nil,
169+
description: "CoderDojo description",
170+
public_url: "https://coderdojo-okutama.doorkeeper.jp/events/8888",
171+
participants: 12,
172+
waitlisted: 0
173+
}
174+
},
175+
{
176+
event: {
177+
title: "CoderDojo title",
178+
id: 2345,
179+
starts_at: "#{Time.zone.today + 1.month + 1.day}T01:00:00.000Z",
180+
ends_at: "#{Time.zone.today + 1.month + 1.day}T04:00:00.000Z",
181+
venue_name: "奥多摩町",
182+
address: "奥多摩町",
183+
lat: "35.801763000000",
184+
long: "139.087656000000",
185+
ticket_limit: 30,
186+
published_at: "#{Time.zone.today - 4.days}T03:43:04.000Z",
187+
updated_at: "#{Time.zone.today}T11:31:21.810Z",
188+
group: 5555,
189+
banner: nil,
190+
description: "CoderDojo description",
191+
public_url: "https://coderdojo-okutama.doorkeeper.jp/events/8888",
192+
participants: 12,
193+
waitlisted: 0
194+
}
195+
}
196+
]
141197
]
142198
end
143199
end

0 commit comments

Comments
 (0)