ruby_omx 0.0.28 → 0.0.29
Sign up to get free protection for your applications and to get access to all the features.
- 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
|