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.
@@ -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
- xml_name "LineStatus"
5
+ #class OrderInfoLineStatus < Node
6
+ # xml_name "LineStatus"
7
7
  #<LineStatus date="2/9/2006 2:47:00 PM" text="OK">40</LineStatus>
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
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
- 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
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
- 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
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
 
@@ -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'
@@ -1,3 +1,3 @@
1
1
  module RubyOmx
2
- VERSION = "0.0.28"
2
+ VERSION = "0.0.29"
3
3
  end
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 test_send_info_request1
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 OrderInfoLineStatus, response.line_items[0].line_status
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 test_send_info_request2
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 OrderInfoLineStatus, response.line_items[0].line_status
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.28
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-24 00:00:00.000000000 Z
12
+ date: 2012-09-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: roxml