newgistics 2.1.0 → 2.5.0
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 +4 -4
- data/README.md +12 -2
- data/lib/newgistics.rb +5 -0
- data/lib/newgistics/item.rb +3 -0
- data/lib/newgistics/order.rb +2 -0
- data/lib/newgistics/package.rb +13 -0
- data/lib/newgistics/package_item.rb +12 -0
- data/lib/newgistics/requests/post_shipment.rb +2 -0
- data/lib/newgistics/requests/update_shipment_address.rb +74 -0
- data/lib/newgistics/response_handlers/update_shipment_address.rb +25 -0
- data/lib/newgistics/shipment.rb +1 -0
- data/lib/newgistics/shipment_address_update.rb +39 -0
- data/lib/newgistics/version.rb +1 -1
- data/newgistics.gemspec +1 -1
- metadata +11 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a7102bd462733a83d1d2feb94572a2e21923b6ba
|
4
|
+
data.tar.gz: 2cc9355b5df9e998f7bf45925de7fe1c5951831b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0b4882f4bfab7b5233f739c3a031b9a7e29ffdaed5af1f095b0e42041ceeacc2817743e59af3c0f8bd0676d6f3b23137d3bd28219ded0d0af5edf6ba6fd1a38c
|
7
|
+
data.tar.gz: 0cd0c053dbbb127cbe95d6ae16b58af81e7593285bf6a240392c3d487c41dc53e18f1846dfa8b555ce0ff3f44b416ebdd56df25ae3e44ec267d8fb0086c15442
|
data/README.md
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
[](https://codeclimate.com/github/rocketsofawesome/newgistics-ruby/maintainability)
|
2
|
+
[](https://codeclimate.com/github/rocketsofawesome/newgistics-ruby/test_coverage)
|
3
3
|
[ ](https://app.codeship.com/projects/241459)
|
4
4
|
# Newgistics
|
5
5
|
|
@@ -71,6 +71,16 @@ shipment_update.save
|
|
71
71
|
|
72
72
|
`shipment_update.save` will return `true` if the order is updated successfully and `false` otherwise, any errors or warnings generated when updating the shipment are available under `shipment_update.errors` and `shipment_update.warnings` respectively. `shipment_update.success` or also `shipment_update.success?` will also be updated to the corresponding value.
|
73
73
|
|
74
|
+
#### Updating a shipment's address in Newgistics
|
75
|
+
```ruby
|
76
|
+
address_update = Newgistics::ShipmentAddressUpdate.new(update_attributes)
|
77
|
+
address_update.save
|
78
|
+
```
|
79
|
+
|
80
|
+
`update_attributes` is a `Hash` with the updates you want to perform on the shipment, for a list of available attributes you can look at the [Newgistics::ShipmentAddressUpdate model](lib/newgistics/shipment_address_update.rb)
|
81
|
+
|
82
|
+
`address_update.save` will return `true` if the shipment is updated successfully and `false` otherwise, any errors or warnings generated when updating the shipment are available under `address_update.errors` and `address_update.warnings` respectively. `address_update.success` or also `address_update.success?` will also be updated to the corresponding value.
|
83
|
+
|
74
84
|
#### Cancelling a shipment/order on Newgistics
|
75
85
|
```ruby
|
76
86
|
shipment_cancellation = Newgistics::ShipmentCancellation.new(shipment_id: SHIPMENT_ID)
|
data/lib/newgistics.rb
CHANGED
@@ -15,6 +15,8 @@ require "newgistics/model"
|
|
15
15
|
require "newgistics/customer"
|
16
16
|
require "newgistics/item"
|
17
17
|
require "newgistics/order"
|
18
|
+
require "newgistics/package_item"
|
19
|
+
require "newgistics/package"
|
18
20
|
require "newgistics/product"
|
19
21
|
require "newgistics/return"
|
20
22
|
require "newgistics/inbound_return"
|
@@ -23,6 +25,7 @@ require "newgistics/query"
|
|
23
25
|
require "newgistics/errors"
|
24
26
|
require "newgistics/string_helper"
|
25
27
|
require "newgistics/shipment_cancellation"
|
28
|
+
require "newgistics/shipment_address_update"
|
26
29
|
require "newgistics/shipment_update"
|
27
30
|
require "newgistics/warehouse"
|
28
31
|
require "newgistics/requests/cancel_shipment"
|
@@ -31,12 +34,14 @@ require "newgistics/requests/post_inbound_return"
|
|
31
34
|
require "newgistics/requests/search"
|
32
35
|
require "newgistics/requests/post_manifest"
|
33
36
|
require "newgistics/requests/cancel_manifest"
|
37
|
+
require "newgistics/requests/update_shipment_address"
|
34
38
|
require "newgistics/requests/update_shipment_contents"
|
35
39
|
require "newgistics/response_handlers/cancel_shipment"
|
36
40
|
require "newgistics/response_handlers/post_shipment"
|
37
41
|
require "newgistics/response_handlers/post_inbound_return"
|
38
42
|
require "newgistics/response_handlers/post_errors"
|
39
43
|
require "newgistics/response_handlers/search"
|
44
|
+
require "newgistics/response_handlers/update_shipment_address"
|
40
45
|
require "newgistics/response_handlers/update_shipment_contents"
|
41
46
|
require "newgistics/response_handlers/post_manifest"
|
42
47
|
require "newgistics/response_handlers/cancel_manifest"
|
data/lib/newgistics/item.rb
CHANGED
data/lib/newgistics/order.rb
CHANGED
@@ -18,6 +18,8 @@ module Newgistics
|
|
18
18
|
attribute :custom_fields, Hash
|
19
19
|
attribute :allow_duplicate, Boolean
|
20
20
|
attribute :items, Array[Item]
|
21
|
+
attribute :reference_1, String
|
22
|
+
attribute :reference_2, String
|
21
23
|
|
22
24
|
attribute :errors, Array[String], default: []
|
23
25
|
attribute :warnings, Array[String], default: []
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module Newgistics
|
2
|
+
class Package
|
3
|
+
include Newgistics::Model
|
4
|
+
|
5
|
+
attribute :tracking_number, String
|
6
|
+
attribute :weight, Float
|
7
|
+
attribute :billable_weight, Float
|
8
|
+
attribute :height, Float
|
9
|
+
attribute :width, Float
|
10
|
+
attribute :depth, Float
|
11
|
+
attribute :items, Array[PackageItem]
|
12
|
+
end
|
13
|
+
end
|
@@ -54,6 +54,8 @@ module Newgistics
|
|
54
54
|
xml.GiftMessage order.gift_message
|
55
55
|
xml.HoldForAllInventory order.hold_for_all_inventory
|
56
56
|
xml.AllowDuplicate order.allow_duplicate
|
57
|
+
xml.Reference1 order.reference_1
|
58
|
+
xml.Reference2 order.reference_2
|
57
59
|
|
58
60
|
order_date_xml(order, xml)
|
59
61
|
customer_xml(order.customer, xml)
|
@@ -0,0 +1,74 @@
|
|
1
|
+
module Newgistics
|
2
|
+
module Requests
|
3
|
+
class UpdateShipmentAddress
|
4
|
+
attr_reader :shipment_address_update, :response_handler
|
5
|
+
|
6
|
+
def initialize(shipment_address_update, response_handler: nil)
|
7
|
+
@shipment_address_update = shipment_address_update
|
8
|
+
@response_handler = response_handler || default_response_handler
|
9
|
+
end
|
10
|
+
|
11
|
+
def path
|
12
|
+
'/update_shipment_address.aspx'
|
13
|
+
end
|
14
|
+
|
15
|
+
def body
|
16
|
+
xml_builder.to_xml
|
17
|
+
end
|
18
|
+
|
19
|
+
def perform
|
20
|
+
Newgistics.api.post(self, response_handler)
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
def default_response_handler
|
26
|
+
ResponseHandlers::UpdateShipmentAddress.new(shipment_address_update)
|
27
|
+
end
|
28
|
+
|
29
|
+
def xml_builder
|
30
|
+
Nokogiri::XML::Builder.new do |xml|
|
31
|
+
shipment_address_update_xml(xml)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def shipment_address_update_xml(xml)
|
36
|
+
xml.updateShipment(shipment_address_update_attributes) do
|
37
|
+
xml_field(xml, 'FirstName', :first_name)
|
38
|
+
xml_field(xml, 'LastName', :last_name)
|
39
|
+
xml_field(xml, 'Company', :company)
|
40
|
+
xml_field(xml, 'Address1', :address1)
|
41
|
+
xml_field(xml, 'Address2', :address2)
|
42
|
+
xml_field(xml, 'City', :city)
|
43
|
+
xml_field(xml, 'State', :state)
|
44
|
+
xml_field(xml, 'PostalCode', :postal_code)
|
45
|
+
xml_field(xml, 'Country', :country)
|
46
|
+
xml_field(xml, 'Email', :email)
|
47
|
+
xml_field(xml, 'Phone', :phone)
|
48
|
+
xml_field(xml, 'Fax', :fax)
|
49
|
+
xml_field(xml, 'IsResidential', :is_residential)
|
50
|
+
xml_field(xml, 'Status', :status)
|
51
|
+
xml_field(xml, 'StatusNotes', :status_notes)
|
52
|
+
xml_field(xml, 'ShipMethod', :ship_method)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def xml_field(xml, xml_node, attribute_name)
|
57
|
+
value = shipment_address_update.send(attribute_name)
|
58
|
+
xml.send(xml_node, value) unless value.nil?
|
59
|
+
end
|
60
|
+
|
61
|
+
def api_key
|
62
|
+
Newgistics.configuration.api_key
|
63
|
+
end
|
64
|
+
|
65
|
+
def shipment_address_update_attributes
|
66
|
+
{
|
67
|
+
apiKey: api_key,
|
68
|
+
id: shipment_address_update.id,
|
69
|
+
orderID: shipment_address_update.order_id
|
70
|
+
}.reject { |_k, v| v.nil? || v.empty? }
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Newgistics
|
2
|
+
module ResponseHandlers
|
3
|
+
class UpdateShipmentAddress
|
4
|
+
attr_reader :shipment_address_update
|
5
|
+
|
6
|
+
def initialize(shipment_address_update)
|
7
|
+
@shipment_address_update = shipment_address_update
|
8
|
+
end
|
9
|
+
|
10
|
+
def handle(response)
|
11
|
+
PostErrors.new(shipment_address_update).handle(response)
|
12
|
+
if shipment_address_update.errors.empty?
|
13
|
+
handle_successful_response(response)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def handle_successful_response(response)
|
20
|
+
xml = Nokogiri::XML(response.body)
|
21
|
+
shipment_address_update.success = xml.at_css('success').text
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
data/lib/newgistics/shipment.rb
CHANGED
@@ -0,0 +1,39 @@
|
|
1
|
+
module Newgistics
|
2
|
+
class ShipmentAddressUpdate
|
3
|
+
include Newgistics::Model
|
4
|
+
|
5
|
+
attribute :id, String
|
6
|
+
attribute :order_id, String
|
7
|
+
|
8
|
+
attribute :company, String
|
9
|
+
attribute :first_name, String
|
10
|
+
attribute :last_name, String
|
11
|
+
attribute :address1, String
|
12
|
+
attribute :address2, String
|
13
|
+
attribute :city, String
|
14
|
+
attribute :state, String
|
15
|
+
attribute :postal_code, String
|
16
|
+
attribute :country, String
|
17
|
+
attribute :email, String
|
18
|
+
attribute :phone, String
|
19
|
+
attribute :fax, String
|
20
|
+
attribute :is_residential, Boolean
|
21
|
+
|
22
|
+
attribute :status, String
|
23
|
+
attribute :status_notes, String
|
24
|
+
attribute :ship_method, String
|
25
|
+
|
26
|
+
attribute :success, Boolean
|
27
|
+
attribute :errors, Array[String], default: []
|
28
|
+
attribute :warnings, Array[String], default: []
|
29
|
+
|
30
|
+
def success?
|
31
|
+
!!success
|
32
|
+
end
|
33
|
+
|
34
|
+
def save
|
35
|
+
Requests::UpdateShipmentAddress.new(self).perform
|
36
|
+
errors.empty? && success?
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
data/lib/newgistics/version.rb
CHANGED
data/newgistics.gemspec
CHANGED
@@ -30,7 +30,7 @@ Gem::Specification.new do |spec|
|
|
30
30
|
spec.add_development_dependency "rake", "~> 10.0"
|
31
31
|
spec.add_development_dependency "rspec", "~> 3.0"
|
32
32
|
spec.add_development_dependency "pry"
|
33
|
-
spec.add_development_dependency "simplecov"
|
33
|
+
spec.add_development_dependency "simplecov", "~> 0.17.1"
|
34
34
|
spec.add_development_dependency "dotenv"
|
35
35
|
spec.add_development_dependency "vcr", "~> 3.0.3"
|
36
36
|
spec.add_development_dependency "timecop", "~> 0.9"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: newgistics
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Manuel Martinez
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2020-10-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: virtus
|
@@ -127,16 +127,16 @@ dependencies:
|
|
127
127
|
name: simplecov
|
128
128
|
requirement: !ruby/object:Gem::Requirement
|
129
129
|
requirements:
|
130
|
-
- - "
|
130
|
+
- - "~>"
|
131
131
|
- !ruby/object:Gem::Version
|
132
|
-
version:
|
132
|
+
version: 0.17.1
|
133
133
|
type: :development
|
134
134
|
prerelease: false
|
135
135
|
version_requirements: !ruby/object:Gem::Requirement
|
136
136
|
requirements:
|
137
|
-
- - "
|
137
|
+
- - "~>"
|
138
138
|
- !ruby/object:Gem::Version
|
139
|
-
version:
|
139
|
+
version: 0.17.1
|
140
140
|
- !ruby/object:Gem::Dependency
|
141
141
|
name: dotenv
|
142
142
|
requirement: !ruby/object:Gem::Requirement
|
@@ -216,6 +216,8 @@ files:
|
|
216
216
|
- lib/newgistics/manifest_slip.rb
|
217
217
|
- lib/newgistics/model.rb
|
218
218
|
- lib/newgistics/order.rb
|
219
|
+
- lib/newgistics/package.rb
|
220
|
+
- lib/newgistics/package_item.rb
|
219
221
|
- lib/newgistics/product.rb
|
220
222
|
- lib/newgistics/query.rb
|
221
223
|
- lib/newgistics/requests/cancel_manifest.rb
|
@@ -224,6 +226,7 @@ files:
|
|
224
226
|
- lib/newgistics/requests/post_manifest.rb
|
225
227
|
- lib/newgistics/requests/post_shipment.rb
|
226
228
|
- lib/newgistics/requests/search.rb
|
229
|
+
- lib/newgistics/requests/update_shipment_address.rb
|
227
230
|
- lib/newgistics/requests/update_shipment_contents.rb
|
228
231
|
- lib/newgistics/response_handlers/cancel_manifest.rb
|
229
232
|
- lib/newgistics/response_handlers/cancel_shipment.rb
|
@@ -232,9 +235,11 @@ files:
|
|
232
235
|
- lib/newgistics/response_handlers/post_manifest.rb
|
233
236
|
- lib/newgistics/response_handlers/post_shipment.rb
|
234
237
|
- lib/newgistics/response_handlers/search.rb
|
238
|
+
- lib/newgistics/response_handlers/update_shipment_address.rb
|
235
239
|
- lib/newgistics/response_handlers/update_shipment_contents.rb
|
236
240
|
- lib/newgistics/return.rb
|
237
241
|
- lib/newgistics/shipment.rb
|
242
|
+
- lib/newgistics/shipment_address_update.rb
|
238
243
|
- lib/newgistics/shipment_cancellation.rb
|
239
244
|
- lib/newgistics/shipment_update.rb
|
240
245
|
- lib/newgistics/string_helper.rb
|