Class: Organizations::InvitationAcceptanceFailure

Inherits:
Object
  • Object
show all
Defined in:
lib/organizations/invitation_acceptance_failure.rb

Overview

Value object representing a failed invitation acceptance attempt.

Constant Summary collapse

REASONS =
%i[
  missing_user
  missing_token
  invitation_not_found
  invitation_expired
  email_mismatch
  already_accepted_without_membership
].freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(reason:, invitation: nil) ⇒ InvitationAcceptanceFailure

Returns a new instance of InvitationAcceptanceFailure.



17
18
19
20
21
22
23
24
# File 'lib/organizations/invitation_acceptance_failure.rb', line 17

def initialize(reason:, invitation: nil)
  unless REASONS.include?(reason)
    raise ArgumentError, "Invalid reason: #{reason.inspect}. Must be one of: #{REASONS.join(', ')}"
  end

  @reason = reason
  @invitation = invitation
end

Instance Attribute Details

#invitationObject (readonly)

Returns the value of attribute invitation.



15
16
17
# File 'lib/organizations/invitation_acceptance_failure.rb', line 15

def invitation
  @invitation
end

#reasonObject (readonly)

Returns the value of attribute reason.



15
16
17
# File 'lib/organizations/invitation_acceptance_failure.rb', line 15

def reason
  @reason
end

Instance Method Details

#failure?Boolean

Returns:

  • (Boolean)


30
31
32
# File 'lib/organizations/invitation_acceptance_failure.rb', line 30

def failure?
  true
end

#failure_reasonObject



34
35
36
# File 'lib/organizations/invitation_acceptance_failure.rb', line 34

def failure_reason
  reason
end

#success?Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/organizations/invitation_acceptance_failure.rb', line 26

def success?
  false
end