diff options
author | Gareth Rees <gareth@mysociety.org> | 2014-10-14 16:53:48 +0100 |
---|---|---|
committer | Gareth Rees <gareth@mysociety.org> | 2014-10-17 11:24:01 +0100 |
commit | bec15c0f11d2e49319e132b4b7d916260378e123 (patch) | |
tree | 783d75dbb35bc3375955b51bbc5d6e4a5b37ca4d | |
parent | 159458696b6324d95324715e14cd2ce2364aee93 (diff) |
Extract resending a message from the model
-rw-r--r-- | app/controllers/admin_request_controller.rb | 25 | ||||
-rw-r--r-- | app/models/outgoing_message.rb | 6 |
2 files changed, 27 insertions, 4 deletions
diff --git a/app/controllers/admin_request_controller.rb b/app/controllers/admin_request_controller.rb index 21120e4ad..8f023bf12 100644 --- a/app/controllers/admin_request_controller.rb +++ b/app/controllers/admin_request_controller.rb @@ -37,7 +37,30 @@ class AdminRequestController < AdminController def resend @outgoing_message = OutgoingMessage.find(params[:outgoing_message_id]) - @outgoing_message.resend_message + @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_show_url(@outgoing_message.info_request) end diff --git a/app/models/outgoing_message.rb b/app/models/outgoing_message.rb index 4fdb8a75a..e7694723a 100644 --- a/app/models/outgoing_message.rb +++ b/app/models/outgoing_message.rb @@ -245,12 +245,12 @@ class OutgoingMessage < ActiveRecord::Base end # An admin function - def resend_message + def prepare_message_for_resend if ['initial_request', 'followup'].include?(message_type) and status == 'sent' self.status = 'ready' - send_message('resent') else - raise "Message id #{id} has type '#{message_type}' status '#{status}' which resend_message can't handle" + raise "Message id #{id} has type '#{message_type}' status " \ + "'#{status}' which prepare_message_for_resend can't handle" end end |