From 42f3d3a9cf8ddc9020cc12a5811d7fa1fd3d78c2 Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Wed, 17 Dec 2025 23:03:22 -0800 Subject: [PATCH] include crew_total_score in gw events index --- app/blueprints/api/v1/gw_event_blueprint.rb | 5 +++++ app/controllers/api/v1/gw_events_controller.rb | 12 +++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/app/blueprints/api/v1/gw_event_blueprint.rb b/app/blueprints/api/v1/gw_event_blueprint.rb index e90d205..99df5cd 100644 --- a/app/blueprints/api/v1/gw_event_blueprint.rb +++ b/app/blueprints/api/v1/gw_event_blueprint.rb @@ -19,6 +19,11 @@ module Api end end + # Include crew's total score if participation data is provided + field :crew_total_score, if: ->(_fn, event, options) { options[:participations]&.key?(event.id) } do |event, options| + options[:participations][event.id]&.total_individual_honors + end + view :with_participation do field :participation, if: ->(_fn, _obj, options) { options[:participation].present? } do |_, options| CrewGwParticipationBlueprint.render_as_hash(options[:participation], view: :summary) diff --git a/app/controllers/api/v1/gw_events_controller.rb b/app/controllers/api/v1/gw_events_controller.rb index 33a158f..27538a4 100644 --- a/app/controllers/api/v1/gw_events_controller.rb +++ b/app/controllers/api/v1/gw_events_controller.rb @@ -10,7 +10,17 @@ module Api # GET /gw_events def index events = GwEvent.order(start_date: :desc) - render json: GwEventBlueprint.render(events, root: :gw_events) + + # If user has a crew, include participation data for each event + participations_by_event = {} + if current_user&.crew + participations = current_user.crew.crew_gw_participations.includes(:gw_individual_scores) + participations.each do |p| + participations_by_event[p.gw_event_id] = p + end + end + + render json: GwEventBlueprint.render(events, root: :gw_events, participations: participations_by_event) end # GET /gw_events/:id