easypost 2.5.0 → 2.6.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/CHANGELOG +4 -0
- data/VERSION +1 -1
- data/lib/easypost.rb +1 -0
- data/lib/easypost/util.rb +4 -2
- data/lib/easypost/webhook.rb +28 -0
- data/spec/webhook_spec.rb +75 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1b360f6133e438fbd6da1c82a6d3fd896fc6e5c0
|
4
|
+
data.tar.gz: 0a428545bec4b22c37612d1880b7b9ece706136d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 154082e65747ede8cb1fbb9d06c99ae0ad4d336c7b52fecd8a3c51ab35bfab6dbde9d7a3e04e603e7eb4689b2e7f4419b51be37667ffdd8db6ddbcf695f2528d
|
7
|
+
data.tar.gz: 8d62d3abafc9f1df1a67199b8653a2ca772ef371c60b3a45f615b663b4d4fbee7c8080743fdc0da3c9a00e9272fa18e513fb69f1da3d58bc6ad031af8a79bd4f
|
data/CHANGELOG
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.6.0
|
data/lib/easypost.rb
CHANGED
data/lib/easypost/util.rb
CHANGED
@@ -42,7 +42,8 @@ module EasyPost
|
|
42
42
|
'Report' => Report,
|
43
43
|
'ShipmentReport' => Report,
|
44
44
|
'PaymentLogReport' => Report,
|
45
|
-
'TrackerReport' => Report
|
45
|
+
'TrackerReport' => Report,
|
46
|
+
'Webhook' => Webhook
|
46
47
|
}
|
47
48
|
|
48
49
|
prefixes = {
|
@@ -70,7 +71,8 @@ module EasyPost
|
|
70
71
|
'user' => User,
|
71
72
|
'shprep' => Report,
|
72
73
|
'plrep' => Report,
|
73
|
-
'trkrep' => Report
|
74
|
+
'trkrep' => Report,
|
75
|
+
'hook' => Webhook
|
74
76
|
}
|
75
77
|
|
76
78
|
case response
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module EasyPost
|
2
|
+
class Webhook < Resource
|
3
|
+
def update(params={})
|
4
|
+
unless self.id
|
5
|
+
raise Error.new("Could not determine which URL to request: #{self.class} instance has invalid ID: #{self.id.inspect}")
|
6
|
+
end
|
7
|
+
instance_url = "#{self.class.url}/#{CGI.escape(id)}"
|
8
|
+
|
9
|
+
response, api_key = EasyPost.request(:put, instance_url, @api_key, params)
|
10
|
+
self.refresh_from(response, api_key, true)
|
11
|
+
|
12
|
+
return self
|
13
|
+
end
|
14
|
+
|
15
|
+
def delete
|
16
|
+
# Note: This method is redefined here since the "url" method conflicts with the objects field
|
17
|
+
unless self.id
|
18
|
+
raise Error.new("Could not determine which URL to request: #{self.class} instance has invalid ID: #{self.id.inspect}")
|
19
|
+
end
|
20
|
+
instance_url = "#{self.class.url}/#{CGI.escape(id)}"
|
21
|
+
|
22
|
+
response, api_key = EasyPost.request(:delete, instance_url, @api_key)
|
23
|
+
refresh_from(response, api_key)
|
24
|
+
|
25
|
+
return self
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe EasyPost::Webhook do
|
4
|
+
let(:url) { "http://example.com" }
|
5
|
+
let(:webhook) { EasyPost::Webhook.create({url: url}) }
|
6
|
+
|
7
|
+
context 'with automated cleanup' do
|
8
|
+
after do
|
9
|
+
webhook.delete()
|
10
|
+
end
|
11
|
+
|
12
|
+
describe '#create' do
|
13
|
+
it 'creates' do
|
14
|
+
expect(webhook.id).not_to be_nil
|
15
|
+
expect(webhook.url).to eq(url)
|
16
|
+
expect(webhook.mode).to eq("test")
|
17
|
+
expect(webhook.disabled_at).to be_nil
|
18
|
+
expect(webhook.class).to eq(EasyPost::Webhook)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
describe '#retrieve' do
|
23
|
+
it 'retrieves' do
|
24
|
+
hook = EasyPost::Webhook.retrieve(webhook.id)
|
25
|
+
|
26
|
+
expect(hook.id).to eq(webhook.id)
|
27
|
+
expect(hook.url).to eq(url)
|
28
|
+
expect(hook.mode).to eq("test")
|
29
|
+
expect(hook.disabled_at).to be_nil
|
30
|
+
expect(hook.class).to eq(EasyPost::Webhook)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
describe '#index' do
|
35
|
+
it 'indexes with the recently created webhook as the last one' do
|
36
|
+
webhook
|
37
|
+
webhooks = EasyPost::Webhook.all({})
|
38
|
+
|
39
|
+
hook = webhooks["webhooks"].last
|
40
|
+
|
41
|
+
expect(hook.id).to eq(webhook.id)
|
42
|
+
expect(hook.url).to eq(url)
|
43
|
+
expect(hook.mode).to eq("test")
|
44
|
+
expect(hook.disabled_at).to be_nil
|
45
|
+
expect(hook.class).to eq(EasyPost::Webhook)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
describe '#retrieve' do
|
50
|
+
it 'retrieves' do
|
51
|
+
hook = webhook.update({})
|
52
|
+
|
53
|
+
expect(hook.id).to eq(webhook.id)
|
54
|
+
expect(hook.url).to eq(url)
|
55
|
+
expect(hook.mode).to eq("test")
|
56
|
+
expect(hook.disabled_at).to be_nil
|
57
|
+
expect(hook.class).to eq(EasyPost::Webhook)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
describe '#delete' do
|
63
|
+
it 'deletes the tracker' do
|
64
|
+
webhook.delete()
|
65
|
+
|
66
|
+
begin
|
67
|
+
EasyPost::Webhook.retrieve(webhook.id)
|
68
|
+
rescue EasyPost::Error => e
|
69
|
+
expect(e.http_status).to eq(404)
|
70
|
+
expect(e.code).to eq("NOT_FOUND")
|
71
|
+
expect(e.message).to eq("The requested resource could not be found.")
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: easypost
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sawyer Bateman
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-01-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|
@@ -126,6 +126,7 @@ files:
|
|
126
126
|
- lib/easypost/user.rb
|
127
127
|
- lib/easypost/util.rb
|
128
128
|
- lib/easypost/version.rb
|
129
|
+
- lib/easypost/webhook.rb
|
129
130
|
- spec/address_spec.rb
|
130
131
|
- spec/batch_spec.rb
|
131
132
|
- spec/carrier_account_spec.rb
|
@@ -140,6 +141,7 @@ files:
|
|
140
141
|
- spec/support/constant.rb
|
141
142
|
- spec/tracker_spec.rb
|
142
143
|
- spec/user_spec.rb
|
144
|
+
- spec/webhook_spec.rb
|
143
145
|
homepage: https://www.easypost.com/docs
|
144
146
|
licenses: []
|
145
147
|
metadata: {}
|
@@ -178,3 +180,4 @@ test_files:
|
|
178
180
|
- spec/support/constant.rb
|
179
181
|
- spec/tracker_spec.rb
|
180
182
|
- spec/user_spec.rb
|
183
|
+
- spec/webhook_spec.rb
|