sailthru-client-notest 1.2 → 2.0.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.
- data/README.md +1 -1
- data/lib/sailthru.rb +93 -3
- metadata +4 -3
data/README.md
CHANGED
@@ -4,7 +4,7 @@ sailthru-ruby-client
|
|
4
4
|
For installation instructions, documentation, and examples please visit:
|
5
5
|
[http://getstarted.sailthru.com/developers/api-libraries/ruby](http://getstarted.sailthru.com/developers/api-libraries/ruby)
|
6
6
|
|
7
|
-
A simple client library to remotely access the `Sailthru REST API` as per [http://getstarted.sailthru.com/
|
7
|
+
A simple client library to remotely access the `Sailthru REST API` as per [http://getstarted.sailthru.com/api](http://getstarted.sailthru.com/developers/api)
|
8
8
|
|
9
9
|
By default, it will make request in `JSON` format.
|
10
10
|
|
data/lib/sailthru.rb
CHANGED
@@ -9,7 +9,7 @@ require 'net/http/post/multipart'
|
|
9
9
|
|
10
10
|
module Sailthru
|
11
11
|
|
12
|
-
Version = VERSION = '
|
12
|
+
Version = VERSION = '2.0.0'
|
13
13
|
|
14
14
|
class SailthruClientException < Exception
|
15
15
|
end
|
@@ -406,7 +406,26 @@ module Sailthru
|
|
406
406
|
if request.post?
|
407
407
|
[:action, :email, :sig].each { |key| return false unless params.has_key?(key) }
|
408
408
|
|
409
|
-
return false unless params[:action] ==
|
409
|
+
return false unless params[:action] == 'optout'
|
410
|
+
|
411
|
+
sig = params.delete(:sig)
|
412
|
+
return false unless sig == get_signature_hash(params, @secret)
|
413
|
+
return true
|
414
|
+
else
|
415
|
+
return false
|
416
|
+
end
|
417
|
+
end
|
418
|
+
|
419
|
+
# params:
|
420
|
+
# params, Hash
|
421
|
+
# request, String
|
422
|
+
# returns:
|
423
|
+
# TrueClass or FalseClass, Returns true if the incoming request is an authenticated hardbounce post.
|
424
|
+
def receive_hardbounce_post(params, request)
|
425
|
+
if request.post?
|
426
|
+
[:action, :email, :sig].each { |key| return false unless params.has_key?(key) }
|
427
|
+
|
428
|
+
return false unless params[:action] == 'hardbounce'
|
410
429
|
|
411
430
|
sig = params.delete(:sig)
|
412
431
|
return false unless sig == get_signature_hash(params, @secret)
|
@@ -530,6 +549,7 @@ module Sailthru
|
|
530
549
|
# date, String
|
531
550
|
# tags, Array or Comma separated string
|
532
551
|
# vars, Hash
|
552
|
+
# options, Hash
|
533
553
|
#
|
534
554
|
# Push a new piece of content to Sailthru, triggering any applicable alerts.
|
535
555
|
# http://docs.sailthru.com/api/content
|
@@ -716,6 +736,76 @@ module Sailthru
|
|
716
736
|
api_post(:user, data)
|
717
737
|
end
|
718
738
|
|
739
|
+
# params
|
740
|
+
# Get an existing trigger
|
741
|
+
def get_triggers()
|
742
|
+
api_get(:trigger, {})
|
743
|
+
end
|
744
|
+
|
745
|
+
# params
|
746
|
+
# template, String
|
747
|
+
# trigger_id, String
|
748
|
+
# Get an existing trigger
|
749
|
+
def get_trigger_by_template(template, trigger_id = nil)
|
750
|
+
data = {}
|
751
|
+
data['template'] = template
|
752
|
+
if trigger_id != nil then data['trigger_id'] = trigger_id end
|
753
|
+
api_get(:trigger, data)
|
754
|
+
end
|
755
|
+
|
756
|
+
# params
|
757
|
+
# event, String
|
758
|
+
# Get an existing trigger
|
759
|
+
def get_trigger_by_event(event)
|
760
|
+
data = {}
|
761
|
+
data['event'] = event
|
762
|
+
api_get(:trigger, data)
|
763
|
+
end
|
764
|
+
|
765
|
+
# params
|
766
|
+
# template, String
|
767
|
+
# time, String
|
768
|
+
# time_unit, String
|
769
|
+
# event, String
|
770
|
+
# zephyr, String
|
771
|
+
# Create or update a trigger
|
772
|
+
def post_template_trigger(template, time, time_unit, event, zephyr)
|
773
|
+
data = {}
|
774
|
+
data['template'] = template
|
775
|
+
data['time'] = time
|
776
|
+
data['time_unit'] = time_unit
|
777
|
+
data['event'] = event
|
778
|
+
data['zephyr'] = zephyr
|
779
|
+
api_post(:trigger, data)
|
780
|
+
end
|
781
|
+
|
782
|
+
# params
|
783
|
+
# template, String
|
784
|
+
# time, String
|
785
|
+
# time_unit, String
|
786
|
+
# zephyr, String
|
787
|
+
# Create or update a trigger
|
788
|
+
def post_event_trigger(event, time, time_unit, zephyr)
|
789
|
+
data = {}
|
790
|
+
data['time'] = time
|
791
|
+
data['time_unit'] = time_unit
|
792
|
+
data['event'] = event
|
793
|
+
data['zephyr'] = zephyr
|
794
|
+
api_post(:trigger, data)
|
795
|
+
end
|
796
|
+
|
797
|
+
# params
|
798
|
+
# id, String
|
799
|
+
# event, String
|
800
|
+
# options, Hash (Can contain vars, Hash and/or key)
|
801
|
+
# Notify Sailthru of an Event
|
802
|
+
def post_event(id, event, options = {})
|
803
|
+
data = options
|
804
|
+
data['id'] = id
|
805
|
+
data['event'] = event
|
806
|
+
api_post(:event, data)
|
807
|
+
end
|
808
|
+
|
719
809
|
# Perform API GET request
|
720
810
|
def api_get(action, data)
|
721
811
|
api_request(action, data, 'GET')
|
@@ -841,7 +931,7 @@ module Sailthru
|
|
841
931
|
}
|
842
932
|
|
843
933
|
rescue Exception => e
|
844
|
-
raise SailthruClientException.new("Unable to open stream: #{_uri}\n
|
934
|
+
raise SailthruClientException.new(["Unable to open stream: #{_uri}", e.inspect, e.backtrace].join("\n"));
|
845
935
|
end
|
846
936
|
|
847
937
|
if response.body
|
metadata
CHANGED
@@ -1,15 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sailthru-client-notest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Prajwal Tuladhar
|
9
|
+
- Dennis Yu
|
9
10
|
autorequire:
|
10
11
|
bindir: bin
|
11
12
|
cert_chain: []
|
12
|
-
date: 2013-
|
13
|
+
date: 2013-09-06 00:00:00.000000000 Z
|
13
14
|
dependencies:
|
14
15
|
- !ruby/object:Gem::Dependency
|
15
16
|
name: json
|
@@ -44,7 +45,7 @@ dependencies:
|
|
44
45
|
- !ruby/object:Gem::Version
|
45
46
|
version: '0'
|
46
47
|
description:
|
47
|
-
email:
|
48
|
+
email: praj@sailthru.com
|
48
49
|
executables: []
|
49
50
|
extensions: []
|
50
51
|
extra_rdoc_files:
|