diff --git a/app/controllers/payments_controller.rb b/app/controllers/payments_controller.rb new file mode 100644 index 0000000000..000ea22ffb --- /dev/null +++ b/app/controllers/payments_controller.rb @@ -0,0 +1,29 @@ +# frozen_string_literal: true + +class PaymentsController < BaseController + ssl_required :redirect_to_authorize + + respond_to :html + + prepend_before_action :require_logged_in, only: :redirect_to_authorize + + def redirect_to_authorize + @payment = Spree::Payment.find(params[:id]) + authorize! :show, @payment + + if url = @payment.cvv_response_message + redirect_to url + else + redirect_to order_url(@payment.order) + end + end + + private + + def require_logged_in + return if session[:access_token] || params[:token] || spree_current_user + + flash[:error] = I18n.t("spree.orders.edit.login_to_view_order") + redirect_to main_app.root_path(anchor: "login?after_login=#{request.env['PATH_INFO']}") + end +end diff --git a/app/controllers/payments_controller.rb~aa3478fba... base authorization on the payment's order b/app/controllers/payments_controller.rb~aa3478fba... base authorization on the payment's order new file mode 100644 index 0000000000..c0fb7eadcc --- /dev/null +++ b/app/controllers/payments_controller.rb~aa3478fba... base authorization on the payment's order @@ -0,0 +1,29 @@ +# frozen_string_literal: true + +class PaymentsController < BaseController + ssl_required :redirect_to_authorize + + respond_to :html + + prepend_before_action :require_logged_in, only: :redirect_to_authorize + + def redirect_to_authorize + @payment = Spree::Payment.find(params[:id]) + authorize! :show, @payment.order + + if url = @payment.cvv_response_message + redirect_to url + else + redirect_to order_url(@payment.order) + end + end + + private + + def require_logged_in + return if session[:access_token] || params[:token] || spree_current_user + + flash[:error] = I18n.t("spree.orders.edit.login_to_view_order") + redirect_to main_app.root_path(anchor: "login?after_login=#{request.env['PATH_INFO']}") + end +end diff --git a/app/controllers/spree/payments_controller.rb b/app/controllers/spree/payments_controller.rb deleted file mode 100644 index ed93481c25..0000000000 --- a/app/controllers/spree/payments_controller.rb +++ /dev/null @@ -1,31 +0,0 @@ -# frozen_string_literal: true - -module Spree - class PaymentsController < Spree::StoreController - ssl_required :redirect_to_authorize - - respond_to :html - - prepend_before_action :require_logged_in, only: :redirect_to_authorize - - def redirect_to_authorize - @payment = Spree::Payment.find(params[:id]) - authorize! :show, @payment - - if url = @payment.cvv_response_message - redirect_to url - else - redirect_to order_url(@payment.order) - end - end - - private - - def require_logged_in - return if session[:access_token] || params[:token] || spree_current_user - - flash[:error] = I18n.t("spree.orders.edit.login_to_view_order") - redirect_to main_app.root_path(anchor: "login?after_login=#{request.env['PATH_INFO']}") - end - end -end diff --git a/app/mailers/payment_mailer.rb b/app/mailers/payment_mailer.rb new file mode 100644 index 0000000000..b0c4a4bbff --- /dev/null +++ b/app/mailers/payment_mailer.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class PaymentMailer < Spree::BaseMailer + include I18nHelper + + def authorize_payment(payment) + @payment = payment + subject = I18n.t('spree.payment_mailer.authorize_payment.subject', + distributor: @payment.order.distributor.name) + mail(to: payment.order.user.email, + from: from_address, + subject: subject) + end +end diff --git a/app/mailers/spree/payment_mailer.rb b/app/mailers/spree/payment_mailer.rb deleted file mode 100644 index b76e91ea83..0000000000 --- a/app/mailers/spree/payment_mailer.rb +++ /dev/null @@ -1,16 +0,0 @@ -# frozen_string_literal: true - -module Spree - class PaymentMailer < BaseMailer - include I18nHelper - - def authorize_payment(payment) - @payment = payment - subject = I18n.t('spree.payment_mailer.authorize_payment.subject', - distributor: @payment.order.distributor.name) - mail(to: payment.order.user.email, - from: from_address, - subject: subject) - end - end -end diff --git a/app/views/spree/payment_mailer/authorize_payment.html.haml b/app/views/payment_mailer/authorize_payment.html.haml similarity index 100% rename from app/views/spree/payment_mailer/authorize_payment.html.haml rename to app/views/payment_mailer/authorize_payment.html.haml diff --git a/app/views/payment_mailer/authorize_payment.text.haml b/app/views/payment_mailer/authorize_payment.text.haml new file mode 100644 index 0000000000..956e63ec9f --- /dev/null +++ b/app/views/payment_mailer/authorize_payment.text.haml @@ -0,0 +1,3 @@ += t('.instructions', distributor: @payment.order.distributor.name, amount: @payment.display_amount) + += main_app.authorize_payment_url(@payment) diff --git a/app/views/spree/payment_mailer/authorize_payment.text.erb b/app/views/spree/payment_mailer/authorize_payment.text.erb deleted file mode 100644 index e722b24997..0000000000 --- a/app/views/spree/payment_mailer/authorize_payment.text.erb +++ /dev/null @@ -1,2 +0,0 @@ -<%= t('.instructions', distributor: @payment.order.distributor.name, amount: @payment.display_amount) %> -<%= main_app.authorize_payment_url(@payment) %> diff --git a/config/routes.rb b/config/routes.rb index 795470cf3a..5236a42c62 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -29,7 +29,7 @@ Openfoodnetwork::Application.routes.draw do patch "/cart", :to => "spree/orders#update", :as => :update_cart put "/cart/empty", :to => 'spree/orders#empty', :as => :empty_cart get '/orders/:id/token/:token' => 'spree/orders#show', :as => :token_order - get '/payments/:id/authorize' => 'spree/payments#redirect_to_authorize', as: "authorize_payment" + get '/payments/:id/authorize' => 'payments#redirect_to_authorize', as: "authorize_payment" resource :cart, controller: "cart" do post :populate