Class: Manage::MessagesController

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

Instance Method Summary collapse

Instance Method Details

#createObject



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

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

#datatableObject



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

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

#deliverObject



42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'app/controllers/manage/messages_controller.rb', line 42

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



37
38
39
40
# File 'app/controllers/manage/messages_controller.rb', line 37

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

#duplicateObject



69
70
71
72
73
74
75
76
77
78
79
# File 'app/controllers/manage/messages_controller.rb', line 69

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



23
24
# File 'app/controllers/manage/messages_controller.rb', line 23

def edit
end

#indexObject



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

def index
end

#live_previewObject



62
63
64
65
66
67
# File 'app/controllers/manage/messages_controller.rb', line 62

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



18
19
20
21
# File 'app/controllers/manage/messages_controller.rb', line 18

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

#previewObject



57
58
59
60
# File 'app/controllers/manage/messages_controller.rb', line 57

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

#showObject



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

def show
  respond_with(:manage, @message)
end

#updateObject



32
33
34
35
# File 'app/controllers/manage/messages_controller.rb', line 32

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