aboutsummaryrefslogtreecommitdiffstats
path: root/app/controllers/admin_outgoing_message_controller.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/controllers/admin_outgoing_message_controller.rb')
-rw-r--r--app/controllers/admin_outgoing_message_controller.rb37
1 files changed, 34 insertions, 3 deletions
diff --git a/app/controllers/admin_outgoing_message_controller.rb b/app/controllers/admin_outgoing_message_controller.rb
index ec0981677..2ee811dc0 100644
--- a/app/controllers/admin_outgoing_message_controller.rb
+++ b/app/controllers/admin_outgoing_message_controller.rb
@@ -5,7 +5,7 @@ class AdminOutgoingMessageController < AdminController
end
def destroy
- @outgoing_message = OutgoingMessage.find(params[:outgoing_message_id])
+ @outgoing_message = OutgoingMessage.find(params[:id])
@info_request = @outgoing_message.info_request
outgoing_message_id = @outgoing_message.id
@@ -14,7 +14,7 @@ class AdminOutgoingMessageController < AdminController
{ :editor => admin_current_user(), :deleted_outgoing_message_id => outgoing_message_id })
flash[:notice] = 'Outgoing message successfully destroyed.'
- redirect_to admin_request_show_url(@info_request)
+ redirect_to admin_request_url(@info_request)
end
def update
@@ -38,10 +38,41 @@ class AdminOutgoingMessageController < AdminController
:prominence_reason => @outgoing_message.prominence_reason })
flash[:notice] = 'Outgoing message successfully updated.'
expire_for_request(@outgoing_message.info_request)
- redirect_to admin_request_show_url(@outgoing_message.info_request)
+ redirect_to admin_request_url(@outgoing_message.info_request)
else
render :action => 'edit'
end
end
+ def resend
+ @outgoing_message = OutgoingMessage.find(params[:id])
+ @outgoing_message.prepare_message_for_resend
+
+ mail_message = case @outgoing_message.message_type
+ when 'initial_request'
+ OutgoingMailer.initial_request(
+ @outgoing_message.info_request,
+ @outgoing_message
+ ).deliver
+ when 'followup'
+ OutgoingMailer.followup(
+ @outgoing_message.info_request,
+ @outgoing_message,
+ @outgoing_message.incoming_message_followup
+ ).deliver
+ else
+ raise "Message id #{id} has type '#{message_type}' which cannot be resent"
+ end
+
+ @outgoing_message.record_email_delivery(
+ mail_message.to_addrs.join(', '),
+ mail_message.message_id,
+ 'resent'
+ )
+
+ flash[:notice] = "Outgoing message resent"
+ redirect_to admin_request_url(@outgoing_message.info_request)
+ end
+
+
end