sailthru-client 4.0.0 → 4.0.1

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 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