From 921c8dfdf45c0ae74f3456969e4fa05560e628d2 Mon Sep 17 00:00:00 2001 From: luisramos0 Date: Fri, 31 Aug 2018 19:41:30 +0100 Subject: [PATCH] Removed unnecessary cancel_email from order_email_decorator (spree one is equivalent after ofn PR#2589). Also refactored remaining order_mailer_decorator methods by extracting duplicated code. --- app/mailers/spree/order_mailer_decorator.rb | 39 ++++++++++----------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/app/mailers/spree/order_mailer_decorator.rb b/app/mailers/spree/order_mailer_decorator.rb index d284a704aa..0ff7e21558 100644 --- a/app/mailers/spree/order_mailer_decorator.rb +++ b/app/mailers/spree/order_mailer_decorator.rb @@ -3,43 +3,42 @@ Spree::OrderMailer.class_eval do helper CheckoutHelper helper SpreeCurrencyHelper - def cancel_email(order, resend = false) - @order = find_order(order) - subject = (resend ? "[#{t(:resend).upcase}] " : '') - subject += "#{Spree::Config[:site_name]} #{t('order_mailer.cancel_email.subject')} ##{@order.number}" - mail(to: @order.email, from: from_address, subject: subject) - end - - def confirm_email_for_customer(order, resend = false) - find_order(order) # Finds an order instance from an id - subject = (resend ? "[#{t(:resend).upcase}] " : '') - subject += "#{Spree::Config[:site_name]} #{t('order_mailer.confirm_email.subject')} ##{@order.number}" + def confirm_email_for_customer(order_or_order_id, resend = false) + @order = find_order(order_or_order_id) + subject = build_subject(t('order_mailer.confirm_email.subject'), resend) mail(:to => @order.email, :from => from_address, :subject => subject, :reply_to => @order.distributor.contact.email) end - def confirm_email_for_shop(order, resend = false) - find_order(order) # Finds an order instance from an id - subject = (resend ? "[#{t(:resend).upcase}] " : '') - subject += "#{Spree::Config[:site_name]} #{t('order_mailer.confirm_email.subject')} ##{@order.number}" + def confirm_email_for_shop(order_or_order_id, resend = false) + @order = find_order(order_or_order_id) + subject = build_subject(t('order_mailer.confirm_email.subject'), resend) mail(:to => @order.distributor.contact.email, :from => from_address, :subject => subject) end - def invoice_email(order, pdf) - find_order(order) # Finds an order instance from an id + def invoice_email(order_or_order_id, pdf) + @order = find_order(order_or_order_id) + subject = build_subject(t(:invoice)) attachments["invoice-#{@order.number}.pdf"] = pdf if pdf.present? - subject = "#{Spree::Config[:site_name]} #{t(:invoice)} ##{@order.number}" mail(:to => @order.email, :from => from_address, :subject => subject, :reply_to => @order.distributor.contact.email) end - def find_order(order) - @order = order.respond_to?(:id) ? order : Spree::Order.find(order) + private + + # Finds an order instance from an order or from an order id + def find_order(order_or_order_id) + order_or_order_id.respond_to?(:id) ? order_or_order_id : Spree::Order.find(order_or_order_id) + end + + def build_subject( subject_text, resend = false ) + subject = (resend ? "[#{t(:resend).upcase}] " : "") + subject += "#{Spree::Config[:site_name]} #{subject_text} ##{@order.number}" end end