From 534414939b1ec69b53ec225e756d50cd07a20dfb Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Sat, 13 Dec 2025 20:09:44 -0800 Subject: [PATCH] add current_membership to crew response --- app/blueprints/api/v1/crew_blueprint.rb | 8 ++++++++ app/controllers/api/v1/crews_controller.rb | 8 ++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/app/blueprints/api/v1/crew_blueprint.rb b/app/blueprints/api/v1/crew_blueprint.rb index 25aa390..36bd775 100644 --- a/app/blueprints/api/v1/crew_blueprint.rb +++ b/app/blueprints/api/v1/crew_blueprint.rb @@ -24,6 +24,14 @@ module Api field :vice_captains do |crew| UserBlueprint.render_as_hash(crew.vice_captains, view: :minimal) end + + field :current_membership do |crew, options| + current_user = options[:current_user] + next nil unless current_user + + membership = crew.crew_memberships.find_by(user_id: current_user.id, retired: false) + CrewMembershipBlueprint.render_as_hash(membership) if membership + end end view :with_members do diff --git a/app/controllers/api/v1/crews_controller.rb b/app/controllers/api/v1/crews_controller.rb index 42d95f9..24a33f1 100644 --- a/app/controllers/api/v1/crews_controller.rb +++ b/app/controllers/api/v1/crews_controller.rb @@ -14,7 +14,7 @@ module Api # GET /crew or GET /crews/:id def show - render json: CrewBlueprint.render(@crew, view: :full, root: :crew) + render json: CrewBlueprint.render(@crew, view: :full, root: :crew, current_user: current_user) end # POST /crews @@ -28,13 +28,13 @@ module Api CrewMembership.create!(crew: @crew, user: current_user, role: :captain) end - render json: CrewBlueprint.render(@crew, view: :full, root: :crew), status: :created + render json: CrewBlueprint.render(@crew.reload, view: :full, root: :crew, current_user: current_user), status: :created end # PUT /crew def update if @crew.update(crew_params) - render json: CrewBlueprint.render(@crew, view: :full, root: :crew) + render json: CrewBlueprint.render(@crew, view: :full, root: :crew, current_user: current_user) else render_validation_error_response(@crew) end @@ -92,7 +92,7 @@ module Api new_captain_membership.update!(role: :captain) end - render json: CrewBlueprint.render(@crew.reload, view: :full, root: :crew) + render json: CrewBlueprint.render(@crew.reload, view: :full, root: :crew, current_user: current_user) end private