Class: Moltin::Resource::Checkout
- Inherits:
-
Api::CrudResource
- Object
- Api::CrudResource
- Moltin::Resource::Checkout
- Defined in:
- lib/moltin/resource/checkout.rb
Instance Attribute Summary collapse
-
#gateways ⇒ Object
readonly
Returns the value of attribute gateways.
-
#shipping_methods ⇒ Object
readonly
Returns the value of attribute shipping_methods.
Attributes inherited from Api::CrudResource
Class Method Summary collapse
Instance Method Summary collapse
Methods inherited from Api::CrudResource
all, #assign_attributes, attributes, create, #delete, find, find_by, #initialize, #method_missing, #model_name, #persisted?, #respond_to?, #route_key, search, #to_hash, #to_key, #to_model, #to_s
Constructor Details
This class inherits a constructor from Moltin::Api::CrudResource
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class Moltin::Api::CrudResource
Instance Attribute Details
#gateways ⇒ Object (readonly)
Returns the value of attribute gateways.
17 18 19 |
# File 'lib/moltin/resource/checkout.rb', line 17 def gateways @gateways end |
#shipping_methods ⇒ Object (readonly)
Returns the value of attribute shipping_methods.
18 19 20 |
# File 'lib/moltin/resource/checkout.rb', line 18 def shipping_methods @shipping_methods end |
Class Method Details
.process!(order_id, method, options) ⇒ Object
44 45 46 |
# File 'lib/moltin/resource/checkout.rb', line 44 def self.process!(order_id, method, ) Moltin::Api::Request.post("checkout/payment/#{method}/#{order_id}", ) end |
Instance Method Details
#requires_shipping? ⇒ Boolean
28 29 30 |
# File 'lib/moltin/resource/checkout.rb', line 28 def requires_shipping? @response.result['shipping']['required'] end |
#retrieve ⇒ Object
20 21 22 23 24 25 26 |
# File 'lib/moltin/resource/checkout.rb', line 20 def retrieve @response = Moltin::Api::Request.get("carts/#{cart.identifier}/checkout") @gateways = Moltin::ResourceCollection.new 'Moltin::Resource::Gateway', @response.result['gateways'].map { |k, v| v } # raise @response.result['shipping']['methods'].to_yaml @shipping_methods = Moltin::ResourceCollection.new 'Moltin::Resource::ShippingMethod', @response.result['shipping']['methods'] self end |
#save ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/moltin/resource/checkout.rb', line 32 def save data = { gateway: @data['gateway'], shipping: @data['shipping'], bill_to: (@data['billing_address'].data.compact if @data['billing_address']), ship_to: (@data['shipping_address'].data.compact if @data['shipping_address']) || "bill_to", } response = Moltin::Api::Request.post("carts/#{cart.identifier}/checkout", data) @order_id = response.result['id'] if response.success? response end |