Sha256: 51917be1779556b643ad49f7afdc8afd9a40b91b35ffe5b6dfd164ae48cad450

Contents?: true

Size: 1.39 KB

Versions: 38

Compression:

Stored size: 1.39 KB

Contents

module Effective
  class EventsMailer < EffectiveEvents.parent_mailer_class

    include EffectiveMailer
    include EffectiveEmailTemplatesMailer

    def event_registrant_purchased(resource, opts = {})
      raise('expected an Effective::EventRegistrant') unless resource.kind_of?(Effective::EventRegistrant)

      @assigns = assigns_for(resource)
      mail(to: resource.email, **headers_for(resource, opts))
    end

    protected

    def assigns_for(resource)
      if resource.kind_of?(EventRegistrant)
        return event_registrant_assigns(resource).merge(event_assigns(resource.event)).merge(event_ticket_assigns(resource.event_ticket))
      end

      raise('unexpected resource')
    end

    def event_assigns(resource)
      raise('expected an event') unless resource.kind_of?(Event)

      values = {
        name: resource.title,
        date: resource.start_at.strftime('%F %H:%M'),
        url: effective_events.event_url(resource)
      }

      { event: values }
    end

    def event_ticket_assigns(resource)
      raise('expected an event ticket') unless resource.kind_of?(EventTicket)

      values = { name: resource.title }
      { ticket: values }
    end

    def event_registrant_assigns(resource)
      raise('expected an event registrant') unless resource.kind_of?(EventRegistrant)

      values = { name: resource.name, email: resource.email }
      { registrant: values }
    end

  end
end

Version data entries

38 entries across 38 versions & 1 rubygems

Version Path
effective_events-2.25.1 app/mailers/effective/events_mailer.rb
effective_events-2.25.0 app/mailers/effective/events_mailer.rb
effective_events-0.24.0 app/mailers/effective/events_mailer.rb
effective_events-0.23.1 app/mailers/effective/events_mailer.rb
effective_events-0.23.0 app/mailers/effective/events_mailer.rb
effective_events-0.22.2 app/mailers/effective/events_mailer.rb
effective_events-0.22.1 app/mailers/effective/events_mailer.rb
effective_events-0.22.0 app/mailers/effective/events_mailer.rb
effective_events-0.21.3 app/mailers/effective/events_mailer.rb
effective_events-0.21.2 app/mailers/effective/events_mailer.rb
effective_events-0.21.1 app/mailers/effective/events_mailer.rb
effective_events-0.21.0 app/mailers/effective/events_mailer.rb
effective_events-0.20.6 app/mailers/effective/events_mailer.rb
effective_events-0.20.5 app/mailers/effective/events_mailer.rb
effective_events-0.20.4 app/mailers/effective/events_mailer.rb
effective_events-0.20.3 app/mailers/effective/events_mailer.rb
effective_events-0.20.2 app/mailers/effective/events_mailer.rb
effective_events-0.20.1 app/mailers/effective/events_mailer.rb
effective_events-0.20.0 app/mailers/effective/events_mailer.rb
effective_events-0.16.0 app/mailers/effective/events_mailer.rb