- CrewsController: create, show, update, members, leave, transfer_captain - CrewMembershipsController: update, destroy, promote, demote - CrewAuthorizationConcern for member/officer/captain checks - blueprints for serialization - custom error classes for crew operations
25 lines
604 B
Ruby
25 lines
604 B
Ruby
# frozen_string_literal: true
|
|
|
|
module Api
|
|
module V1
|
|
class CrewMembershipBlueprint < ApiBlueprint
|
|
fields :role, :retired, :retired_at, :created_at
|
|
|
|
view :with_user do
|
|
fields :role, :retired, :retired_at, :created_at
|
|
|
|
field :user do |membership|
|
|
UserBlueprint.render_as_hash(membership.user, view: :minimal)
|
|
end
|
|
end
|
|
|
|
view :with_crew do
|
|
fields :role, :retired, :retired_at, :created_at
|
|
|
|
field :crew do |membership|
|
|
CrewBlueprint.render_as_hash(membership.crew, view: :minimal)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|