Class: MaquinaNewsletters::Newsletters::SchedulesController

Inherits:
ApplicationController show all
Includes:
MaquinaNewsletters::NewsletterScoped
Defined in:
app/controllers/maquina_newsletters/newsletters/schedules_controller.rb

Instance Method Summary collapse

Instance Method Details

#createObject

POST /newsletters/:newsletter_id/schedule



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'app/controllers/maquina_newsletters/newsletters/schedules_controller.rb', line 9

def create
  requested = ::MaquinaNewsletters::Newsletter.compose_datetime(
    schedule_params[:scheduled_on], schedule_params[:scheduled_time]
  )
  at = future_send_time(requested)

  @newsletter.schedule!(at: at, batch_size: schedule_params[:batch_size])
  ::MaquinaNewsletters::Scheduler.call(@newsletter)

  notice =
    if requested && at != requested
      t(".rolled_forward", time: I18n.l(at, format: :short))
    else
      t(".scheduled", time: I18n.l(at, format: :short))
    end
  redirect_to(newsletter_path(@newsletter), notice: notice, status: :see_other)
rescue ArgumentError, ActiveRecord::RecordInvalid => e
  redirect_to(newsletter_path(@newsletter), alert: e.message, status: :see_other)
end

#destroyObject

DELETE /newsletters/:newsletter_id/schedule



30
31
32
33
# File 'app/controllers/maquina_newsletters/newsletters/schedules_controller.rb', line 30

def destroy
  @newsletter.unschedule!
  redirect_to(newsletter_path(@newsletter), notice: t(".unscheduled"), status: :see_other)
end