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 CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YWFlMjgwYzY1YjJlODhhYzk1YzFkY2ZhM2ViMGE4MzkyYjQ2ZDQ3Mg==
4
+ ZmUzNjY1NzM2ZDI3ZDNmZjdmYjFlMjUwMmI4NjIwOTQzZTQxZTYyOQ==
5
5
  data.tar.gz: !binary |-
6
- ZTY5YjllNGI5Y2MyZjY2MDMwYWE0ZDdlYzdhNDQzODA4YzRiNzc1Mg==
6
+ ZjNlY2ViMTg3OTVlYjI2MDYyNDRmOWU4M2QyOGJiOTBlODgxNDNhMQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- Y2Q4N2JhZWVjN2Y1ZTJjMGUzNDkxNjg0YzYyMjFjZGFmN2QzZWU3M2RlNWJl
10
- ZGRkOWRmNmJiYjU0ZWRhZjgwMWNjMGE2Njk1ZDMxYzhiZDM4ZDgwZGM1ODdl
11
- YTA2M2EwODJlMGI2YmIxOGU3YmJkY2U1MjFkZDEzMjUwZmI3YWU=
9
+ Mzc0ZTM2Nzk3NTExYzEzMzFlYzA1N2U5M2E5MTgxOGJkMTllMGIwZTc3ZWJj
10
+ MDAyMDRhZDk0ZDY3YzJiNThjN2U5NTVlMTc5ZWIwZjJhMmJhYWM5MzM2OTkw
11
+ ODFkMjk3NjI0YzhiODVhODYyNDhhZDg3MmVmYjFmOGE5MmRkMTM=
12
12
  data.tar.gz: !binary |-
13
- MGY0ODNiNzNkMjYwMTQxMjU1N2NjNDA0MGJlNjlhMWM1MGU4Mjk0NjFjZDE5
14
- ZDliZWViMGFkMmY5NDY0Y2RkZmJkOGI0MmYyMjdjMzU4ZmJhNzhjMzYxYmJk
15
- NDBlYzMxMjA2MWE1MDg5N2ExM2YzNTY3OWE5MTA1MDRlZmIxOTY=
13
+ OWY5N2E0Njc3ZWE5MWE5Nzg2MDM3MDU0NjkwMTEwMGM4MmRhYjRlYTA0Y2Y1
14
+ NTMxMGFiMjAxNDI3NjBmOWYyYWIxZjEwMDYzYWJjYjRkMDEyMmE5MjcyMTQ2
15
+ NmQ2MzhkOGMzYTZkOTI4ZGViNTY5YWFiNDJhMzQ4YTAxOWNhOWU=
@@ -1,4 +1,7 @@
1
- ## 4.0.0 (TBD)
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
@@ -279,13 +279,13 @@ module Sailthru
279
279
  return false unless params[:action] == :verify
280
280
 
281
281
  sig = params.delete(:sig)
282
- sig = sig.delete_if {|key, value| key == :controller}
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?(:email)
286
+ return false unless _send.has_key?('email')
287
287
 
288
- return false unless _send[:email] == params[:email]
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
- sig = sig.delete_if {|key, value| key == :controller}
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
- sig = sig.delete_if {|key, value| key == :controller}
328
+ params.delete(:controller)
329
329
  return false unless sig == get_signature_hash(params, @secret)
330
330
  return true
331
331
  else
@@ -1,3 +1,3 @@
1
1
  module Sailthru
2
- VERSION = '4.0.0'
2
+ VERSION = '4.0.1'
3
3
  end
@@ -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.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-27 00:00:00.000000000 Z
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