Class: Manage::MessagesController

Inherits:
ApplicationController show all
Defined in:
app/controllers/manage/messages_controller.rb

Instance Method Summary collapse

Methods inherited from ApplicationController

#json_request?, #limit_write_access_to_admins, #logged_in, #require_admin_or_limited_admin, #require_admin_or_limited_admin_or_event_tracking, #response_view_or_errors

Instance Method Details

#createObject



29
30
31
32
33
# File 'app/controllers/manage/messages_controller.rb', line 29

def create
  @message = Message.new(message_params)
  @message.save
  respond_with(:manage, @message)
end

#datatableObject



11
12
13
# File 'app/controllers/manage/messages_controller.rb', line 11

def datatable
  render json: BulkMessageDatatable.new(view_context)
end

#deliverObject



45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'app/controllers/manage/messages_controller.rb', line 45

def deliver
  if @message.automated?
    flash[:notice] = "Automated messages cannot be manually delivered. Only bulk messages can."
    return redirect_to manage_message_path(@message)
  end
  if @message.status != "drafted"
    flash[:notice] = "Message cannot be re-delivered"
    return redirect_to manage_messages_path
  end
  @message.update_attribute(:queued_at, Time.now)
  BulkMessageWorker.perform_async(@message.id)
  flash[:notice] = "Message queued for delivery"
  redirect_to manage_message_path(@message)
end

#destroyObject



40
41
42
43
# File 'app/controllers/manage/messages_controller.rb', line 40

def destroy
  @message.destroy
  respond_with(:manage, @message)
end

#duplicateObject



72
73
74
75
76
77
78
79
80
81
82
# File 'app/controllers/manage/messages_controller.rb', line 72

def duplicate
  new_message = @message.dup
  new_message.update_attributes(
    delivered_at: nil,
    started_at: nil,
    queued_at: nil,
    name: "Copy of #{@message.name}"
  )
  new_message.save
  redirect_to edit_manage_message_path(new_message.reload)
end

#editObject



26
27
# File 'app/controllers/manage/messages_controller.rb', line 26

def edit
end

#indexObject



7
8
9
# File 'app/controllers/manage/messages_controller.rb', line 7

def index
  respond_with(:manage, Message.all)
end

#live_previewObject



65
66
67
68
69
70
# File 'app/controllers/manage/messages_controller.rb', line 65

def live_preview
  body = params[:body] || ''
  message = Message.new(body: body)
  email = Mailer.bulk_message_email(nil, current_user.id, message)
  render html: email.body.raw_source.html_safe
end

#newObject



19
20
21
22
23
24
# File 'app/controllers/manage/messages_controller.rb', line 19

def new
  type = params[:type]
  recipients = params[:recipients]
  @message = Message.new(type: type, recipients: recipients)
  respond_with(:manage, @message)
end

#previewObject



60
61
62
63
# File 'app/controllers/manage/messages_controller.rb', line 60

def preview
  email = Mailer.bulk_message_email(@message.id, current_user.id)
  render html: email.body.raw_source.html_safe
end

#showObject



15
16
17
# File 'app/controllers/manage/messages_controller.rb', line 15

def show
  respond_with(:manage, @message)
end

#updateObject



35
36
37
38
# File 'app/controllers/manage/messages_controller.rb', line 35

def update
  @message.update_attributes(message_params)
  respond_with(:manage, @message)
end