ingram_micro 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6f3a454c5b9cd87a1f71320f583ecd4f04345fed
4
- data.tar.gz: de4da596e98cd56963ac0575b697cf57d98ba488
3
+ metadata.gz: 1f0d867b8114f0777ecb1cac2bf499dd51f2b463
4
+ data.tar.gz: 773e12a0d083e12509836d96feea1a8e0bb2e63d
5
5
  SHA512:
6
- metadata.gz: d8bf2f4381068729b8311af77ebbc29ff0b29a55d37af7e5de7c404a0122c2db43fbad4f6a0e3e78a09cdc4448b10de9d8b7dbcd657897b76d6336d60852d41c
7
- data.tar.gz: 35d0cf4b16c9f0ee80c9c40812ad9a099417bda5d79ddde5f53cd477ba1c2a1f8b34d76a245702a0e8e2ad7cbc84820abdcd4ff62e11088f061d70ec747d3d3b
6
+ metadata.gz: deb441feb192fd6f202007fcee5fdb24b4d9d10d2f2414e591bc74e86166ca64a1e39a96b26918eb1d57e0add9a6a33c79940ca42d097e4a3f8eed4aac414eaf
7
+ data.tar.gz: f631420bdde8cf9634e52973001c8715d0dec06bd40b5f198e46d7ddfb981c60863951338e44a565629ba91414e57403c1035448e73f7119679f85b64c5ceaa6
data/.gitignore CHANGED
@@ -9,3 +9,4 @@
9
9
  /spec/reports/
10
10
  /tmp/
11
11
  lib/config/defaults.yml
12
+ .DS_STORE
data/ingram_micro.gemspec CHANGED
@@ -6,8 +6,8 @@ require 'ingram_micro/version'
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "ingram_micro"
8
8
  spec.version = IngramMicro::VERSION
9
- spec.authors = ["Rachel Heaton","Joseph Nguyen", "Ben Christel"]
10
- spec.email = ["rachelmheaton@gmail.com"]
9
+ spec.authors = ["Ben Christel", "Rachel Heaton", "Colby Holliday", "Joseph Nguyen"]
10
+ spec.email = ["webops@walkerandcobrands.com"]
11
11
 
12
12
  spec.summary = %q{Rubygem wrapper for Ingram Micro API}
13
13
  spec.homepage = "https://github.com/WalkerAndCoBrandsInc/ingram_micro"
@@ -29,10 +29,11 @@ Gem::Specification.new do |spec|
29
29
  spec.add_dependency "faraday"
30
30
  spec.add_dependency "faraday_middleware"
31
31
  spec.add_dependency "nokogiri", "~> 1.6"
32
- spec.add_development_dependency "activesupport"
32
+ spec.add_dependency "require_all"
33
33
  spec.add_development_dependency "bundler", "~> 1.10"
34
34
  spec.add_development_dependency "rake", "~> 10.0"
35
35
  spec.add_development_dependency "rspec"
36
36
  spec.add_development_dependency "pry"
37
- spec.add_development_dependency "factory_girl", "~>4.0"
37
+ spec.add_development_dependency "fabrication"
38
+ spec.add_development_dependency "faker"
38
39
  end
data/lib/ingram_micro.rb CHANGED
@@ -1,32 +1,8 @@
1
1
  require "nokogiri"
2
2
  require "faraday"
3
3
  require "faraday_middleware"
4
- require "ingram_micro/version"
5
- require "ingram_micro/configuration"
6
- require "ingram_micro/client"
7
- require "ingram_micro/base_element"
8
- require "ingram_micro/transmission"
9
- require "ingram_micro/transmissions/sales_order"
10
- require "ingram_micro/transmissions/check_shipment_status"
11
- require "ingram_micro/transmissions/return_authorization"
12
- require "ingram_micro/elements/customer"
13
- require "ingram_micro/request_processor"
14
- require "ingram_micro/elements/shipment_information"
15
- require "ingram_micro/elements/credit_card_information"
16
- require "ingram_micro/elements/sales_order_header"
17
- require "ingram_micro/elements/return_order_header"
18
- require "ingram_micro/elements/detail"
19
- require "ingram_micro/elements/sales_order_line_item"
20
- require "ingram_micro/elements/shipment_status_line_item"
21
- require "ingram_micro/elements/return_authorization_line_item"
22
- require "ingram_micro/elements/message_header_pw"
23
- require "ingram_micro/elements/message_header_no_pw"
24
- require "ingram_micro/elements/sales_order_submission"
25
- require "ingram_micro/elements/return_authorization_submission"
26
- require "ingram_micro/elements/purchase_order_information"
27
- require "ingram_micro/elements/shipment_status"
28
- require "ingram_micro/errors/invalid_type"
29
- require "ingram_micro/errors/missing_field"
4
+ require "require_all"
5
+ require_rel 'ingram_micro/**/*.rb'
30
6
 
31
7
  module IngramMicro
32
8
  GEM_DIR = (File.dirname(__FILE__) + '/../').freeze
@@ -0,0 +1,19 @@
1
+ class IngramMicro::MessageStatus < IngramMicro::BaseElement
2
+ DEFAULTS = {
3
+ status_code: nil,
4
+ status_description: nil,
5
+ comments: nil,
6
+ response_timestamp: nil,
7
+ filename: nil
8
+ }
9
+
10
+ def defaults
11
+ DEFAULTS
12
+ end
13
+
14
+ def initialize(options={})
15
+ super
16
+ @element[:response_timestamp] ||= Time.now.strftime('%Y%m%d%H%M%S')
17
+ end
18
+
19
+ end
@@ -1,4 +1,4 @@
1
- class IngramMicro::ReturnOrderHeader < IngramMicro::BaseElement
1
+ class IngramMicro::ReturnAuthorizationOrderHeader < IngramMicro::BaseElement
2
2
 
3
3
  DEFAULTS = {
4
4
  customer_order_number: nil,
@@ -21,7 +21,7 @@ class IngramMicro::ReturnAuthorizationSubmission < IngramMicro::BaseElement
21
21
  @element[:customer] ||= IngramMicro::Customer.new
22
22
  @element[:shipment_information] ||= IngramMicro::ShipmentInformation.new
23
23
  @element[:credit_card_information] ||= IngramMicro::CreditCardInformation.new
24
- @element[:order_header] ||= IngramMicro::ReturnOrderHeader.new
24
+ @element[:order_header] ||= IngramMicro::ReturnAuthorizationOrderHeader.new
25
25
  @element[:purchase_order_information] ||= IngramMicro::PurchaseOrderInformation.new
26
26
  @element[:detail] ||= IngramMicro::Detail.new
27
27
  end
@@ -0,0 +1,7 @@
1
+ class IngramMicro::SalesOrderShipmentInformation < IngramMicro::ShipmentInformation
2
+
3
+ DEFAULTS = DEFAULTS.merge({ ship_no_later: nil,
4
+ no_ship_before: nil,
5
+ dock_date: nil,
6
+ ship_to_code: nil })
7
+ end
@@ -2,7 +2,7 @@ class IngramMicro::SalesOrderSubmission < IngramMicro::BaseElement
2
2
 
3
3
  DEFAULTS = {
4
4
  customer: nil,
5
- shipment_information: nil,
5
+ sales_order_shipment_information: nil,
6
6
  credit_card_information: nil,
7
7
  order_header: nil,
8
8
  detail: nil,
@@ -19,7 +19,7 @@ class IngramMicro::SalesOrderSubmission < IngramMicro::BaseElement
19
19
  def initialize(options={})
20
20
  super
21
21
  @element[:customer] ||= IngramMicro::Customer.new
22
- @element[:shipment_information] ||= IngramMicro::ShipmentInformation.new
22
+ @element[:sales_order_shipment_information] ||= IngramMicro::SalesOrderShipmentInformation.new
23
23
  @element[:credit_card_information] ||= IngramMicro::CreditCardInformation.new
24
24
  @element[:order_header] ||= IngramMicro::SalesOrderHeader.new
25
25
  check_line_items
@@ -35,7 +35,7 @@ class IngramMicro::SalesOrderSubmission < IngramMicro::BaseElement
35
35
  @element[:customer].build(builder)
36
36
  end
37
37
  builder.send('shipment-information') do
38
- @element[:shipment_information].build(builder)
38
+ @element[:sales_order_shipment_information].build(builder)
39
39
  end
40
40
  builder.send('credit-card-information') do
41
41
  @element[:credit_card_information].build(builder)
@@ -14,7 +14,7 @@ class IngramMicro::ShipmentInformation < IngramMicro::BaseElement
14
14
  'FXL2' => 'FedEx Freight 2-day (Air)',
15
15
  'FXL3' => 'FedEx Freight 3-day (Air)',
16
16
  'FXLE' => 'FedEx Freight Ground',
17
- }
17
+ }.freeze
18
18
 
19
19
  DEFAULTS = {
20
20
  ship_first_name: nil,
@@ -35,7 +35,7 @@ class IngramMicro::ShipmentInformation < IngramMicro::BaseElement
35
35
  ship_request_date: nil,
36
36
  ship_request_from: nil,
37
37
  ship_request_warehouse: nil
38
- }
38
+ }.freeze
39
39
 
40
40
  def defaults
41
41
  DEFAULTS
@@ -1,6 +1,6 @@
1
1
  class IngramMicro::CheckShipmentStatus < IngramMicro::Transmission
2
2
 
3
- attr_reader :transaction_name
3
+ attr_accessor :business_name, :customer_id, :line_items
4
4
 
5
5
  def initialize(options={})
6
6
  super
@@ -1,5 +1,5 @@
1
1
  class IngramMicro::ReturnAuthorization < IngramMicro::Transmission
2
- attr_reader :customer, :credit_card_information, :order_header,
2
+ attr_accessor :customer, :credit_card_information, :order_header,
3
3
  :shipment_information, :detail, :purchase_order_information
4
4
 
5
5
  def initialize(options={})
@@ -1,12 +1,13 @@
1
1
  class IngramMicro::SalesOrder < IngramMicro::Transmission
2
- attr_reader :customer, :credit_card_information, :order_header,
3
- :shipment_information, :detail
2
+ attr_accessor :customer, :credit_card_information, :order_header,
3
+ :sales_order_shipment_information, :detail, :carrier_name, :business_name,
4
+ :customer_id
4
5
 
5
6
  def initialize(options={})
6
7
  super(options)
7
8
  @transaction_name = 'sales-order-submission'
8
9
  @customer = options[:customer]
9
- @shipment_information = options[:shipment_information]
10
+ @shipment_information = options[:sales_order_shipment_information]
10
11
  @credit_card_information = options[:credit_card_information]
11
12
  @order_header = options[:order_header]
12
13
  @detail = options[:detail]
@@ -42,7 +43,7 @@ class IngramMicro::SalesOrder < IngramMicro::Transmission
42
43
  customer_id: @customer_id,
43
44
  carrier_name: @carrier_name,
44
45
  customer: customer,
45
- shipment_information: shipment_information,
46
+ sales_order_shipment_information: sales_order_shipment_information,
46
47
  order_header: order_header,
47
48
  credit_card_information: credit_card_information
48
49
  }
@@ -0,0 +1,47 @@
1
+ class IngramMicro::StandardResponse < IngramMicro::Transmission
2
+ attr_accessor :status_code, :status_description, :comments,
3
+ :response_timestamp, :filename
4
+
5
+ def initialize(options={})
6
+ super(options)
7
+ @transaction_name = 'standard-response'
8
+ @status_code = options[:status_code]
9
+ @status_description = options[:status_description]
10
+ @comments = options[:comments]
11
+ @response_timestamp = options[:response_timestamp]
12
+ @filename = options[:filename]
13
+ end
14
+
15
+ def order_builder
16
+ @builder ||= Nokogiri::XML::Builder.new do |builder|
17
+ builder.message do
18
+ add_message_header(builder)
19
+ add_message_status(builder)
20
+ add_transaction_info(builder)
21
+ end
22
+ end
23
+ end
24
+
25
+ def add_message_header(builder)
26
+ message_header = IngramMicro::MessageHeaderPW.new({
27
+ partner_name: IngramMicro.configuration.partner_name,
28
+ transaction_name: transaction_name})
29
+ builder.send('message-header') do
30
+ message_header.build(builder)
31
+ end
32
+ message_header.valid?
33
+ end
34
+
35
+ def add_message_status(builder)
36
+ message_status = IngramMicro::MessageStatus.new({
37
+ status_code: @status_code,
38
+ status_description: @status_description,
39
+ comments: @comments,
40
+ response_timestamp: @response_timestamp,
41
+ filename: @filename
42
+ })
43
+ builder.send('message-status') do
44
+ message_status.build(builder)
45
+ end
46
+ end
47
+ end
@@ -1,3 +1,3 @@
1
1
  module IngramMicro
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
metadata CHANGED
@@ -1,16 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ingram_micro
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
+ - Ben Christel
7
8
  - Rachel Heaton
9
+ - Colby Holliday
8
10
  - Joseph Nguyen
9
- - Ben Christel
10
11
  autorequire:
11
12
  bindir: exe
12
13
  cert_chain: []
13
- date: 2016-06-22 00:00:00.000000000 Z
14
+ date: 2016-06-28 00:00:00.000000000 Z
14
15
  dependencies:
15
16
  - !ruby/object:Gem::Dependency
16
17
  name: faraday
@@ -55,13 +56,13 @@ dependencies:
55
56
  - !ruby/object:Gem::Version
56
57
  version: '1.6'
57
58
  - !ruby/object:Gem::Dependency
58
- name: activesupport
59
+ name: require_all
59
60
  requirement: !ruby/object:Gem::Requirement
60
61
  requirements:
61
62
  - - ">="
62
63
  - !ruby/object:Gem::Version
63
64
  version: '0'
64
- type: :development
65
+ type: :runtime
65
66
  prerelease: false
66
67
  version_requirements: !ruby/object:Gem::Requirement
67
68
  requirements:
@@ -125,27 +126,40 @@ dependencies:
125
126
  - !ruby/object:Gem::Version
126
127
  version: '0'
127
128
  - !ruby/object:Gem::Dependency
128
- name: factory_girl
129
+ name: fabrication
129
130
  requirement: !ruby/object:Gem::Requirement
130
131
  requirements:
131
- - - "~>"
132
+ - - ">="
132
133
  - !ruby/object:Gem::Version
133
- version: '4.0'
134
+ version: '0'
134
135
  type: :development
135
136
  prerelease: false
136
137
  version_requirements: !ruby/object:Gem::Requirement
137
138
  requirements:
138
- - - "~>"
139
+ - - ">="
139
140
  - !ruby/object:Gem::Version
140
- version: '4.0'
141
+ version: '0'
142
+ - !ruby/object:Gem::Dependency
143
+ name: faker
144
+ requirement: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - ">="
147
+ - !ruby/object:Gem::Version
148
+ version: '0'
149
+ type: :development
150
+ prerelease: false
151
+ version_requirements: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - ">="
154
+ - !ruby/object:Gem::Version
155
+ version: '0'
141
156
  description:
142
157
  email:
143
- - rachelmheaton@gmail.com
158
+ - webops@walkerandcobrands.com
144
159
  executables: []
145
160
  extensions: []
146
161
  extra_rdoc_files: []
147
162
  files:
148
- - ".DS_Store"
149
163
  - ".gitignore"
150
164
  - ".rspec"
151
165
  - ".travis.yml"
@@ -158,9 +172,7 @@ files:
158
172
  - bin/setup
159
173
  - example.rb
160
174
  - ingram_micro.gemspec
161
- - lib/.DS_Store
162
175
  - lib/ingram_micro.rb
163
- - lib/ingram_micro/.DS_Store
164
176
  - lib/ingram_micro/base_element.rb
165
177
  - lib/ingram_micro/client.rb
166
178
  - lib/ingram_micro/configuration.rb
@@ -169,12 +181,14 @@ files:
169
181
  - lib/ingram_micro/elements/detail.rb
170
182
  - lib/ingram_micro/elements/message_header_no_pw.rb
171
183
  - lib/ingram_micro/elements/message_header_pw.rb
184
+ - lib/ingram_micro/elements/message_status.rb
172
185
  - lib/ingram_micro/elements/purchase_order_information.rb
173
186
  - lib/ingram_micro/elements/return_authorization_line_item.rb
187
+ - lib/ingram_micro/elements/return_authorization_order_header.rb
174
188
  - lib/ingram_micro/elements/return_authorization_submission.rb
175
- - lib/ingram_micro/elements/return_order_header.rb
176
189
  - lib/ingram_micro/elements/sales_order_header.rb
177
190
  - lib/ingram_micro/elements/sales_order_line_item.rb
191
+ - lib/ingram_micro/elements/sales_order_shipment_information.rb
178
192
  - lib/ingram_micro/elements/sales_order_submission.rb
179
193
  - lib/ingram_micro/elements/shipment_information.rb
180
194
  - lib/ingram_micro/elements/shipment_status.rb
@@ -186,8 +200,8 @@ files:
186
200
  - lib/ingram_micro/transmissions/check_shipment_status.rb
187
201
  - lib/ingram_micro/transmissions/return_authorization.rb
188
202
  - lib/ingram_micro/transmissions/sales_order.rb
203
+ - lib/ingram_micro/transmissions/standard_response.rb
189
204
  - lib/ingram_micro/version.rb
190
- - xsd/.DS_Store
191
205
  - xsd/BPXML_InventoryStatus.xsd
192
206
  - xsd/inbound/BPXML-LoadReject.xsd
193
207
  - xsd/inbound/BPXML-LoadSuccess.xsd
@@ -197,7 +211,6 @@ files:
197
211
  - xsd/outbound/BPXML-ReturnAuthorization.xsd
198
212
  - xsd/outbound/BPXML-SalesOrder.xsd
199
213
  - xsd/outbound/BPXML-ShipmentStatus.xsd
200
- - xsd/xml_samples/.DS_Store
201
214
  - xsd/xml_samples/Sales_order_sample.xml
202
215
  homepage: https://github.com/WalkerAndCoBrandsInc/ingram_micro
203
216
  licenses:
@@ -220,7 +233,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
220
233
  version: '0'
221
234
  requirements: []
222
235
  rubyforge_project:
223
- rubygems_version: 2.5.1
236
+ rubygems_version: 2.2.3
224
237
  signing_key:
225
238
  specification_version: 4
226
239
  summary: Rubygem wrapper for Ingram Micro API
data/.DS_Store DELETED
Binary file
data/lib/.DS_Store DELETED
Binary file
Binary file
data/xsd/.DS_Store DELETED
Binary file
Binary file