ingram_micro 0.1.1 → 0.1.2

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