fuelsdk_json_bump 0.0.5
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 +7 -0
- data/.gitignore +26 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +91 -0
- data/Guardfile +8 -0
- data/LICENSE.md +13 -0
- data/README.md +127 -0
- data/Rakefile +1 -0
- data/fuelsdk.gemspec +30 -0
- data/lib/fuelsdk.rb +74 -0
- data/lib/fuelsdk/client.rb +282 -0
- data/lib/fuelsdk/http_request.rb +116 -0
- data/lib/fuelsdk/objects.rb +757 -0
- data/lib/fuelsdk/rest.rb +122 -0
- data/lib/fuelsdk/soap.rb +288 -0
- data/lib/fuelsdk/targeting.rb +58 -0
- data/lib/fuelsdk/utils.rb +47 -0
- data/lib/fuelsdk/version.rb +39 -0
- data/lib/new.rb +1240 -0
- data/samples/sample-AddSubscriberToList.rb +56 -0
- data/samples/sample-CreateAndStartDataExtensionImport.rb +29 -0
- data/samples/sample-CreateAndStartListImport.rb +27 -0
- data/samples/sample-CreateContentAreas.rb +48 -0
- data/samples/sample-CreateDataExtensions.rb +54 -0
- data/samples/sample-CreateProfileAttributes.rb +48 -0
- data/samples/sample-SendEmailToDataExtension.rb +23 -0
- data/samples/sample-SendEmailToList.rb +23 -0
- data/samples/sample-SendTriggeredSends.rb +30 -0
- data/samples/sample-bounceevent.rb +70 -0
- data/samples/sample-campaign.rb +211 -0
- data/samples/sample-clickevent.rb +71 -0
- data/samples/sample-contentarea.rb +122 -0
- data/samples/sample-dataextension.rb +209 -0
- data/samples/sample-directverb.rb +55 -0
- data/samples/sample-email.rb +122 -0
- data/samples/sample-email.senddefinition.rb +134 -0
- data/samples/sample-folder.rb +143 -0
- data/samples/sample-import.rb +104 -0
- data/samples/sample-list.rb +105 -0
- data/samples/sample-list.subscriber.rb +97 -0
- data/samples/sample-openevent.rb +70 -0
- data/samples/sample-profileattribute.rb +57 -0
- data/samples/sample-sentevent.rb +70 -0
- data/samples/sample-subscriber.rb +136 -0
- data/samples/sample-triggeredsend.rb +130 -0
- data/samples/sample-unsubevent.rb +72 -0
- data/samples/sample_helper.rb.template +8 -0
- data/spec/client_spec.rb +200 -0
- data/spec/helper_funcs_spec.rb +11 -0
- data/spec/http_request_spec.rb +36 -0
- data/spec/objects_helper_spec.rb +32 -0
- data/spec/objects_spec.rb +484 -0
- data/spec/rest_spec.rb +48 -0
- data/spec/soap_spec.rb +140 -0
- data/spec/spec_helper.rb +14 -0
- data/spec/targeting_spec.rb +39 -0
- metadata +250 -0
@@ -0,0 +1,105 @@
|
|
1
|
+
require 'fuelsdk'
|
2
|
+
require_relative 'sample_helper'
|
3
|
+
|
4
|
+
begin
|
5
|
+
stubObj = FuelSDK::Client.new auth
|
6
|
+
|
7
|
+
NewListName = "RubySDKList"
|
8
|
+
|
9
|
+
# Create List
|
10
|
+
p '>>> Create List'
|
11
|
+
postList = FuelSDK::List.new
|
12
|
+
postList.authStub = stubObj
|
13
|
+
postList.props = {"ListName" => NewListName, "Description" => "This list was created with the RubySDK", "Type" => "Private" }
|
14
|
+
#postList.folder_id = 1083760
|
15
|
+
postResponse = postList.post
|
16
|
+
p 'Post Status: ' + postResponse.status.to_s
|
17
|
+
p 'Code: ' + postResponse.code.to_s
|
18
|
+
p 'Message: ' + postResponse.message.to_s
|
19
|
+
p 'Result Count: ' + postResponse.results.length.to_s
|
20
|
+
p 'Results: ' + postResponse.results.inspect
|
21
|
+
raise 'Failure creating list' unless postResponse.success?
|
22
|
+
|
23
|
+
# Make sure the list created correctly before
|
24
|
+
if postResponse.success? then
|
25
|
+
|
26
|
+
newListID = postResponse.results[0][:new_id]
|
27
|
+
|
28
|
+
# Retrieve newly created List by ID
|
29
|
+
p '>>> Retrieve newly created List'
|
30
|
+
getList = FuelSDK::List.new()
|
31
|
+
getList.authStub = stubObj
|
32
|
+
getList.props = ["ID","PartnerKey","CreatedDate","ModifiedDate","Client.ID","Client.PartnerClientKey","ListName","Description","Category","Type","CustomerKey","ListClassification","AutomatedEmail.ID"]
|
33
|
+
getList.filter = {'Property' => 'ID','SimpleOperator' => 'equals','Value' => newListID}
|
34
|
+
getResponse = getList.get
|
35
|
+
p 'Retrieve Status: ' + getResponse.status.to_s
|
36
|
+
p 'Code: ' + getResponse.code.to_s
|
37
|
+
p 'Message: ' + getResponse.message.to_s
|
38
|
+
p 'MoreResults: ' + getResponse.more?.to_s
|
39
|
+
p 'Results Length: ' + getResponse.results.length.to_s
|
40
|
+
p 'Results: ' + getResponse.results.to_s
|
41
|
+
raise 'Failure retrieving list' unless getResponse.success?
|
42
|
+
|
43
|
+
# Update List
|
44
|
+
p '>>> Update List'
|
45
|
+
patchSub = FuelSDK::List.new
|
46
|
+
patchSub.authStub = stubObj
|
47
|
+
patchSub.props = {"ID" => newListID, "Description" => "I updated the description"}
|
48
|
+
patchResponse = patchSub.patch
|
49
|
+
p 'Patch Status: ' + patchResponse.status.to_s
|
50
|
+
p 'Code: ' + patchResponse.code.to_s
|
51
|
+
p 'Message: ' + patchResponse.message.to_s
|
52
|
+
p 'Result Count: ' + patchResponse.results.length.to_s
|
53
|
+
p 'Results: ' + patchResponse.results.inspect
|
54
|
+
raise 'Failure updating list' unless patchResponse.success?
|
55
|
+
raise 'Failure updating list' unless patchResponse.results.first[:object][:description] == "I updated the description"
|
56
|
+
|
57
|
+
# Retrieve List that should have description updated
|
58
|
+
p '>>> Retrieve List that should have description updated '
|
59
|
+
getList = FuelSDK::List.new()
|
60
|
+
getList.authStub = stubObj
|
61
|
+
getList.props = ["ID","PartnerKey","CreatedDate","ModifiedDate","Client.ID","Client.PartnerClientKey","ListName","Description","Category","Type","CustomerKey","ListClassification","AutomatedEmail.ID"]
|
62
|
+
getList.filter = {'Property' => 'ID','SimpleOperator' => 'equals','Value' => newListID}
|
63
|
+
getResponse = getList.get
|
64
|
+
p 'Retrieve Status: ' + getResponse.status.to_s
|
65
|
+
p 'Code: ' + getResponse.code.to_s
|
66
|
+
p 'Message: ' + getResponse.message.to_s
|
67
|
+
p 'MoreResults: ' + getResponse.more?.to_s
|
68
|
+
p 'Results Length: ' + getResponse.results.length.to_s
|
69
|
+
p 'Results: ' + getResponse.results.to_s
|
70
|
+
raise 'Failure retrieving list' unless getResponse.success?
|
71
|
+
|
72
|
+
# Delete List
|
73
|
+
p '>>> Delete List'
|
74
|
+
deleteSub = FuelSDK::List.new()
|
75
|
+
deleteSub.authStub = stubObj
|
76
|
+
deleteSub.props = {"ID" => newListID}
|
77
|
+
deleteResponse = deleteSub.delete
|
78
|
+
p 'Delete Status: ' + deleteResponse.status.to_s
|
79
|
+
p 'Code: ' + deleteResponse.code.to_s
|
80
|
+
p 'Message: ' + deleteResponse.message.to_s
|
81
|
+
p 'Results Length: ' + deleteResponse.results.length.to_s
|
82
|
+
p 'Results: ' + deleteResponse.results.to_s
|
83
|
+
raise 'Failure deleting list' unless deleteResponse.success?
|
84
|
+
|
85
|
+
# Retrieve List to confirm deletion
|
86
|
+
p '>>> Retrieve List to confirm deletion'
|
87
|
+
getList = FuelSDK::List.new()
|
88
|
+
getList.authStub = stubObj
|
89
|
+
getList.props = ["ID","PartnerKey","CreatedDate","ModifiedDate","Client.ID","Client.PartnerClientKey","ListName","Description","Category","Type","CustomerKey","ListClassification","AutomatedEmail.ID"]
|
90
|
+
getList.filter = {'Property' => 'ID','SimpleOperator' => 'equals','Value' => newListID}
|
91
|
+
getResponse = getList.get
|
92
|
+
p 'Retrieve Status: ' + getResponse.status.to_s
|
93
|
+
p 'Code: ' + getResponse.code.to_s
|
94
|
+
p 'Message: ' + getResponse.message.to_s
|
95
|
+
p 'MoreResults: ' + getResponse.more?.to_s
|
96
|
+
p 'Results Length: ' + getResponse.results.length.to_s
|
97
|
+
p 'Results: ' + getResponse.results.to_s
|
98
|
+
raise 'Failure retrieving list' unless getResponse.success?
|
99
|
+
end
|
100
|
+
|
101
|
+
rescue => e
|
102
|
+
p "Caught exception: #{e.message}"
|
103
|
+
p e.backtrace
|
104
|
+
end
|
105
|
+
|
@@ -0,0 +1,97 @@
|
|
1
|
+
require 'fuelsdk'
|
2
|
+
require_relative 'sample_helper'
|
3
|
+
|
4
|
+
begin
|
5
|
+
stubObj = FuelSDK::Client.new auth
|
6
|
+
|
7
|
+
# NOTE: These examples only work in accounts where the SubscriberKey functionality is not enabled
|
8
|
+
# SubscriberKey will need to be included in the props if that feature is enabled
|
9
|
+
|
10
|
+
NewListName = "RubySDKListSubscriber"
|
11
|
+
SubscriberTestEmail = "RubySDKListSubscriber@bh.exacttarget.com"
|
12
|
+
|
13
|
+
# Create List
|
14
|
+
p '>>> Create List'
|
15
|
+
postList = FuelSDK::List.new
|
16
|
+
postList.authStub = stubObj
|
17
|
+
postList.props = {"ListName" => NewListName, "Description" => "This list was created with the RubySDK", "Type" => "Private" }
|
18
|
+
postResponse = postList.post
|
19
|
+
p 'Post Status: ' + postResponse.status.to_s
|
20
|
+
p 'Code: ' + postResponse.code.to_s
|
21
|
+
p 'Message: ' + postResponse.message.to_s
|
22
|
+
p 'Result Count: ' + postResponse.results.length.to_s
|
23
|
+
p 'Results: ' + postResponse.results.inspect
|
24
|
+
|
25
|
+
raise 'Failure posting list' unless postResponse.success?
|
26
|
+
|
27
|
+
|
28
|
+
# Make sure the list created correctly before
|
29
|
+
if postResponse.success? then
|
30
|
+
|
31
|
+
newListID = postResponse.results[0][:new_id]
|
32
|
+
|
33
|
+
# Create Subscriber On List
|
34
|
+
p '>>> Create Subscriber On List'
|
35
|
+
postSub = FuelSDK::Subscriber.new
|
36
|
+
postSub.authStub = stubObj
|
37
|
+
postSub.props = {"EmailAddress" => SubscriberTestEmail, "Lists" =>[{"ID" => newListID}]}
|
38
|
+
postResponse = postSub.post
|
39
|
+
p 'Post Status: ' + postResponse.status.to_s
|
40
|
+
p 'Code: ' + postResponse.code.to_s
|
41
|
+
p 'Message: ' + postResponse.message.to_s
|
42
|
+
p 'Result Count: ' + postResponse.results.length.to_s
|
43
|
+
p 'Results: ' + postResponse.results.inspect
|
44
|
+
|
45
|
+
if postResponse.success? == false then
|
46
|
+
# If the subscriber already exists in the account then we need to do an update.
|
47
|
+
# Update Subscriber On List
|
48
|
+
if postResponse.results[0][:error_code] == "12014" then
|
49
|
+
# Update Subscriber to add to List
|
50
|
+
p '>>> Update Subscriber to add to List'
|
51
|
+
patchSub = FuelSDK::Subscriber.new
|
52
|
+
patchSub.authStub = stubObj
|
53
|
+
patchSub.props = {"EmailAddress" => SubscriberTestEmail, "Lists" =>[{"ID" => newListID}]}
|
54
|
+
patchResponse = patchSub.patch
|
55
|
+
p 'Patch Status: ' + patchResponse.status.to_s
|
56
|
+
p 'Code: ' + patchResponse.code.to_s
|
57
|
+
p 'Message: ' + patchResponse.message.to_s
|
58
|
+
p 'Result Count: ' + patchResponse.results.length.to_s
|
59
|
+
p 'Results: ' + patchResponse.results.inspect
|
60
|
+
raise 'Failure updating subscriber' unless patchResponse.success?
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
|
65
|
+
# Retrieve all Subscribers on the List
|
66
|
+
p '>>> Retrieve all Subscribers on the List'
|
67
|
+
getListSubs = FuelSDK::List::Subscriber.new
|
68
|
+
getListSubs.authStub = stubObj
|
69
|
+
getListSubs.props = ["ObjectID","SubscriberKey","CreatedDate","Client.ID","Client.PartnerClientKey","ListID","Status"]
|
70
|
+
getListSubs.filter = {'Property' => 'ListID','SimpleOperator' => 'equals','Value' => newListID}
|
71
|
+
getResponse = getListSubs.get
|
72
|
+
p 'Retrieve Status: ' + getResponse.status.to_s
|
73
|
+
p 'Code: ' + getResponse.code.to_s
|
74
|
+
p 'Message: ' + getResponse.message.to_s
|
75
|
+
p 'MoreResults: ' + getResponse.more?.to_s
|
76
|
+
p 'Results Length: ' + getResponse.results.length.to_s
|
77
|
+
p 'Results: ' + getResponse.results.to_s
|
78
|
+
raise 'Failure retrieving subscirbers on list' unless getResponse.success?
|
79
|
+
|
80
|
+
# Delete List
|
81
|
+
p '>>> Delete List'
|
82
|
+
deleteSub = FuelSDK::List.new()
|
83
|
+
deleteSub.authStub = stubObj
|
84
|
+
deleteSub.props = {"ID" => newListID}
|
85
|
+
deleteResponse = deleteSub.delete
|
86
|
+
p 'Delete Status: ' + deleteResponse.status.to_s
|
87
|
+
p 'Code: ' + deleteResponse.code.to_s
|
88
|
+
p 'Message: ' + deleteResponse.message.to_s
|
89
|
+
p 'Results Length: ' + deleteResponse.results.length.to_s
|
90
|
+
p 'Results: ' + deleteResponse.results.to_s
|
91
|
+
raise 'Failure deleting list' unless deleteResponse.success?
|
92
|
+
end
|
93
|
+
rescue => e
|
94
|
+
p "Caught exception: #{e.message}"
|
95
|
+
p e.backtrace
|
96
|
+
end
|
97
|
+
|
@@ -0,0 +1,70 @@
|
|
1
|
+
require 'fuelsdk'
|
2
|
+
require_relative 'sample_helper'
|
3
|
+
|
4
|
+
begin
|
5
|
+
stubObj = FuelSDK::Client.new auth
|
6
|
+
|
7
|
+
## Modify the date below to reduce the number of results returned from the request
|
8
|
+
## Setting this too far in the past could result in a very large response size
|
9
|
+
retrieveDate = '2013-01-15T13:00:00.000'
|
10
|
+
|
11
|
+
p '>>> Retrieve Filtered OpenEvents with GetMoreResults'
|
12
|
+
getOpenEvent = FuelSDK::OpenEvent.new()
|
13
|
+
getOpenEvent.authStub = stubObj
|
14
|
+
getOpenEvent.props = ["SendID","SubscriberKey","EventDate","Client.ID","EventType","BatchID","TriggeredSendDefinitionObjectID","PartnerKey"]
|
15
|
+
getOpenEvent.filter = {'Property' => 'EventDate','SimpleOperator' => 'greaterThan','DateValue' => retrieveDate}
|
16
|
+
getResponse = getOpenEvent.get
|
17
|
+
p 'Retrieve Status: ' + getResponse.status.to_s
|
18
|
+
p 'Code: ' + getResponse.code.to_s
|
19
|
+
p 'Message: ' + getResponse.message.to_s
|
20
|
+
p 'MoreResults: ' + getResponse.more?.to_s
|
21
|
+
p 'RequestID: ' + getResponse.request_id.to_s
|
22
|
+
p 'Results Length: ' + getResponse.results.length.to_s
|
23
|
+
# Since this could potentially return a large number of results, we do not want to print the results
|
24
|
+
#p 'Results: ' + getResponse.results.to_s
|
25
|
+
raise 'Failure retrieving open events' unless getResponse.success?
|
26
|
+
|
27
|
+
while getResponse.more? do
|
28
|
+
p '>>> Continue Retrieve Filtered OpenEvents with GetMoreResults'
|
29
|
+
getResponse = getOpenEvent.contine
|
30
|
+
p 'Retrieve Status: ' + getResponse.status.to_s
|
31
|
+
p 'Code: ' + getResponse.code.to_s
|
32
|
+
p 'Message: ' + getResponse.message.to_s
|
33
|
+
p 'MoreResults: ' + getResponse.more?.to_s
|
34
|
+
p 'RequestID: ' + getResponse.request_id.to_s
|
35
|
+
p 'Results Length: ' + getResponse.results.length.to_s
|
36
|
+
end
|
37
|
+
|
38
|
+
# The following request could potentially bring back large amounts of data if run against a production account
|
39
|
+
=begin
|
40
|
+
p '>>> Retrieve All OpenEvents with GetMoreResults'
|
41
|
+
getOpenEvent = FuelSDK::OpenEvent.new()
|
42
|
+
getOpenEvent.authStub = stubObj
|
43
|
+
getOpenEvent.props = ["SendID","SubscriberKey","EventDate","Client.ID","EventType","BatchID","TriggeredSendDefinitionObjectID","PartnerKey"]
|
44
|
+
getResponse = getOpenEvent.get
|
45
|
+
p 'Retrieve Status: ' + getResponse.status.to_s
|
46
|
+
p 'Code: ' + getResponse.code.to_s
|
47
|
+
p 'Message: ' + getResponse.message.to_s
|
48
|
+
p 'MoreResults: ' + getResponse.more?.to_s
|
49
|
+
p 'RequestID: ' + getResponse.request_id.to_s
|
50
|
+
p 'Results Length: ' + getResponse.results.length.to_s
|
51
|
+
# Since this could potentially return a large number of results, we do not want to print the results
|
52
|
+
#p 'Results: ' + getResponse.results.to_s
|
53
|
+
|
54
|
+
while getResponse.more? do
|
55
|
+
p '>>> Continue Retrieve All OpenEvents with GetMoreResults'
|
56
|
+
getResponse = getOpenEvent.contine
|
57
|
+
p 'Retrieve Status: ' + getResponse.status.to_s
|
58
|
+
p 'Code: ' + getResponse.code.to_s
|
59
|
+
p 'Message: ' + getResponse.message.to_s
|
60
|
+
p 'MoreResults: ' + getResponse.more?.to_s
|
61
|
+
p 'RequestID: ' + getResponse.request_id.to_s
|
62
|
+
p 'Results Length: ' + getResponse.results.length.to_s
|
63
|
+
end
|
64
|
+
=end
|
65
|
+
|
66
|
+
rescue => e
|
67
|
+
p "Caught exception: #{e.message}"
|
68
|
+
p e.backtrace
|
69
|
+
end
|
70
|
+
|
@@ -0,0 +1,57 @@
|
|
1
|
+
require 'fuelsdk'
|
2
|
+
require_relative 'sample_helper'
|
3
|
+
|
4
|
+
begin
|
5
|
+
stubObj = FuelSDK::Client.new auth
|
6
|
+
|
7
|
+
NameOfAttribute = 'RubySDKTesting'
|
8
|
+
|
9
|
+
p '>>> Retrieve Profile Attribute'
|
10
|
+
getProfileAttribute = ET_ProfileAttribute.new
|
11
|
+
getProfileAttribute.authStub = stubObj
|
12
|
+
getResponse = getProfileAttribute.get
|
13
|
+
p 'Get Status: ' + getResponse.status.to_s
|
14
|
+
p 'Code: ' + getResponse.code.to_s
|
15
|
+
p 'Message: ' + getResponse.message.to_s
|
16
|
+
p 'Result Count: ' + getResponse.results.length.to_s
|
17
|
+
#p 'Results: ' + getResponse.results.inspect
|
18
|
+
raise 'Failure getting Profile Attribute' unless getResponse.success?
|
19
|
+
|
20
|
+
p '>>> Create ProfileAttribute'
|
21
|
+
postProfileAttribute = ET_ProfileAttribute.new
|
22
|
+
postProfileAttribute.authStub = stubObj
|
23
|
+
postProfileAttribute.props = {"Name" => NameOfAttribute, "PropertyType"=>"string", "Description"=>"New Attribute from the SDK", "IsRequired"=>"false", "IsViewable"=>"false", "IsEditable"=>"true", "IsSendTime"=>"false"}
|
24
|
+
postResponse = postProfileAttribute.post
|
25
|
+
p 'Post Status: ' + postResponse.status.to_s
|
26
|
+
p 'Code: ' + postResponse.code.to_s
|
27
|
+
p 'Message: ' + postResponse.message.to_s
|
28
|
+
p 'Result Count: ' + postResponse.results.length.to_s
|
29
|
+
p 'Results: ' + postResponse.results.inspect
|
30
|
+
|
31
|
+
p '>>> Update ProfileAttribute'
|
32
|
+
patchProfileAttribute = ET_ProfileAttribute.new
|
33
|
+
patchProfileAttribute.authStub = stubObj
|
34
|
+
patchProfileAttribute.props = {"Name" => NameOfAttribute, "PropertyType"=>"string"}
|
35
|
+
patchResponse = patchProfileAttribute.patch
|
36
|
+
p 'Patch Status: ' + patchResponse.status.to_s
|
37
|
+
p 'Code: ' + patchResponse.code.to_s
|
38
|
+
p 'Message: ' + patchResponse.message.to_s
|
39
|
+
p 'Result Count: ' + patchResponse.results.length.to_s
|
40
|
+
p 'Results: ' + patchResponse.results.inspect
|
41
|
+
|
42
|
+
p '>>> Delete ProfileAttribute'
|
43
|
+
deleteProfileAttribute = ET_ProfileAttribute.new
|
44
|
+
deleteProfileAttribute.authStub = stubObj
|
45
|
+
deleteProfileAttribute.props = {"Name" => NameOfAttribute}
|
46
|
+
deleteResponse = deleteProfileAttribute.delete
|
47
|
+
p 'Delete Status: ' + deleteResponse.status.to_s
|
48
|
+
p 'Code: ' + deleteResponse.code.to_s
|
49
|
+
p 'Message: ' + deleteResponse.message.to_s
|
50
|
+
p 'Result Count: ' + deleteResponse.results.length.to_s
|
51
|
+
p 'Results: ' + deleteResponse.results.inspect
|
52
|
+
|
53
|
+
rescue => e
|
54
|
+
p "Caught exception: #{e.message}"
|
55
|
+
p e.backtrace
|
56
|
+
end
|
57
|
+
|
@@ -0,0 +1,70 @@
|
|
1
|
+
require 'fuelsdk'
|
2
|
+
require_relative 'sample_helper'
|
3
|
+
|
4
|
+
begin
|
5
|
+
stubObj = FuelSDK::Client.new auth
|
6
|
+
|
7
|
+
## Modify the date below to reduce the number of results returned from the request
|
8
|
+
## Setting this too far in the past could result in a very large response size
|
9
|
+
retrieveDate = '2013-01-15T13:00:00.000'
|
10
|
+
|
11
|
+
p '>>> Retrieve Filtered SentEvents with GetMoreResults'
|
12
|
+
getSentEvent = FuelSDK::SentEvent.new()
|
13
|
+
getSentEvent.authStub = stubObj
|
14
|
+
getSentEvent.props = ["SendID","SubscriberKey","EventDate","Client.ID","EventType","BatchID","TriggeredSendDefinitionObjectID","ListID","PartnerKey","SubscriberID"]
|
15
|
+
getSentEvent.filter = {'Property' => 'EventDate','SimpleOperator' => 'greaterThan','DateValue' => retrieveDate}
|
16
|
+
getResponse = getSentEvent.get
|
17
|
+
p 'Retrieve Status: ' + getResponse.status.to_s
|
18
|
+
p 'Code: ' + getResponse.code.to_s
|
19
|
+
p 'Message: ' + getResponse.message.to_s
|
20
|
+
p 'MoreResults: ' + getResponse.more?.to_s
|
21
|
+
p 'RequestID: ' + getResponse.request_id.to_s
|
22
|
+
p 'Results Length: ' + getResponse.results.length.to_s
|
23
|
+
# Since this could potentially return a large number of results, we do not want to print the results
|
24
|
+
#p 'Results: ' + getResponse.results.to_s
|
25
|
+
raise 'Failure retrieving sent events' unless getResponse.success?
|
26
|
+
|
27
|
+
while getResponse.more? do
|
28
|
+
p '>>> Continue Retrieve Filtered SentEvents with GetMoreResults'
|
29
|
+
getResponse = getSentEvent.continue
|
30
|
+
p 'Retrieve Status: ' + getResponse.status.to_s
|
31
|
+
p 'Code: ' + getResponse.code.to_s
|
32
|
+
p 'Message: ' + getResponse.message.to_s
|
33
|
+
p 'MoreResults: ' + getResponse.more?.to_s
|
34
|
+
p 'RequestID: ' + getResponse.request_id.to_s
|
35
|
+
p 'Results Length: ' + getResponse.results.length.to_s
|
36
|
+
end
|
37
|
+
|
38
|
+
# The following request could potentially bring back large amounts of data if run against a production account
|
39
|
+
=begin
|
40
|
+
p '>>> Retrieve All SentEvents with GetMoreResults'
|
41
|
+
getSentEvent = FuelSDK::SentEvent.new()
|
42
|
+
getSentEvent.authStub = stubObj
|
43
|
+
getSentEvent.props = ["SendID","SubscriberKey","EventDate","Client.ID","EventType","BatchID","TriggeredSendDefinitionObjectID","ListID","PartnerKey","SubscriberID"]
|
44
|
+
getResponse = getSentEvent.get
|
45
|
+
p 'Retrieve Status: ' + getResponse.status.to_s
|
46
|
+
p 'Code: ' + getResponse.code.to_s
|
47
|
+
p 'Message: ' + getResponse.message.to_s
|
48
|
+
p 'MoreResults: ' + getResponse.more?.to_s
|
49
|
+
p 'RequestID: ' + getResponse.request_id.to_s
|
50
|
+
p 'Results Length: ' + getResponse.results.length.to_s
|
51
|
+
# Since this could potentially return a large number of results, we do not want to print the results
|
52
|
+
#p 'Results: ' + getResponse.results.to_s
|
53
|
+
|
54
|
+
while getResponse.more? do
|
55
|
+
p '>>> Continue Retrieve All SentEvents with GetMoreResults'
|
56
|
+
getResponse = getSentEvent.continue
|
57
|
+
p 'Retrieve Status: ' + getResponse.status.to_s
|
58
|
+
p 'Code: ' + getResponse.code.to_s
|
59
|
+
p 'Message: ' + getResponse.message.to_s
|
60
|
+
p 'MoreResults: ' + getResponse.more?.to_s
|
61
|
+
p 'RequestID: ' + getResponse.request_id.to_s
|
62
|
+
p 'Results Length: ' + getResponse.results.length.to_s
|
63
|
+
end
|
64
|
+
=end
|
65
|
+
|
66
|
+
rescue => e
|
67
|
+
p "Caught exception: #{e.message}"
|
68
|
+
p e.backtrace
|
69
|
+
end
|
70
|
+
|
@@ -0,0 +1,136 @@
|
|
1
|
+
require 'fuelsdk'
|
2
|
+
require_relative 'sample_helper' # contains auth with credentials
|
3
|
+
|
4
|
+
begin
|
5
|
+
stubObj = FuelSDK::Client.new auth
|
6
|
+
|
7
|
+
# NOTE: These examples only work in accounts where the SubscriberKey functionality is not enabled
|
8
|
+
# SubscriberKey will need to be included in the props if that feature is enabled
|
9
|
+
|
10
|
+
SubscriberTestEmail = "RubySDKExample@jb.kevy.com"
|
11
|
+
|
12
|
+
# Create Subscriber
|
13
|
+
p '>>> Create Subscriber'
|
14
|
+
postSub = FuelSDK::Subscriber.new
|
15
|
+
postSub.authStub = stubObj
|
16
|
+
postSub.props = {"EmailAddress" => SubscriberTestEmail}
|
17
|
+
p '>>> Posting'
|
18
|
+
postResponse = postSub.post
|
19
|
+
p "Post Status: #{postResponse.success? ? 'Success' : 'Failure'}"
|
20
|
+
p 'Code: ' + postResponse.code.to_s
|
21
|
+
p 'Message: ' + postResponse.message.to_s
|
22
|
+
p 'Result Count: ' + postResponse.results.length.to_s
|
23
|
+
p 'Results: ' + postResponse.results.inspect
|
24
|
+
|
25
|
+
raise 'Failure creating subscriber' unless postResponse.success?
|
26
|
+
|
27
|
+
# Retrieve newly created Subscriber
|
28
|
+
p '>>> Retrieve newly created Subscriber'
|
29
|
+
getSub = FuelSDK::Subscriber.new()
|
30
|
+
getSub.authStub = stubObj
|
31
|
+
getSub.props = ["SubscriberKey", "EmailAddress", "Status"]
|
32
|
+
getSub.filter = {'Property' => 'SubscriberKey', 'SimpleOperator' => 'equals', 'Value' => SubscriberTestEmail}
|
33
|
+
getResponse = getSub.get
|
34
|
+
p "Retrieve Status: #{getResponse.success? ? 'Success' : 'Failure'}"
|
35
|
+
p 'Code: ' + getResponse.code.to_s
|
36
|
+
p 'Message: ' + getResponse.message.to_s
|
37
|
+
p 'MoreResults: ' + getResponse.more?.to_s
|
38
|
+
p 'Results Length: ' + getResponse.results.length.to_s
|
39
|
+
p 'Results: ' + getResponse.results.to_s
|
40
|
+
|
41
|
+
raise 'Failure retrieving subscriber' unless getResponse.success?
|
42
|
+
|
43
|
+
# Update Subscriber
|
44
|
+
p '>>> Update Subscriber'
|
45
|
+
patchSub = FuelSDK::Subscriber.new
|
46
|
+
patchSub.authStub = stubObj
|
47
|
+
patchSub.props = {"EmailAddress" => SubscriberTestEmail, "Status" => "Unsubscribed"}
|
48
|
+
patchResponse = patchSub.patch
|
49
|
+
p 'Patch Status: ' + patchResponse.status.to_s
|
50
|
+
p 'Code: ' + patchResponse.code.to_s
|
51
|
+
p 'Message: ' + patchResponse.message.to_s
|
52
|
+
p 'Result Count: ' + patchResponse.results.length.to_s
|
53
|
+
p 'Results: ' + patchResponse.results.inspect
|
54
|
+
|
55
|
+
raise 'Failure updating subscriber' unless patchResponse.success?
|
56
|
+
|
57
|
+
# Retrieve Subscriber that should have status unsubscribed now
|
58
|
+
p '>>> Retrieve Subscriber that should have status unsubscribed now'
|
59
|
+
getSub = FuelSDK::Subscriber.new()
|
60
|
+
getSub.authStub = stubObj
|
61
|
+
getSub.props = ["SubscriberKey", "EmailAddress", "Status"]
|
62
|
+
getSub.filter = {'Property' => 'SubscriberKey','SimpleOperator' => 'equals','Value' => SubscriberTestEmail};
|
63
|
+
getResponse = getSub.get
|
64
|
+
p 'Retrieve Status: ' + getResponse.status.to_s
|
65
|
+
p 'Code: ' + getResponse.code.to_s
|
66
|
+
p 'Message: ' + getResponse.message.to_s
|
67
|
+
p 'MoreResults: ' + getResponse.more?.to_s
|
68
|
+
p 'Results Length: ' + getResponse.results.length.to_s
|
69
|
+
p 'Results: ' + getResponse.results.to_s
|
70
|
+
|
71
|
+
raise 'Failure retrieving subscriber' unless getResponse.success?
|
72
|
+
|
73
|
+
# Delete Subscriber
|
74
|
+
p '>>> Delete Subscriber'
|
75
|
+
deleteSub = FuelSDK::Subscriber.new()
|
76
|
+
deleteSub.authStub = stubObj
|
77
|
+
deleteSub.props = {"EmailAddress" => SubscriberTestEmail}
|
78
|
+
deleteResponse = deleteSub.delete
|
79
|
+
p 'Delete Status: ' + deleteResponse.status.to_s
|
80
|
+
p 'Code: ' + deleteResponse.code.to_s
|
81
|
+
p 'Message: ' + deleteResponse.message.to_s
|
82
|
+
p 'Results Length: ' + deleteResponse.results.length.to_s
|
83
|
+
p 'Results: ' + deleteResponse.results.to_s
|
84
|
+
|
85
|
+
raise 'Failure deleting subscriber' unless deleteResponse.success?
|
86
|
+
|
87
|
+
# Retrieve Subscriber to confirm deletion
|
88
|
+
p '>>> Retrieve Subscriber to confirm deletion'
|
89
|
+
getSub = FuelSDK::Subscriber.new()
|
90
|
+
getSub.authStub = stubObj
|
91
|
+
getSub.props = ["SubscriberKey", "EmailAddress", "Status"]
|
92
|
+
getSub.filter = {'Property' => 'SubscriberKey','SimpleOperator' => 'equals','Value' => SubscriberTestEmail};
|
93
|
+
getResponse = getSub.get
|
94
|
+
p 'Retrieve Status: ' + getResponse.status.to_s
|
95
|
+
p 'Code: ' + getResponse.code.to_s
|
96
|
+
p 'Message: ' + getResponse.message.to_s
|
97
|
+
p 'MoreResults: ' + getResponse.more?.to_s
|
98
|
+
p 'Results Length: ' + getResponse.results.length.to_s
|
99
|
+
p 'Results: ' + getResponse.results.to_s
|
100
|
+
|
101
|
+
raise 'Failure retrieving subscriber' unless getResponse.success?
|
102
|
+
|
103
|
+
=begin
|
104
|
+
# Do not run the "Retrieve All Subscribers" request for testing if you have more than 100,000 records in your account as it will take a long time to complete.
|
105
|
+
|
106
|
+
# Retrieve All Subcribers with GetMoreResults
|
107
|
+
p '>>> Retrieve All Subcribers with GetMoreResults'
|
108
|
+
getSub = FuelSDK::Subscriber.new()
|
109
|
+
getSub.authStub = stubObj
|
110
|
+
getSub.props = ["SubscriberKey", "EmailAddress", "Status"]
|
111
|
+
getResponse = getSub.get
|
112
|
+
p 'Retrieve Status: ' + getResponse.status.to_s
|
113
|
+
p 'Code: ' + getResponse.code.to_s
|
114
|
+
p 'Message: ' + getResponse.message.to_s
|
115
|
+
p 'MoreResults: ' + getResponse.more?.to_s
|
116
|
+
p 'RequestID: ' + getResponse.request_id.to_s
|
117
|
+
p 'Results Length: ' + getResponse.results.length.to_s
|
118
|
+
#p 'Results: ' + getResponse.results.to_s
|
119
|
+
|
120
|
+
while getResponse.more? do
|
121
|
+
p '>>> Continue Retrieve All Subcribers with GetMoreResults'
|
122
|
+
getResponse.continue
|
123
|
+
p 'Retrieve Status: ' + getResponse.status.to_s
|
124
|
+
p 'Code: ' + getResponse.code.to_s
|
125
|
+
p 'Message: ' + getResponse.message.to_s
|
126
|
+
p 'MoreResults: ' + getResponse.more?.to_s
|
127
|
+
p 'RequestID: ' + getResponse.request_id.to_s
|
128
|
+
p 'Results Length: ' + getResponse.results.length.to_s
|
129
|
+
end
|
130
|
+
=end
|
131
|
+
|
132
|
+
rescue => e
|
133
|
+
p "Caught exception: #{e.message}"
|
134
|
+
p e.backtrace
|
135
|
+
end
|
136
|
+
|