- 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
36 lines
1,017 B
Ruby
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
|