@@ -35,35 +35,48 @@ def group_by_keyword(keyword)
35
35
where ( 'event_title like(?)' , "%#{ keyword } %" )
36
36
end
37
37
38
- def for_dojo_map
38
+ def for_dojo_map ( all_events = false )
39
39
result = [ ]
40
40
list_of_dojo_and_events = eager_load ( dojo_event_service : :dojo )
41
41
. since ( Time . zone . today )
42
42
. merge ( Dojo . default_order )
43
43
. group_by { |event | event . dojo_event_service . dojo }
44
-
44
+
45
45
list_of_dojo_and_events . each do |dojo , events |
46
- event = events . sort_by ( &:event_at ) . first
47
- result << {
48
- id : dojo . id ,
49
- name : dojo . name ,
50
- url : dojo . url ,
51
- event_id : event [ :id ] ,
52
- event_title : event [ :event_title ] ,
53
- event_date : event [ :event_at ] ,
54
- event_end_at : event [ :event_end_at ] ,
55
- event_url : event [ :event_url ] ,
56
- prefecture : dojo . prefecture . name ,
57
- participants : event [ :participants ] ,
58
- event_update_at : event [ :event_update_at ] ,
59
- address : event [ :address ] ,
60
- place : event [ :place ] ,
61
- limit : event [ :limit ]
62
- }
46
+ sorted_events = events . sort_by ( &:event_at )
47
+ if all_events
48
+ sorted_events . each do |event |
49
+ result << build_event_hash ( dojo , event )
50
+ end
51
+ else
52
+ event = sorted_events . first
53
+ result << build_event_hash ( dojo , event )
54
+ end
63
55
end
64
-
56
+
65
57
result
66
58
end
59
+
60
+ private
61
+
62
+ def build_event_hash ( dojo , event )
63
+ {
64
+ id : dojo . id ,
65
+ name : dojo . name ,
66
+ url : dojo . url ,
67
+ event_id : event [ :id ] ,
68
+ event_title : event [ :event_title ] ,
69
+ event_date : event [ :event_at ] ,
70
+ event_end_at : event [ :event_end_at ] ,
71
+ event_url : event [ :event_url ] ,
72
+ prefecture : dojo . prefecture . name ,
73
+ participants : event [ :participants ] ,
74
+ event_update_at : event [ :event_update_at ] ,
75
+ address : event [ :address ] ,
76
+ place : event [ :place ] ,
77
+ limit : event [ :limit ]
78
+ }
79
+ end
67
80
end
68
81
69
82
def catalog
0 commit comments