hensei-api/app/blueprints/api/v1/crew_invitation_blueprint.rb
Justin Edmund b75a905e2e add crew invitations system
- create crew_invitations table with status enum
- add CrewInvitation model with accept/reject flow
- add CrewInvitationsController for send/accept/reject
- add invitation error classes
- add invitation routes nested under crews
- add pending invitations endpoint for current user
- 38 passing specs for model and controller
2025-12-03 23:06:07 -08:00

36 lines
1,017 B
Ruby

# frozen_string_literal: true
module Api
module V1
class CrewInvitationBlueprint < ApiBlueprint
fields :status, :expires_at, :created_at
view :default do
field :crew do |invitation|
CrewBlueprint.render_as_hash(invitation.crew, view: :minimal)
end
end
view :with_user do
field :user do |invitation|
UserBlueprint.render_as_hash(invitation.user, view: :minimal)
end
field :invited_by do |invitation|
UserBlueprint.render_as_hash(invitation.invited_by, view: :minimal)
end
field :crew do |invitation|
CrewBlueprint.render_as_hash(invitation.crew, view: :minimal)
end
end
view :for_invitee do
field :crew do |invitation|
CrewBlueprint.render_as_hash(invitation.crew, view: :full)
end
field :invited_by do |invitation|
UserBlueprint.render_as_hash(invitation.invited_by, view: :minimal)
end
end
end
end
end