Sha256: 15b73478f37fc470120b77095fa1741ae9a99e2455fed85160a227ce3c123518
Contents?: true
Size: 1.33 KB
Versions: 2
Compression:
Stored size: 1.33 KB
Contents
module ActiveMerchant module Fulfillment class Service include RequiresParameters include PostsData cattr_accessor :logger def initialize(options = {}) check_test_mode(options) @options = {} @options.update(options) end def test_mode? false end def test? @options[:test] || Base.mode == :test end def valid_credentials? true end # API Requirements for Implementors def fulfill(order_id, shipping_address, line_items, options = {}) raise NotImplementedError.new("Subclasses must implement") end def fetch_stock_levels(options = {}) raise NotImplementedError.new("Subclasses must implement") end def fetch_tracking_numbers(order_ids, options = {}) response = fetch_tracking_data(order_ids, options) response.params.delete('tracking_companies') response.params.delete('tracking_urls') response end def fetch_tracking_data(order_ids, options = {}) raise NotImplementedError.new("Subclasses must implement") end private def check_test_mode(options) if options[:test] and not test_mode? raise ArgumentError, 'Test mode is not supported by this gateway' end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
active_fulfillment-2.1.9 | lib/active_fulfillment/fulfillment/service.rb |
active_fulfillment-2.1.8 | lib/active_fulfillment/fulfillment/service.rb |