shippo 2.0.6 → 2.0.7
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/CHANGELOG.md +7 -0
- data/bin/address_validation_example +100 -0
- data/bin/{example → basic_shipment_example} +3 -0
- data/lib/shippo/api.rb +1 -1
- data/lib/shippo/api/operations/validate.rb +2 -2
- data/lib/shippo/api/resource.rb +4 -0
- data/lib/shippo/api/version.rb +1 -1
- data/lib/shippo/model/address.rb +1 -1
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7cf3a2a856cd835b2b6bd4b9dd581be7aa861c1d
|
4
|
+
data.tar.gz: 9e18225119fd342921378279dd15ef5827bfe4a0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8a4516e0260ac10b5e4437ccd3603f5f69384422a1ff9f57dd014e0b28dc20419ff455e2a334024c9d7482b5940197ef3ac6b9bf1ceb783633d8904dadbab043
|
7
|
+
data.tar.gz: d103a9d4cf47d126303892dac1281c84e3813525597eca4c8640bfa69f11f21e5ace1f81d5e6081adc963155ae8896e23dab1d7d29f2c8c0069d314eed7a6e4e
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
### 2.0.7 release, Jan 2nd, 2017
|
2
|
+
- Fixed bug preventing address validation
|
3
|
+
- Removed trailing slash from base URL, added spec test to ensure this configuration
|
4
|
+
- Added address validation example
|
5
|
+
- Updated basic shipment example to include how to access the Shippo object id
|
6
|
+
### 2.0.6 release, Nov 22nd, 2016
|
7
|
+
- Fixed bug to send request with correct API version header
|
1
8
|
#### 2.0.5 release, Oct 24th, 2016
|
2
9
|
- Updated README.md
|
3
10
|
- now possible to send API version
|
@@ -0,0 +1,100 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# © 2016 Shippo, Inc.
|
4
|
+
#
|
5
|
+
# License: MIT
|
6
|
+
#
|
7
|
+
# This example demonstrates how to purchase a label for a domestic US shipment.
|
8
|
+
# Please set +SHIPPO_TOKEN+ in the environment before running it.
|
9
|
+
#
|
10
|
+
# You can also set +SHIPPO_DEBUG+ to see detailed printouts of objects returned.
|
11
|
+
#
|
12
|
+
#
|
13
|
+
|
14
|
+
lib = File.expand_path('../../lib', __FILE__)
|
15
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
16
|
+
|
17
|
+
require 'bundler/setup'
|
18
|
+
require 'shippo'
|
19
|
+
require 'shippo/api/category'
|
20
|
+
require 'shippo/exceptions/api_error'
|
21
|
+
require 'awesome_print'
|
22
|
+
require 'json'
|
23
|
+
|
24
|
+
Shippo::API.token = ENV['SHIPPO_TOKEN']
|
25
|
+
|
26
|
+
# Simple wrapper class to help us print objects to the STDOUT
|
27
|
+
class ExampleHelper
|
28
|
+
def self.log_operation(msg)
|
29
|
+
printf '%s', msg
|
30
|
+
result = yield
|
31
|
+
puts 'OK'
|
32
|
+
result
|
33
|
+
rescue Exception => e
|
34
|
+
raise(e)
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.dump_object(instance, msg = nil)
|
38
|
+
return unless Shippo::API.debug?
|
39
|
+
sep
|
40
|
+
puts "#{msg.upcase}:" if msg
|
41
|
+
puts "\#<#{instance.class.inspect}:0x#{instance.object_id.to_s(16)}> ⇒ "
|
42
|
+
ap instance
|
43
|
+
sep
|
44
|
+
# See https://github.com/goshippo/shippo-ruby-client#resource-id-and-other-object-fields
|
45
|
+
puts "Shippo object id: #{instance.object.id}"
|
46
|
+
sep
|
47
|
+
end
|
48
|
+
|
49
|
+
def self.sep
|
50
|
+
puts '—' * (ENV['COLUMNS'] || 80)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
# Create address object
|
55
|
+
address = {
|
56
|
+
:object_purpose => 'PURCHASE',
|
57
|
+
:name => 'Mr Hippo',
|
58
|
+
:company => 'Shippo',
|
59
|
+
:street1 => '215 Clayton St.',
|
60
|
+
:street2 => '',
|
61
|
+
:city => 'San Francisco',
|
62
|
+
:state => 'CA',
|
63
|
+
:zip => '94117',
|
64
|
+
:country => 'US',
|
65
|
+
:phone => '+1 555 341 9393',
|
66
|
+
:email => 'support@goshippo.com',
|
67
|
+
:is_residential => true,
|
68
|
+
:metadata => 'some metadata'
|
69
|
+
}
|
70
|
+
|
71
|
+
begin
|
72
|
+
address = ExampleHelper.log_operation 'Creating address... ' do
|
73
|
+
Shippo::Address.create(address)
|
74
|
+
end
|
75
|
+
raise Shippo::Exceptions::UnsuccessfulResponseError.new(address.object.inspect) unless address.valid?
|
76
|
+
File.open('example-address.json', 'w') do |file|
|
77
|
+
file.puts JSON.dump(address.to_hash)
|
78
|
+
end
|
79
|
+
rescue Shippo::Exceptions::APIServerError => e
|
80
|
+
puts "Server returned an error:\n#{e}"
|
81
|
+
exit 3
|
82
|
+
rescue Shippo::Exceptions::ConnectionError
|
83
|
+
puts 'Error connecting to remote host. Is your Internet working?'
|
84
|
+
exit 2
|
85
|
+
rescue Shippo::Exceptions::AuthenticationError
|
86
|
+
if Shippo::API.token
|
87
|
+
puts "Token '#{Shippo::API.token}' does not appear to be valid."
|
88
|
+
puts 'Access denied.'
|
89
|
+
else
|
90
|
+
puts 'Please set authentication token in the environment:'
|
91
|
+
puts 'export SHIPPO_TOKEN="<your token here>"'
|
92
|
+
puts 'and re-run the example.'
|
93
|
+
end
|
94
|
+
exit 1
|
95
|
+
end
|
96
|
+
|
97
|
+
# Validate the address that we created
|
98
|
+
resp = Shippo::Address.validate(address.object.id)
|
99
|
+
ExampleHelper.dump_object(resp, 'Validation complete')
|
100
|
+
|
@@ -41,6 +41,9 @@ class ExampleHelper
|
|
41
41
|
puts "\#<#{instance.class.inspect}:0x#{instance.object_id.to_s(16)}> ⇒ "
|
42
42
|
ap instance
|
43
43
|
sep
|
44
|
+
# See https://github.com/goshippo/shippo-ruby-client#resource-id-and-other-object-fields
|
45
|
+
puts "Shippo object id: #{instance.object.id}"
|
46
|
+
sep
|
44
47
|
end
|
45
48
|
|
46
49
|
def self.sep
|
data/lib/shippo/api.rb
CHANGED
@@ -2,8 +2,8 @@ module Shippo
|
|
2
2
|
module API
|
3
3
|
module Operations
|
4
4
|
module Validate
|
5
|
-
def validate(params={})
|
6
|
-
response = Shippo::API.get("#{url}/validate/", params)
|
5
|
+
def validate(object_id, params={})
|
6
|
+
response = Shippo::API.get("#{url}/#{CGI.escape(object_id)}/validate/", params)
|
7
7
|
Shippo::Address.from(response)
|
8
8
|
end
|
9
9
|
end
|
data/lib/shippo/api/resource.rb
CHANGED
@@ -99,6 +99,10 @@ module Shippo
|
|
99
99
|
def success?
|
100
100
|
self.object && self.object.status && self.object.status.eql?(Shippo::API::Category::Status::SUCCESS)
|
101
101
|
end
|
102
|
+
|
103
|
+
def valid?
|
104
|
+
self.object && self.object.state && self.object.state.eql?(Shippo::API::Category::State::VALID)
|
105
|
+
end
|
102
106
|
end
|
103
107
|
end
|
104
108
|
end
|
data/lib/shippo/api/version.rb
CHANGED
data/lib/shippo/model/address.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shippo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shippo & Contributors
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2017-01-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rest-client
|
@@ -188,8 +188,9 @@ files:
|
|
188
188
|
- Guardfile
|
189
189
|
- README.md
|
190
190
|
- Rakefile
|
191
|
+
- bin/address_validation_example
|
192
|
+
- bin/basic_shipment_example
|
191
193
|
- bin/console
|
192
|
-
- bin/example
|
193
194
|
- lib/shippo.rb
|
194
195
|
- lib/shippo/api.rb
|
195
196
|
- lib/shippo/api/api_object.rb
|
@@ -249,7 +250,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
249
250
|
version: '0'
|
250
251
|
requirements: []
|
251
252
|
rubyforge_project:
|
252
|
-
rubygems_version: 2.
|
253
|
+
rubygems_version: 2.6.9
|
253
254
|
signing_key:
|
254
255
|
specification_version: 4
|
255
256
|
summary: API client for Shippo® APIs. Shippo helps you connect with multiple carriers
|