class Commands::Groups::Invitation::Create

Public Instance Methods

execute() click to toggle source
# File lib/restpack_group_service/commands/invitation/create.rb, line 20
def execute
  invitations = Models::Groups::Invitation.create!(inputs[:invitations])
  send_email(invitations)
  Serializers::Groups::Invitation.serialize(invitations)
end

Private Instance Methods

send_email(invitations) click to toggle source
# File lib/restpack_group_service/commands/invitation/create.rb, line 28
def send_email(invitations)
  invitations.each do |invitation|
    if invitation.email
      rsvp_url = invitation.configuration.data['rsvp_url']

      Messaging::Email::Send.run!({
        application_id: invitation.application_id,
        template: 'group.invitation',
        to: invitation.email,
        data: {
          inviter_name: invitation.inviter_name,
          access_key: invitation.access_key,
          group_name: invitation.group.name,
          accept_url: "#{rsvp_url}?access_key=#{invitation.access_key}",
          reject_url: "#{rsvp_url}?access_key=#{invitation.access_key}&accept=false"
        }
      })
    end
  end
end