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.
@@ -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