smartsend-ruby 0.4.3 → 0.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/.ruby-version +1 -0
- data/README.md +3 -0
- data/lib/smartsend/client.rb +13 -7
- data/lib/smartsend/label.rb +16 -0
- data/lib/smartsend/version.rb +1 -1
- data/lib/smartsend.rb +1 -0
- data/test/test_label.rb +16 -0
- metadata +5 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d36b8c30a86a4866accdd796d49fde62d5e2fe8454460d1a28d21620f52d57db
|
4
|
+
data.tar.gz: 00c0cf8b2b5f219f03b4ccdc06aecdf3353c183909dd417721a19a927e784c2e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6462b9a13139bf477a86c27aa5a5bdbdd5b53c56923b94f4fece41108bbc6373f2522a056ed7c7b5220dc07eeedabccd9daa57f487b7bf66591fd7be49af3e26
|
7
|
+
data.tar.gz: 89df2896fa3dac223e5333cd43f7c2cbca5b2fcef7a5f3a33d82d5f3bb66b1be33500153a3d361c9e5db8a14f2a8fc5e0fa7f520fa29bd084da54528cd83c6aa
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.5
|
data/README.md
CHANGED
data/lib/smartsend/client.rb
CHANGED
@@ -3,17 +3,23 @@ require 'logger'
|
|
3
3
|
|
4
4
|
class Smartsend::Client
|
5
5
|
|
6
|
-
def initialize(account=nil)
|
6
|
+
def initialize(account=nil, debug: false)
|
7
7
|
@account = account || Smartsend.account
|
8
|
+
@debug = debug
|
8
9
|
end
|
9
10
|
|
10
11
|
def post(path, params)
|
12
|
+
debug("POST #{path}")
|
13
|
+
debug(params)
|
14
|
+
|
11
15
|
request do
|
12
16
|
http.post(url(path), json: params)
|
13
17
|
end
|
14
18
|
end
|
15
19
|
|
16
20
|
def get(path)
|
21
|
+
debug("GET #{path}")
|
22
|
+
|
17
23
|
request do
|
18
24
|
http.get(url(path))
|
19
25
|
end
|
@@ -26,8 +32,8 @@ class Smartsend::Client
|
|
26
32
|
def request
|
27
33
|
response = yield
|
28
34
|
|
29
|
-
|
30
|
-
|
35
|
+
debug(response)
|
36
|
+
debug(response.body.to_s)
|
31
37
|
|
32
38
|
case response.code
|
33
39
|
when (200..299)
|
@@ -68,16 +74,16 @@ class Smartsend::Client
|
|
68
74
|
|
69
75
|
private
|
70
76
|
|
77
|
+
def debug(value)
|
78
|
+
Logger.new($stdout).debug(value) if @debug
|
79
|
+
end
|
80
|
+
|
71
81
|
BASE_URL = 'http://smartsend-prod.apigee.net/api/v1'.freeze
|
72
82
|
|
73
83
|
def url(path)
|
74
84
|
"#{BASE_URL}/#{path}?api_token=#{@account.api_token}"
|
75
85
|
end
|
76
86
|
|
77
|
-
def logger
|
78
|
-
Logger.new($stdout)
|
79
|
-
end
|
80
|
-
|
81
87
|
def user_agent_string
|
82
88
|
(["Ruby/#{Smartsend::VERSION}"] + @account.user_agents.to_a).join(' ')
|
83
89
|
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
class Smartsend::Label
|
2
|
+
attr_accessor :tracking_code, :url, :pdf
|
3
|
+
|
4
|
+
def self.find_by_tracking_code(tracking_code, account: nil)
|
5
|
+
response = Smartsend::Client.new(account, debug: true).get("shipments/tracking/#{tracking_code}/labels")
|
6
|
+
|
7
|
+
if response.success?
|
8
|
+
label = new
|
9
|
+
label.tracking_code = tracking_code
|
10
|
+
label.url = response.dig('data', 'pdf', 'link')
|
11
|
+
label.pdf = response.dig('data', 'pdf', 'base_64_encoded')
|
12
|
+
label
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
data/lib/smartsend/version.rb
CHANGED
data/lib/smartsend.rb
CHANGED
@@ -39,6 +39,7 @@ require_relative 'smartsend/services'
|
|
39
39
|
require_relative 'smartsend/parcel'
|
40
40
|
require_relative 'smartsend/parcel_item'
|
41
41
|
require_relative 'smartsend/client'
|
42
|
+
require_relative 'smartsend/label'
|
42
43
|
require_relative 'smartsend/account'
|
43
44
|
require_relative 'smartsend/version'
|
44
45
|
require_relative 'smartsend/request_error'
|
data/test/test_label.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'minitest/autorun'
|
2
|
+
require 'smartsend'
|
3
|
+
|
4
|
+
class ShipmentTest < Minitest::Test
|
5
|
+
|
6
|
+
def test_find_label
|
7
|
+
Smartsend.configure(
|
8
|
+
api_token: ENV['SMARTSEND_TOKEN'],
|
9
|
+
)
|
10
|
+
|
11
|
+
assert_raises Smartsend::NotFoundError do
|
12
|
+
Smartsend::Label.find_by_tracking_code('123')
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smartsend-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aske Hansen
|
@@ -31,6 +31,7 @@ extensions: []
|
|
31
31
|
extra_rdoc_files: []
|
32
32
|
files:
|
33
33
|
- ".gitignore"
|
34
|
+
- ".ruby-version"
|
34
35
|
- Gemfile
|
35
36
|
- Gemfile.lock
|
36
37
|
- MIT-LICENSE
|
@@ -42,6 +43,7 @@ files:
|
|
42
43
|
- lib/smartsend/address.rb
|
43
44
|
- lib/smartsend/agent.rb
|
44
45
|
- lib/smartsend/client.rb
|
46
|
+
- lib/smartsend/label.rb
|
45
47
|
- lib/smartsend/parcel.rb
|
46
48
|
- lib/smartsend/parcel_item.rb
|
47
49
|
- lib/smartsend/receiver.rb
|
@@ -52,6 +54,7 @@ files:
|
|
52
54
|
- lib/smartsend/version.rb
|
53
55
|
- smartsend-ruby.gemspec
|
54
56
|
- test/test_account.rb
|
57
|
+
- test/test_label.rb
|
55
58
|
- test/test_shipment.rb
|
56
59
|
- test/test_smartsend.rb
|
57
60
|
homepage: https://github.com/smartsendio/smartsend-ruby
|
@@ -80,5 +83,6 @@ specification_version: 4
|
|
80
83
|
summary: Smartsend.io api client
|
81
84
|
test_files:
|
82
85
|
- test/test_account.rb
|
86
|
+
- test/test_label.rb
|
83
87
|
- test/test_shipment.rb
|
84
88
|
- test/test_smartsend.rb
|