sailthru-client 4.0.0 → 4.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/CHANGELOG.md +4 -1
- data/lib/sailthru/client.rb +5 -5
- data/lib/sailthru/version.rb +1 -1
- data/test/sailthru/receive_post_callback_test.rb +54 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZmUzNjY1NzM2ZDI3ZDNmZjdmYjFlMjUwMmI4NjIwOTQzZTQxZTYyOQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZjNlY2ViMTg3OTVlYjI2MDYyNDRmOWU4M2QyOGJiOTBlODgxNDNhMQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
Mzc0ZTM2Nzk3NTExYzEzMzFlYzA1N2U5M2E5MTgxOGJkMTllMGIwZTc3ZWJj
|
10
|
+
MDAyMDRhZDk0ZDY3YzJiNThjN2U5NTVlMTc5ZWIwZjJhMmJhYWM5MzM2OTkw
|
11
|
+
ODFkMjk3NjI0YzhiODVhODYyNDhhZDg3MmVmYjFmOGE5MmRkMTM=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
OWY5N2E0Njc3ZWE5MWE5Nzg2MDM3MDU0NjkwMTEwMGM4MmRhYjRlYTA0Y2Y1
|
14
|
+
NTMxMGFiMjAxNDI3NjBmOWYyYWIxZjEwMDYzYWJjYjRkMDEyMmE5MjcyMTQ2
|
15
|
+
NmQ2MzhkOGMzYTZkOTI4ZGViNTY5YWFiNDJhMzQ4YTAxOWNhOWU=
|
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,7 @@
|
|
1
|
-
## 4.0.
|
1
|
+
## 4.0.1 (Jun 27, 2014)
|
2
|
+
- Bug fix for https://github.com/sailthru/sailthru-ruby-client/pull/48
|
3
|
+
|
4
|
+
## 4.0.0 (Jun 17, 2014)
|
2
5
|
- Rename Sailthru::SailthruClient to Sailthru::Client
|
3
6
|
- Rework custom exceptions to be StandardErrors
|
4
7
|
- Add `Sailthru.credentials` for easy initialization in Rails apps
|
data/lib/sailthru/client.rb
CHANGED
@@ -279,13 +279,13 @@ module Sailthru
|
|
279
279
|
return false unless params[:action] == :verify
|
280
280
|
|
281
281
|
sig = params.delete(:sig)
|
282
|
-
|
282
|
+
params.delete(:controller)
|
283
283
|
return false unless sig == get_signature_hash(params, @secret)
|
284
284
|
|
285
285
|
_send = get_send(params[:send_id])
|
286
|
-
return false unless _send.has_key?(
|
286
|
+
return false unless _send.has_key?('email')
|
287
287
|
|
288
|
-
return false unless _send[
|
288
|
+
return false unless _send['email'] == params[:email]
|
289
289
|
|
290
290
|
return true
|
291
291
|
else
|
@@ -305,7 +305,7 @@ module Sailthru
|
|
305
305
|
return false unless params[:action] == 'optout'
|
306
306
|
|
307
307
|
sig = params.delete(:sig)
|
308
|
-
|
308
|
+
params.delete(:controller)
|
309
309
|
return false unless sig == get_signature_hash(params, @secret)
|
310
310
|
return true
|
311
311
|
else
|
@@ -325,7 +325,7 @@ module Sailthru
|
|
325
325
|
return false unless params[:action] == 'hardbounce'
|
326
326
|
|
327
327
|
sig = params.delete(:sig)
|
328
|
-
|
328
|
+
params.delete(:controller)
|
329
329
|
return false unless sig == get_signature_hash(params, @secret)
|
330
330
|
return true
|
331
331
|
else
|
data/lib/sailthru/version.rb
CHANGED
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class ReceivePostCallbackTest < Minitest::Test
|
4
|
+
describe "API helpers: validate post callbacks" do
|
5
|
+
before do
|
6
|
+
@api_url = 'http://api.sailthru.com'
|
7
|
+
@secret = 'my_secret'
|
8
|
+
@api_key = 'my_api_key'
|
9
|
+
@sailthru_client = Sailthru::Client.new(@api_key, @secret, @api_url)
|
10
|
+
end
|
11
|
+
|
12
|
+
it "can validate a verify callback" do
|
13
|
+
valid_send_id = "TT1ClGdj2bRHAAP6"
|
14
|
+
get_send_params = {
|
15
|
+
'send_id' => valid_send_id
|
16
|
+
}
|
17
|
+
query_string = create_json_payload(@api_key, @secret, get_send_params)
|
18
|
+
stub_get(sailthru_api_call_url(@api_url, 'send') + '?' + query_string , 'send_get_valid.json')
|
19
|
+
|
20
|
+
params = {
|
21
|
+
:email => 'praj@sailthru.com',
|
22
|
+
:action => :verify,
|
23
|
+
:send_id => valid_send_id,
|
24
|
+
:api_key => @api_key
|
25
|
+
}
|
26
|
+
params[:sig] = get_signature_hash(params, @secret)
|
27
|
+
assert @sailthru_client.receive_verify_post(params, mock(:post? => true))
|
28
|
+
end
|
29
|
+
|
30
|
+
it "can validate a opt-out callback" do
|
31
|
+
params = {
|
32
|
+
:email => 'ian@sailthru.com',
|
33
|
+
:mode => 'all',
|
34
|
+
:optout => '0',
|
35
|
+
:action => 'optout',
|
36
|
+
:api_key => @api_key
|
37
|
+
}
|
38
|
+
params[:sig] = get_signature_hash(params, @secret)
|
39
|
+
assert @sailthru_client.receive_optout_post(params, mock(:post? => true))
|
40
|
+
end
|
41
|
+
|
42
|
+
it "can validate a hardbounce callback" do
|
43
|
+
params = {
|
44
|
+
:email => 'ian@sailthru.com',
|
45
|
+
:action => 'hardbounce',
|
46
|
+
:send_id => 'TT1ClGdj2bRHAAP6',
|
47
|
+
:api_key => @api_key
|
48
|
+
}
|
49
|
+
params[:sig] = get_signature_hash(params, @secret)
|
50
|
+
assert @sailthru_client.receive_hardbounce_post(params, mock(:post? => true))
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sailthru-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.0.
|
4
|
+
version: 4.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Prajwal Tuladhar
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-06-
|
12
|
+
date: 2014-06-30 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|
@@ -160,6 +160,7 @@ files:
|
|
160
160
|
- test/sailthru/helpers_test.rb
|
161
161
|
- test/sailthru/list_test.rb
|
162
162
|
- test/sailthru/purchase_test.rb
|
163
|
+
- test/sailthru/receive_post_callback_test.rb
|
163
164
|
- test/sailthru/send_test.rb
|
164
165
|
- test/sailthru/stats_test.rb
|
165
166
|
- test/sailthru/template_test.rb
|
@@ -238,6 +239,7 @@ test_files:
|
|
238
239
|
- test/sailthru/helpers_test.rb
|
239
240
|
- test/sailthru/list_test.rb
|
240
241
|
- test/sailthru/purchase_test.rb
|
242
|
+
- test/sailthru/receive_post_callback_test.rb
|
241
243
|
- test/sailthru/send_test.rb
|
242
244
|
- test/sailthru/stats_test.rb
|
243
245
|
- test/sailthru/template_test.rb
|