Class: Lipseys::Order
- Inherits:
-
SoapClient
- Object
- Base
- SoapClient
- Lipseys::Order
- Defined in:
- lib/lipseys/order.rb
Overview
Required options when submitting an order:
-
‘:email` and `:password`
-
‘:item_number` OR `:upc`
-
‘:quantity`
-
‘:purchase_order`
Optional order params:
-
‘:notify_by_email` (boolean)
-
‘:note`
Constant Summary
Constants inherited from SoapClient
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(options = {}) ⇒ Order
constructor
A new instance of Order.
- #submit! ⇒ Object
Constructor Details
#initialize(options = {}) ⇒ Order
Returns a new instance of Order.
15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/lipseys/order.rb', line 15 def initialize( = {}) requires!(, :username, :password, :quantity, :purchase_order) @email = [:username] @password = [:password] @quantity = [:quantity] @notify_by_email = ([:notify_by_email] == true ? 'Y' : nil) @purchase_order = [:purchase_order] @note = [:note] @item_number_or_upc = [:item_number] || [:upc] raise ArgumentError.new("Either :item_number or :upc must be given") if @item_number_or_upc.nil? end |
Class Method Details
.submit!(*args) ⇒ Object
30 31 32 |
# File 'lib/lipseys/order.rb', line 30 def self.submit!(*args) new(*args).submit! end |
Instance Method Details
#submit! ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/lipseys/order.rb', line 34 def submit! response = soap_client.call(:submit_order, message: build_order_data) raise Lipseys::NotAuthenticated if not_authenticated?(response) order_result = response.body[:submit_order_response][:submit_order_result] { order_number: order_result[:order_no], new_order: (order_result[:new_order] == 'Y'), success: (order_result[:success] == 'Y'), description: order_result[:return_desc], quantity_received: Integer(order_result[:qty_received]), } rescue Savon::Error => e { success: false, description: e.to_s } end |