From 392ee6817f87b00f8c056b767fc6ee37e7fefc13 Mon Sep 17 00:00:00 2001 From: Lukasz Mlodzik Date: Fri, 29 Nov 2019 12:47:42 +0100 Subject: [PATCH] Extract methods to new class --- .../billing/gateways/quickpay.rb | 4 ++-- .../quickpay/quickpay_v10_subscription_api.rb | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 lib/active_merchant/billing/gateways/quickpay/quickpay_v10_subscription_api.rb diff --git a/lib/active_merchant/billing/gateways/quickpay.rb b/lib/active_merchant/billing/gateways/quickpay.rb index 6fe34125cbc..90063e2ef4e 100644 --- a/lib/active_merchant/billing/gateways/quickpay.rb +++ b/lib/active_merchant/billing/gateways/quickpay.rb @@ -2,6 +2,7 @@ require 'digest/md5' require 'active_merchant/billing/gateways/quickpay/quickpay_v10' +require 'active_merchant/billing/gateways/quickpay/quickpay_v10_subscription_api' require 'active_merchant/billing/gateways/quickpay/quickpay_v4to7' module ActiveMerchant #:nodoc: @@ -16,10 +17,9 @@ def self.new(options = {}) if version <= 7 QuickpayV4to7Gateway.new(options) else - QuickpayV10Gateway.new(options) + options[:subscription_api] ? QuickpayV10SubscriptionApiGateway.new(options) : QuickpayV10Gateway.new(options) end end - end end end diff --git a/lib/active_merchant/billing/gateways/quickpay/quickpay_v10_subscription_api.rb b/lib/active_merchant/billing/gateways/quickpay/quickpay_v10_subscription_api.rb new file mode 100644 index 00000000000..74428669a5d --- /dev/null +++ b/lib/active_merchant/billing/gateways/quickpay/quickpay_v10_subscription_api.rb @@ -0,0 +1,17 @@ +require 'json' +require 'active_merchant/billing/gateways/quickpay/quickpay_v10' +require 'active_merchant/billing/gateways/quickpay/quickpay_common' + +module ActiveMerchant + module Billing + class QuickpayV10SubscriptionApiGateway < QuickpayV10Gateway + def purchase(money, subscription_id, options = {}) + post ={} + add_autocapture(post, true) # or false? + add_order_id(post, options) + add_amount(post, money, options) + commit(synchronized_path("/subscriptions/#{subscription_id}/recurring"), post) + end + end + end +end