@@ -7,6 +7,18 @@ module Controllers
77 class DraftSimulationsController < Api ::V1 ::BaseController
88 before_action :set_draft_simulation , only : %i[ update destroy ]
99
10+ # GET /api/v1/strategy/draft-simulations
11+ def list
12+ series = organization_scoped ( DraftSimulation )
13+ . select ( :series_id , :team1_name , :team2_name , :patch , :league , :fearless , :created_at ,
14+ :blue_picks , :red_picks , :blue_bans , :red_bans )
15+ . order ( created_at : :desc )
16+ . group_by ( &:series_id )
17+ . map { |series_id , games | build_series_summary ( series_id , games ) }
18+
19+ render_success ( { series : series } )
20+ end
21+
1022 # GET /api/v1/strategy/draft-simulations/:series_id
1123 def index
1224 simulations = organization_scoped ( DraftSimulation ) . for_series ( params [ :series_id ] )
@@ -70,6 +82,25 @@ def set_draft_simulation
7082 @draft_simulation = organization_scoped ( DraftSimulation ) . find ( params [ :id ] )
7183 end
7284
85+ def build_series_summary ( series_id , games )
86+ first = games . first
87+ total_picks = games . sum { |g | Array ( g . blue_picks ) . size + Array ( g . red_picks ) . size }
88+ total_bans = games . sum { |g | Array ( g . blue_bans ) . size + Array ( g . red_bans ) . size }
89+
90+ {
91+ series_id : series_id ,
92+ team1_name : first . team1_name ,
93+ team2_name : first . team2_name ,
94+ patch : first . patch ,
95+ league : first . league ,
96+ fearless : first . fearless ,
97+ game_count : games . size ,
98+ total_picks : total_picks ,
99+ total_bans : total_bans ,
100+ created_at : first . created_at
101+ }
102+ end
103+
73104 def create_params
74105 params . require ( :draft_simulation ) . permit (
75106 :series_id ,
0 commit comments