Module: Plutonium::Invites::Concerns::ResendInvite

Extended by:
ActiveSupport::Concern
Defined in:
lib/plutonium/invites/concerns/resend_invite.rb

Overview

ResendInvite provides the core logic for resending invitations.

Include this in your ResendInviteInteraction to get the default behavior, then override methods as needed.

Examples:

Basic usage

class ResendInviteInteraction < Plutonium::Resource::Interaction
  include Plutonium::Invites::Concerns::ResendInvite
end

With custom expiry

class ResendInviteInteraction < Plutonium::Resource::Interaction
  include Plutonium::Invites::Concerns::ResendInvite

  def new_expiry
    2.weeks.from_now
  end
end

Instance Method Summary collapse

Instance Method Details

#executeObject



34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/plutonium/invites/concerns/resend_invite.rb', line 34

def execute
  unless resource.pending?
    return failed("Can only resend pending invitations")
  end

  resource.update!(expires_at: new_expiry)
  send_invitation_email

  succeed(resource).with_message(success_message)
rescue => error
  failed("Failed to resend: #{error.message}")
end