diff options
author | Henare Degan <henare.degan@gmail.com> | 2013-02-26 12:48:11 +1100 |
---|---|---|
committer | Henare Degan <henare.degan@gmail.com> | 2013-02-26 12:48:11 +1100 |
commit | 84032e3ef81d6b0ecfdf1eaf8967405165089249 (patch) | |
tree | 02726757f76e7d6c1cf675df40b9fe2320cb4594 | |
parent | 9a3bd9c706ef736b9285fad772c7c928e50f1965 (diff) |
Upgrade more of RequestMailer to new ActionMailer API
Also change name of body instance method so it doesn't collide
-rw-r--r-- | app/mailers/request_mailer.rb | 38 | ||||
-rw-r--r-- | app/views/request_mailer/external_response.rhtml | 2 | ||||
-rw-r--r-- | app/views/request_mailer/fake_response.rhtml | 2 |
3 files changed, 19 insertions, 23 deletions
diff --git a/app/mailers/request_mailer.rb b/app/mailers/request_mailer.rb index f1b690966..0e3025c73 100644 --- a/app/mailers/request_mailer.rb +++ b/app/mailers/request_mailer.rb @@ -7,39 +7,35 @@ require 'alaveteli_file_types' class RequestMailer < ApplicationMailer - - # Used when an FOI officer uploads a response from their web browser - this is # the "fake" email used to store in the same format in the database as if they # had emailed it. - def fake_response(info_request, from_user, body, attachment_name, attachment_content) - @from = from_user.name_and_email - @recipients = info_request.incoming_name_and_email - @body = { - :body => body - } + def fake_response(info_request, from_user, message_body, attachment_name, attachment_content) + @message_body = message_body + if !attachment_name.nil? && !attachment_content.nil? content_type = AlaveteliFileTypes.filename_to_mimetype(attachment_name) || 'application/octet-stream' - attachment :content_type => content_type, - :body => attachment_content, - :filename => attachment_name + attachments[attachment_name] = {:content => attachment_content, + :content_type => content_type} end + + mail(:from => from_user.name_and_email, + :to => info_request.incoming_name_and_email) end # Used when a response is uploaded using the API - def external_response(info_request, body, sent_at, attachments) - @from = blackhole_email - @recipients = info_request.incoming_name_and_email - @body = { :body => body } - - # ActionMailer only works properly when the time is in the local timezone: - # see https://rails.lighthouseapp.com/projects/8994/tickets/3113-actionmailer-only-works-correctly-with-sent_on-times-that-are-in-the-local-time-zone - @sent_on = sent_at.dup.localtime + def external_response(info_request, message_body, sent_at, attachment_hashes) + @message_body = message_body - attachments.each do |attachment_hash| - attachment attachment_hash + attachment_hashes.each do |attachment_hash| + attachments[attachment_hash[:filename]] = {:content => attachment_hash[:body], + :content_type => attachment_hash[:content_type]} end + + mail(:from => blackhole_email, + :to => info_request.incoming_name_and_email, + :date => sent_at) end # Incoming message arrived for a request, but new responses have been stopped. diff --git a/app/views/request_mailer/external_response.rhtml b/app/views/request_mailer/external_response.rhtml index e9858f03f..fab256adf 100644 --- a/app/views/request_mailer/external_response.rhtml +++ b/app/views/request_mailer/external_response.rhtml @@ -1 +1 @@ -<%=@body%> +<%= @message_body %> diff --git a/app/views/request_mailer/fake_response.rhtml b/app/views/request_mailer/fake_response.rhtml index e9858f03f..fab256adf 100644 --- a/app/views/request_mailer/fake_response.rhtml +++ b/app/views/request_mailer/fake_response.rhtml @@ -1 +1 @@ -<%=@body%> +<%= @message_body %> |