ruby_omx 0.0.28 → 0.0.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/ruby_omx/request/udoa_request.rb +1 -9
- data/lib/ruby_omx/response/order_info_response.rb +36 -23
- data/lib/ruby_omx/response.rb +27 -1
- data/lib/ruby_omx/version.rb +1 -1
- data/test/orders_test.rb +25 -4
- metadata +2 -2
@@ -1,13 +1,5 @@
|
|
1
1
|
module RubyOmx
|
2
|
-
|
3
|
-
class Address < Node
|
4
|
-
xml_name "Address"
|
5
|
-
xml_accessor :address_type, :from => '@type'
|
6
|
-
xml_accessor :title_code, :company, :firstname, :lastname, :address1, :address2, :city, :state, :phone_number, :email
|
7
|
-
xml_accessor :zip, :from => 'ZIP'
|
8
|
-
xml_accessor :tld, :from => 'TLD'
|
9
|
-
end
|
10
|
-
|
2
|
+
|
11
3
|
class CustomField < Node
|
12
4
|
xml_name 'Field'
|
13
5
|
xml_accessor :field_id, :from => '@fieldID'
|
@@ -2,30 +2,30 @@
|
|
2
2
|
|
3
3
|
module RubyOmx
|
4
4
|
|
5
|
-
class OrderInfoLineStatus < Node
|
6
|
-
|
5
|
+
#class OrderInfoLineStatus < Node
|
6
|
+
# xml_name "LineStatus"
|
7
7
|
#<LineStatus date="2/9/2006 2:47:00 PM" text="OK">40</LineStatus>
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
end
|
8
|
+
# xml_reader :text, :from => '@text' # C/L means cancelled, OK with a date means processing
|
9
|
+
# xml_reader :date, :from => "@date" # reverting to string as date is invalid, cancellation date if cancelled, processing date if processing
|
10
|
+
# xml_reader :value, :from => :content, :as=>Integer
|
11
|
+
#end
|
12
12
|
|
13
|
-
class OrderInfoLineItem < Node
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
13
|
+
#class OrderInfoLineItem < Node
|
14
|
+
# xml_name "LineItem"
|
15
|
+
# xml_reader :item_code
|
16
|
+
# xml_reader :product_name
|
17
|
+
# xml_reader :quantity
|
18
|
+
# xml_reader :price
|
19
|
+
# xml_reader :line_status, :as=>OrderInfoLineStatus
|
20
|
+
|
21
|
+
# xml_reader :warehouse_reference
|
22
|
+
# xml_reader :tracking_number
|
23
23
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
end
|
24
|
+
# xml_reader :shipment_number
|
25
|
+
# xml_reader :line_cogs, :from=>'LineCOGS', :as=>Float
|
26
|
+
# xml_reader :unit_cogs, :from=>'UnitCOGS', :as=>Float
|
27
|
+
# xml_reader :supplier_item_code
|
28
|
+
#end
|
29
29
|
|
30
30
|
class OrderInfoResponse < StandardResponse
|
31
31
|
xml_name "OrderInformationResponse"
|
@@ -35,9 +35,19 @@ module RubyOmx
|
|
35
35
|
xml_reader :order_status_code, :from => '@statusCode', :in=>'OrderHeader/OrderStatus'
|
36
36
|
xml_reader :order_status_date, :as=>DateTime, :in=>'OrderHeader'
|
37
37
|
xml_reader :order_date, :as=>DateTime, :in=>'OrderHeader'
|
38
|
+
xml_reader :keyed_date, :as=>DateTime, :in=>'OrderHeader'
|
39
|
+
xml_reader :total_amount, :as => Float, :in=>'OrderHeader'
|
40
|
+
xml_reader :keycode, :in=>'OrderHeader'
|
41
|
+
|
42
|
+
xml_reader :bill_to, :as => Address, :in => 'Customer'
|
43
|
+
xml_reader :ship_to, :as => Address, :in => 'ShippingInformation'
|
44
|
+
|
45
|
+
xml_reader :method_code, :in => 'ShippingInformation/Method', :from=>'@code', :as => Integer
|
46
|
+
xml_reader :shipping_amount, :in => 'ShippingInformation', :as => Float
|
47
|
+
xml_reader :handling_amount, :in => 'ShippingInformation', :as => Float
|
48
|
+
|
49
|
+
xml_reader :line_items, :as => [LineItem], :in => 'OrderDetail'
|
38
50
|
|
39
|
-
#xml_reader :order_header, :as=>OrderInfoOrderHeader
|
40
|
-
xml_reader :line_items, :as => [OrderInfoLineItem], :in=>'OrderDetail'
|
41
51
|
xml_reader :customer_number, :from=>'@number', :in=>'Customer'
|
42
52
|
xml_reader :tracking_number, :in=>'ShippingInformation/Shipment'
|
43
53
|
xml_reader :ship_date, :in=>'ShippingInformation/Shipment',:as=>DateTime # if populated, it means all items have shipped
|
@@ -50,6 +60,9 @@ module RubyOmx
|
|
50
60
|
|
51
61
|
=begin
|
52
62
|
|
63
|
+
|
64
|
+
|
65
|
+
|
53
66
|
OMX STATUS CODES
|
54
67
|
|
55
68
|
|
data/lib/ruby_omx/response.rb
CHANGED
@@ -42,6 +42,14 @@ module RubyOmx
|
|
42
42
|
xml_accessor :item_code, :from=>'@itemCode'
|
43
43
|
end
|
44
44
|
|
45
|
+
class LineStatus < Node
|
46
|
+
xml_name "LineStatus"
|
47
|
+
#<LineStatus date="2/9/2006 2:47:00 PM" text="OK">40</LineStatus>
|
48
|
+
xml_reader :text, :from => '@text' # C/L means cancelled, OK with a date means processing
|
49
|
+
xml_reader :date, :from => "@date" # reverting to string as date is invalid, cancellation date if cancelled, processing date if processing
|
50
|
+
xml_reader :value, :from => :content, :as=>Integer
|
51
|
+
end
|
52
|
+
|
45
53
|
# LineItems appear in requests and responses
|
46
54
|
class LineItem < Node
|
47
55
|
xml_name "LineItem"
|
@@ -52,8 +60,18 @@ module RubyOmx
|
|
52
60
|
xml_accessor :price, :as => Float
|
53
61
|
xml_accessor :update_standard_price # default to 'False'
|
54
62
|
xml_accessor :cancel_line
|
63
|
+
|
64
|
+
# read only attributes that come in the response
|
65
|
+
xml_reader :product_name
|
66
|
+
xml_reader :line_status, :as=>LineStatus
|
67
|
+
xml_reader :warehouse_reference
|
68
|
+
xml_reader :tracking_number
|
69
|
+
xml_reader :shipment_number
|
70
|
+
xml_reader :line_cogs, :from=>'LineCOGS', :as=>Float
|
71
|
+
xml_reader :unit_cogs, :from=>'UnitCOGS', :as=>Float
|
72
|
+
xml_reader :supplier_item_code
|
55
73
|
end
|
56
|
-
|
74
|
+
|
57
75
|
class CustomItemAttribute < Node
|
58
76
|
xml_name "Attribute"
|
59
77
|
xml_reader :attribute_id, :from => '@attributeID'
|
@@ -61,6 +79,14 @@ module RubyOmx
|
|
61
79
|
xml_reader :value, :from => :content
|
62
80
|
end
|
63
81
|
|
82
|
+
class Address < Node
|
83
|
+
xml_name "Address"
|
84
|
+
xml_accessor :address_type, :from => '@type'
|
85
|
+
xml_accessor :title_code, :company, :firstname, :lastname, :address1, :address2, :county, :city, :state, :phone_number, :email, :country
|
86
|
+
xml_accessor :zip, :from => 'ZIP'
|
87
|
+
xml_accessor :tld, :from => 'TLD'
|
88
|
+
end
|
89
|
+
|
64
90
|
class StandardResponse < Response
|
65
91
|
xml_reader :success
|
66
92
|
xml_reader :errors, :as=>[Error], :in=>'ErrorData'
|
data/lib/ruby_omx/version.rb
CHANGED
data/test/orders_test.rb
CHANGED
@@ -187,7 +187,7 @@ class OrdersTest < MiniTest::Unit::TestCase
|
|
187
187
|
assert_equal 'OMX-ofyccytnacrtnedlldmyed', response.OMX
|
188
188
|
end
|
189
189
|
|
190
|
-
def
|
190
|
+
def test_send_info_request_v1
|
191
191
|
@connection.stubs(:post).returns(xml_for('OrderInformationResponse(1.00)',200))
|
192
192
|
response = @connection.send_info_request({ :order_number => '16651', :version=>'1.00' })
|
193
193
|
assert_kind_of OrderInfoResponse, response
|
@@ -197,20 +197,41 @@ class OrdersTest < MiniTest::Unit::TestCase
|
|
197
197
|
assert_equal "", response.tracking_number
|
198
198
|
assert_equal '16651', response.order_number
|
199
199
|
assert_equal DateTime.parse('2005-06-20 14:25:00'), response.order_date
|
200
|
+
|
201
|
+
# test line item detail
|
200
202
|
assert_equal 1, response.line_items.length
|
201
203
|
assert_equal '16651-1', response.line_items[0].shipment_number
|
202
204
|
assert_equal 6.52, response.line_items[0].line_cogs
|
203
205
|
assert_equal 6.52, response.line_items[0].unit_cogs
|
204
206
|
assert_equal '01-113', response.line_items[0].supplier_item_code
|
205
207
|
assert_equal '01-113', response.line_items[0].item_code
|
206
|
-
assert_instance_of
|
208
|
+
assert_instance_of LineStatus, response.line_items[0].line_status
|
207
209
|
assert_equal "OK", response.line_items[0].line_status.text
|
208
210
|
assert_equal 40, response.line_items[0].line_status.value
|
209
211
|
assert_equal '2/9/2006 2:47:00 PM', response.line_items[0].line_status.date
|
210
212
|
assert_kind_of Hash, response.as_hash
|
213
|
+
|
214
|
+
assert_equal 'A123', response.keycode
|
215
|
+
assert_equal DateTime.parse('2005-06-20 14:25:00'), response.keyed_date
|
216
|
+
|
217
|
+
# Shipping Address
|
218
|
+
assert_equal 'Dun', response.ship_to.firstname
|
219
|
+
assert_equal "O'neil D", response.ship_to.lastname
|
220
|
+
assert_equal '1 main st, 2315', response.ship_to.address1
|
221
|
+
assert_equal 'Richmond Hill', response.ship_to.city
|
222
|
+
|
223
|
+
# Billing Address
|
224
|
+
assert_equal 'Sun', response.bill_to.firstname
|
225
|
+
assert_equal "O'neil S", response.bill_to.lastname
|
226
|
+
assert_equal '1 main st, 2314', response.bill_to.address1
|
227
|
+
assert_equal 'Richmond Valley', response.bill_to.city
|
228
|
+
|
229
|
+
assert_equal 1, response.method_code
|
230
|
+
assert_equal 0, response.shipping_amount
|
231
|
+
assert_nil response.handling_amount
|
211
232
|
end
|
212
233
|
|
213
|
-
def
|
234
|
+
def test_send_info_request_v2
|
214
235
|
@connection_alt.stubs(:post).returns(xml_for('OrderInformationResponse(2.00)',200))
|
215
236
|
response = @connection_alt.send_info_request({ :order_number => '24603' })
|
216
237
|
assert_kind_of OrderInfoResponse, response
|
@@ -234,7 +255,7 @@ class OrdersTest < MiniTest::Unit::TestCase
|
|
234
255
|
assert_equal 'APPLE', response.line_items[0].item_code
|
235
256
|
assert_equal 'APPLE', response.line_items[0].supplier_item_code
|
236
257
|
|
237
|
-
assert_instance_of
|
258
|
+
assert_instance_of LineStatus, response.line_items[0].line_status
|
238
259
|
assert_equal "OK", response.line_items[0].line_status.text
|
239
260
|
assert_equal 40, response.line_items[0].line_status.value
|
240
261
|
assert_equal '5/31/2010 5:36:00 AM', response.line_items[0].line_status.date
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby_omx
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.29
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-08
|
12
|
+
date: 2012-09-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: roxml
|