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,122 @@
|
|
1
|
+
require 'fuelsdk'
|
2
|
+
require_relative 'sample_helper'
|
3
|
+
|
4
|
+
begin
|
5
|
+
stubObj = FuelSDK::Client.new auth
|
6
|
+
|
7
|
+
# Retrieve All Email with GetMoreResults
|
8
|
+
p '>>> Retrieve All Email with GetMoreResults'
|
9
|
+
getHTMLBody = FuelSDK::Email.new()
|
10
|
+
getHTMLBody.authStub = stubObj
|
11
|
+
getHTMLBody.props = ["ID","PartnerKey","CreatedDate","ModifiedDate","Client.ID","Name","Folder","CategoryID","HTMLBody","TextBody","Subject","IsActive","IsHTMLPaste","ClonedFromID","Status","EmailType","CharacterSet","HasDynamicSubjectLine","ContentCheckStatus","Client.PartnerClientKey","ContentAreas","CustomerKey"]
|
12
|
+
getResponse = getHTMLBody.get
|
13
|
+
p 'Retrieve Status: ' + getResponse.status.to_s
|
14
|
+
p 'Code: ' + getResponse.code.to_s
|
15
|
+
p 'Message: ' + getResponse.message.to_s
|
16
|
+
p 'MoreResults: ' + getResponse.more?.to_s
|
17
|
+
p 'Results Length: ' + getResponse.results.length.to_s
|
18
|
+
#p 'Results: ' + getResponse.results.to_s
|
19
|
+
raise 'Failure retrieving email' unless getResponse.success?
|
20
|
+
|
21
|
+
while getResponse.more? do
|
22
|
+
p '>>> Continue Retrieve All Email with GetMoreResults'
|
23
|
+
getResponse = getHTMLBody.continue
|
24
|
+
p 'Retrieve Status: ' + getResponse.status.to_s
|
25
|
+
p 'Code: ' + getResponse.code.to_s
|
26
|
+
p 'Message: ' + getResponse.message.to_s
|
27
|
+
p 'MoreResults: ' + getResponse.more?.to_s
|
28
|
+
p 'RequestID: ' + getResponse.request_id.to_s
|
29
|
+
p 'Results Length: ' + getResponse.results.length.to_s
|
30
|
+
end
|
31
|
+
|
32
|
+
NameOfTestEmail = "RubySDKEmail"
|
33
|
+
|
34
|
+
# Create Email
|
35
|
+
p '>>> Create Email'
|
36
|
+
postHTMLBody = FuelSDK::Email.new
|
37
|
+
postHTMLBody.authStub = stubObj
|
38
|
+
postHTMLBody.props = {"CustomerKey" => NameOfTestEmail, "Name"=>NameOfTestEmail, "Subject" => "Created Using the RubySDK", "HTMLBody"=> "<b>Some HTML Goes here</b>"}
|
39
|
+
postResponse = postHTMLBody.post
|
40
|
+
p 'Post Status: ' + postResponse.status.to_s
|
41
|
+
p 'Code: ' + postResponse.code.to_s
|
42
|
+
p 'Message: ' + postResponse.message.to_s
|
43
|
+
p 'Result Count: ' + postResponse.results.length.to_s
|
44
|
+
p 'Results: ' + postResponse.results.inspect
|
45
|
+
raise 'Failure creating email' unless postResponse.success?
|
46
|
+
|
47
|
+
# Retrieve newly created Email
|
48
|
+
p '>>> Retrieve newly created Email'
|
49
|
+
getHTMLBody = FuelSDK::Email.new()
|
50
|
+
getHTMLBody.authStub = stubObj
|
51
|
+
getHTMLBody.props = ["ID","PartnerKey","CreatedDate","ModifiedDate","Client.ID","Name","Folder","CategoryID","HTMLBody","TextBody","Subject","IsActive","IsHTMLPaste","ClonedFromID","Status","EmailType","CharacterSet","HasDynamicSubjectLine","ContentCheckStatus","Client.PartnerClientKey","ContentAreas","CustomerKey"]
|
52
|
+
getHTMLBody.filter = {'Property' => 'CustomerKey','SimpleOperator' => 'equals','Value' => NameOfTestEmail}
|
53
|
+
getResponse = getHTMLBody.get
|
54
|
+
p 'Retrieve Status: ' + getResponse.status.to_s
|
55
|
+
p 'Code: ' + getResponse.code.to_s
|
56
|
+
p 'Message: ' + getResponse.message.to_s
|
57
|
+
p 'MoreResults: ' + getResponse.more?.to_s
|
58
|
+
p 'Results Length: ' + getResponse.results.length.to_s
|
59
|
+
p 'Results: ' + getResponse.results.to_s
|
60
|
+
raise 'Failure retrieving email' unless getResponse.success?
|
61
|
+
|
62
|
+
# Update Email
|
63
|
+
p '>>> Update Email'
|
64
|
+
patchHTMLBody = FuelSDK::Email.new
|
65
|
+
patchHTMLBody.authStub = stubObj
|
66
|
+
patchHTMLBody.props = {"CustomerKey" => NameOfTestEmail, "Name"=>NameOfTestEmail, "HTMLBody"=> "<b>Some HTML HTMLBody Goes here. NOW WITH NEW HTMLBody</b>"}
|
67
|
+
patchResponse = patchHTMLBody.patch
|
68
|
+
p 'Patch Status: ' + patchResponse.status.to_s
|
69
|
+
p 'Code: ' + patchResponse.code.to_s
|
70
|
+
p 'Message: ' + patchResponse.message.to_s
|
71
|
+
p 'Result Count: ' + patchResponse.results.length.to_s
|
72
|
+
p 'Results: ' + patchResponse.results.inspect
|
73
|
+
raise 'Failure updating email' unless patchResponse.success?
|
74
|
+
|
75
|
+
# Retrieve updated Email
|
76
|
+
p '>>> Retrieve updated Email'
|
77
|
+
getHTMLBody = FuelSDK::Email.new()
|
78
|
+
getHTMLBody.authStub = stubObj
|
79
|
+
getHTMLBody.props = ["ID","PartnerKey","CreatedDate","ModifiedDate","Client.ID","Name","Folder","CategoryID","HTMLBody","TextBody","Subject","IsActive","IsHTMLPaste","ClonedFromID","Status","EmailType","CharacterSet","HasDynamicSubjectLine","ContentCheckStatus","Client.PartnerClientKey","ContentAreas","CustomerKey"]
|
80
|
+
getHTMLBody.filter = {'Property' => 'CustomerKey','SimpleOperator' => 'equals','Value' => NameOfTestEmail}
|
81
|
+
getResponse = getHTMLBody.get
|
82
|
+
p 'Retrieve Status: ' + getResponse.status.to_s
|
83
|
+
p 'Code: ' + getResponse.code.to_s
|
84
|
+
p 'Message: ' + getResponse.message.to_s
|
85
|
+
p 'MoreResults: ' + getResponse.more?.to_s
|
86
|
+
p 'Results Length: ' + getResponse.results.length.to_s
|
87
|
+
p 'Results: ' + getResponse.results.to_s
|
88
|
+
raise 'Failure retrieving email' unless getResponse.success?
|
89
|
+
|
90
|
+
# Delete Email
|
91
|
+
p '>>> Delete Email'
|
92
|
+
deleteHTMLBody = FuelSDK::Email.new
|
93
|
+
deleteHTMLBody.authStub = stubObj
|
94
|
+
deleteHTMLBody.props = {"CustomerKey" => NameOfTestEmail, "Name"=>NameOfTestEmail, "HTMLBody"=> "<b>Some HTML HTMLBody Goes here. NOW WITH NEW HTMLBody</b>"}
|
95
|
+
deleteResponse = deleteHTMLBody.delete
|
96
|
+
p 'Delete Status: ' + deleteResponse.status.to_s
|
97
|
+
p 'Code: ' + deleteResponse.code.to_s
|
98
|
+
p 'Message: ' + deleteResponse.message.to_s
|
99
|
+
p 'Result Count: ' + deleteResponse.results.length.to_s
|
100
|
+
p 'Results: ' + deleteResponse.results.inspect
|
101
|
+
raise 'Failure deleteing email' unless deleteResponse.success?
|
102
|
+
|
103
|
+
# Retrieve Email to confirm deletion
|
104
|
+
p '>>> Retrieve Email to confirm deletion'
|
105
|
+
getHTMLBody = FuelSDK::Email.new()
|
106
|
+
getHTMLBody.authStub = stubObj
|
107
|
+
getHTMLBody.props = ["ID","PartnerKey","CreatedDate","ModifiedDate","Client.ID","Name","Folder","CategoryID","HTMLBody","TextBody","Subject","IsActive","IsHTMLPaste","ClonedFromID","Status","EmailType","CharacterSet","HasDynamicSubjectLine","ContentCheckStatus","Client.PartnerClientKey","ContentAreas","CustomerKey"]
|
108
|
+
getHTMLBody.filter = {'Property' => 'CustomerKey','SimpleOperator' => 'equals','Value' => NameOfTestEmail}
|
109
|
+
getResponse = getHTMLBody.get
|
110
|
+
p 'Retrieve Status: ' + getResponse.status.to_s
|
111
|
+
p 'Code: ' + getResponse.code.to_s
|
112
|
+
p 'Message: ' + getResponse.message.to_s
|
113
|
+
p 'MoreResults: ' + getResponse.more?.to_s
|
114
|
+
p 'Results Length: ' + getResponse.results.length.to_s
|
115
|
+
p 'Results: ' + getResponse.results.to_s
|
116
|
+
raise 'Failure retrieving email' unless getResponse.success?
|
117
|
+
|
118
|
+
rescue => e
|
119
|
+
p "Caught exception: #{e.message}"
|
120
|
+
p e.backtrace
|
121
|
+
end
|
122
|
+
|
@@ -0,0 +1,134 @@
|
|
1
|
+
require 'fuelsdk'
|
2
|
+
require_relative 'sample_helper'
|
3
|
+
|
4
|
+
begin
|
5
|
+
stubObj = FuelSDK::Client.new auth
|
6
|
+
|
7
|
+
NewSendDefinitionName = "PHPSDKSendDefinition";
|
8
|
+
SendableDataExtensionCustomerKey = "F6F3871A-D124-499B-BBF5-3EFC0E827A51";
|
9
|
+
EmailIDForSendDefinition = "3113962";
|
10
|
+
ListIDForSendDefinition = "1729515";
|
11
|
+
SendClassificationCustomerKey = "2239";
|
12
|
+
|
13
|
+
# Retrieve All Email::SendDefinition with GetMoreResults
|
14
|
+
p '>>> Retrieve All Email.SendDefinition with GetMoreResults'
|
15
|
+
sendDef = FuelSDK::Email::SendDefinition.new()
|
16
|
+
sendDef.authStub = stubObj
|
17
|
+
sendDef.props = ["Client.ID", "CreatedDate","ModifiedDate","ObjectID","CustomerKey","Name","CategoryID","Description","SendClassification.CustomerKey","SenderProfile.CustomerKey","SenderProfile.FromName","SenderProfile.FromAddress","DeliveryProfile.CustomerKey","DeliveryProfile.SourceAddressType","DeliveryProfile.PrivateIP","DeliveryProfile.DomainType","DeliveryProfile.PrivateDomain","DeliveryProfile.HeaderSalutationSource","DeliveryProfile.FooterSalutationSource","SuppressTracking","IsSendLogging","Email.ID","BccEmail","AutoBccEmail","TestEmailAddr","EmailSubject","DynamicEmailSubject","IsMultipart","IsWrapped","SendLimit","SendWindowOpen","SendWindowClose","DeduplicateByEmail","ExclusionFilter","Additional"]
|
18
|
+
getResponse = sendDef.get
|
19
|
+
p 'Retrieve Status: ' + getResponse.status.to_s
|
20
|
+
p 'Code: ' + getResponse.code.to_s
|
21
|
+
p 'Message: ' + getResponse.message.to_s
|
22
|
+
p 'MoreResults: ' + getResponse.more?.to_s
|
23
|
+
p 'Results Length: ' + getResponse.results.length.to_s
|
24
|
+
#p 'Results: ' + getResponse.results.to_s
|
25
|
+
raise 'Failure retrieving SendDefinition' unless getResponse.success?
|
26
|
+
|
27
|
+
|
28
|
+
while getResponse.more? do
|
29
|
+
p '>>> Continue Retrieve All Email with GetMoreResults'
|
30
|
+
getResponse = getHTMLBody.continue
|
31
|
+
p 'Retrieve Status: ' + getResponse.status.to_s
|
32
|
+
p 'Code: ' + getResponse.code.to_s
|
33
|
+
p 'Message: ' + getResponse.message.to_s
|
34
|
+
p 'MoreResults: ' + getResponse.more?.to_s
|
35
|
+
p 'RequestID: ' + getResponse.request_id.to_s
|
36
|
+
p 'Results Length: ' + getResponse.results.length.to_s
|
37
|
+
end
|
38
|
+
|
39
|
+
p '>>> Create New Email.SendDefinition to DataExtension'
|
40
|
+
postSendDefinition = FuelSDK::Email::SendDefinition.new()
|
41
|
+
postSendDefinition.authStub = stubObj
|
42
|
+
postSendDefinition.props = {}
|
43
|
+
postSendDefinition.props["Name"] = NewSendDefinitionName
|
44
|
+
postSendDefinition.props["CustomerKey"] = NewSendDefinitionName
|
45
|
+
postSendDefinition.props["Description"] = "Created with PHPSDK"
|
46
|
+
postSendDefinition.props["SendClassification"] = {"CustomerKey"=>SendClassificationCustomerKey}
|
47
|
+
postSendDefinition.props["SendDefinitionList"] = {"CustomerKey"=> SendableDataExtensionCustomerKey, "DataSourceTypeID"=>"CustomObject"}
|
48
|
+
postSendDefinition.props["Email"] = {"ID"=>EmailIDForSendDefinition}
|
49
|
+
postResponse = postSendDefinition.post
|
50
|
+
p 'Post Status: ' + postResponse.status.to_s
|
51
|
+
p 'Code: ' + postResponse.code.to_s
|
52
|
+
p 'Message: ' + postResponse.message.to_s
|
53
|
+
p 'MoreResults: ' + postResponse.more?.to_s
|
54
|
+
p 'Results Length: ' + postResponse.results.length.to_s
|
55
|
+
p 'Results: ' + postResponse.results.to_s
|
56
|
+
#raise 'Failure Creating SendDefinition' unless postResponse.success?
|
57
|
+
|
58
|
+
p '>>> Delete SendDefinition to DataExtension'
|
59
|
+
deleteSendDefinition = FuelSDK::Email::SendDefinition.new()
|
60
|
+
deleteSendDefinition.authStub = stubObj
|
61
|
+
deleteSendDefinition.props = {"CustomerKey"=> NewSendDefinitionName}
|
62
|
+
deleteResponse = deleteSendDefinition.delete
|
63
|
+
p 'Delete Status: ' + deleteResponse.status.to_s
|
64
|
+
p 'Code: ' + deleteResponse.code.to_s
|
65
|
+
p 'Message: ' + deleteResponse.message.to_s
|
66
|
+
p 'MoreResults: ' + deleteResponse.more?.to_s
|
67
|
+
p 'Results Length: ' + deleteResponse.results.length.to_s
|
68
|
+
p 'Results: ' + deleteResponse.results.to_s
|
69
|
+
#raise 'Failure Deleting SendDefinition' unless deleteResponse.success?
|
70
|
+
|
71
|
+
|
72
|
+
p '>>> Create New Email.SendDefinition to List'
|
73
|
+
postSendDefinition = FuelSDK::Email::SendDefinition.new()
|
74
|
+
postSendDefinition.authStub = stubObj
|
75
|
+
postSendDefinition.props = {"Name"=>NewSendDefinitionName}
|
76
|
+
postSendDefinition.props["CustomerKey"] = NewSendDefinitionName
|
77
|
+
postSendDefinition.props["Description"] = "Created with PHPSDK"
|
78
|
+
postSendDefinition.props["SendClassification"] = {"CustomerKey"=>SendClassificationCustomerKey}
|
79
|
+
postSendDefinition.props["SendDefinitionList"] = {"List"=> {"ID"=>ListIDForSendDefinition}, "DataSourceTypeID"=>"List"}
|
80
|
+
postSendDefinition.props["Email"] = {"ID"=>EmailIDForSendDefinition}
|
81
|
+
postResponse = postSendDefinition.post
|
82
|
+
p 'Post Status: ' + postResponse.status.to_s
|
83
|
+
p 'Code: ' + postResponse.code.to_s
|
84
|
+
p 'Message: ' + postResponse.message.to_s
|
85
|
+
p 'MoreResults: ' + postResponse.more?.to_s
|
86
|
+
p 'Results Length: ' + postResponse.results.length.to_s
|
87
|
+
p 'Results: ' + postResponse.results.to_s
|
88
|
+
raise 'Failure Creating SendDefinition' unless postResponse.success?
|
89
|
+
|
90
|
+
p '>>> Send SendDefinition to List'
|
91
|
+
sendSendDefinition = FuelSDK::Email::SendDefinition.new()
|
92
|
+
sendSendDefinition.authStub = stubObj
|
93
|
+
sendSendDefinition.props = {"CustomerKey"=> NewSendDefinitionName}
|
94
|
+
sendResponse = sendSendDefinition.send
|
95
|
+
p 'Send Status: ' + sendResponse.status.to_s
|
96
|
+
p 'Code: ' + sendResponse.code.to_s
|
97
|
+
p 'Message: ' + sendResponse.message.to_s
|
98
|
+
p 'MoreResults: ' + sendResponse.more?.to_s
|
99
|
+
p 'Results Length: ' + sendResponse.results.length.to_s
|
100
|
+
p 'Results: ' + sendResponse.results.to_s
|
101
|
+
raise 'Failure Sending SendDefinition' unless sendResponse.success?
|
102
|
+
|
103
|
+
emailStatus = ""
|
104
|
+
while emailStatus != "Canceled" && emailStatus != "Complete" do
|
105
|
+
p '>>> Checking status in loop'
|
106
|
+
# Wait a bit before checking the status to give it time to process
|
107
|
+
sleep 10
|
108
|
+
statusResponse = sendSendDefinition.status
|
109
|
+
p 'Status Status: ' + statusResponse.status.to_s
|
110
|
+
p 'Code: ' + statusResponse.code.to_s
|
111
|
+
p 'Message: ' + statusResponse.message.to_s
|
112
|
+
p 'Result Count: ' + statusResponse.results.length.to_s
|
113
|
+
p 'Results: ' + statusResponse.results.inspect
|
114
|
+
emailStatus = statusResponse.results[0][:status]
|
115
|
+
end
|
116
|
+
|
117
|
+
p '>>> Delete SendDefinition to List'
|
118
|
+
deleteSendDefinition = FuelSDK::Email::SendDefinition.new()
|
119
|
+
deleteSendDefinition.authStub = stubObj
|
120
|
+
deleteSendDefinition.props = {"CustomerKey"=> NewSendDefinitionName}
|
121
|
+
deleteResponse = deleteSendDefinition.delete
|
122
|
+
p 'Delete Status: ' + deleteResponse.status.to_s
|
123
|
+
p 'Code: ' + deleteResponse.code.to_s
|
124
|
+
p 'Message: ' + deleteResponse.message.to_s
|
125
|
+
p 'MoreResults: ' + deleteResponse.more?.to_s
|
126
|
+
p 'Results Length: ' + deleteResponse.results.length.to_s
|
127
|
+
p 'Results: ' + deleteResponse.results.to_s
|
128
|
+
raise 'Failure Deleting SendDefinition' unless deleteResponse.success?
|
129
|
+
|
130
|
+
rescue => e
|
131
|
+
p "Caught exception: #{e.message}"
|
132
|
+
p e.backtrace
|
133
|
+
end
|
134
|
+
|
@@ -0,0 +1,143 @@
|
|
1
|
+
require 'fuelsdk'
|
2
|
+
require_relative 'sample_helper'
|
3
|
+
|
4
|
+
begin
|
5
|
+
stubObj = FuelSDK::Client.new auth
|
6
|
+
|
7
|
+
# Retrieve All Folder with GetMoreResults
|
8
|
+
p '>>> Retrieve All Folder with GetMoreResults'
|
9
|
+
getFolder = FuelSDK::Folder.new()
|
10
|
+
getFolder.authStub = stubObj
|
11
|
+
getFolder.props = ["ID", "Client.ID", "ParentFolder.ID", "ParentFolder.CustomerKey", "ParentFolder.ObjectID", "ParentFolder.Name", "ParentFolder.Description", "ParentFolder.ContentType", "ParentFolder.IsActive", "ParentFolder.IsEditable", "ParentFolder.AllowChildren", "Name", "Description", "ContentType", "IsActive", "IsEditable", "AllowChildren", "CreatedDate", "ModifiedDate", "Client.ModifiedBy", "ObjectID", "CustomerKey", "Client.EnterpriseID", "Client.CreatedBy"]
|
12
|
+
getResponse = getFolder.get
|
13
|
+
p 'Retrieve Status: ' + getResponse.status.to_s
|
14
|
+
p 'Code: ' + getResponse.code.to_s
|
15
|
+
p 'Message: ' + getResponse.message.to_s
|
16
|
+
p 'MoreResults: ' + getResponse.more?.to_s
|
17
|
+
p 'Results Length: ' + getResponse.results.length.to_s
|
18
|
+
#p 'Results: ' + getResponse.results.to_s
|
19
|
+
raise 'Failure retrieving Folders' unless getResponse.success?
|
20
|
+
|
21
|
+
while getResponse.more? do
|
22
|
+
p '>>> Continue Retrieve All Folder with GetMoreResults'
|
23
|
+
getResponse.continue
|
24
|
+
p 'Retrieve Status: ' + getResponse.status.to_s
|
25
|
+
p 'Code: ' + getResponse.code.to_s
|
26
|
+
p 'Message: ' + getResponse.message.to_s
|
27
|
+
p 'MoreResults: ' + getResponse.more?.to_s
|
28
|
+
p 'RequestID: ' + getResponse.request_id.to_s
|
29
|
+
p 'Results Length: ' + getResponse.results.length.to_s
|
30
|
+
end
|
31
|
+
|
32
|
+
NameOfTestFolder = "RubySDKFolder"
|
33
|
+
|
34
|
+
# Retrieve Specific Folder for Email Folder ParentID
|
35
|
+
p '>>> Retrieve Specific Folder for Email Folder ParentID'
|
36
|
+
getFolder = FuelSDK::Folder.new()
|
37
|
+
getFolder.authStub = stubObj
|
38
|
+
getFolder.props = ["ID"]
|
39
|
+
getFolder.filter = {'LeftOperand' => {'Property' => 'ParentFolder.ID','SimpleOperator' => 'equals','Value' => '0'}, 'LogicalOperator' => 'AND', 'RightOperand' => {'Property' => 'ContentType','SimpleOperator' => 'equals','Value' => 'EMAIL'}}
|
40
|
+
getResponse = getFolder.get
|
41
|
+
p 'Retrieve Status: ' + getResponse.status.to_s
|
42
|
+
p 'Code: ' + getResponse.code.to_s
|
43
|
+
p 'Message: ' + getResponse.message.to_s
|
44
|
+
p 'MoreResults: ' + getResponse.more?.to_s
|
45
|
+
p 'Results Length: ' + getResponse.results.length.to_s
|
46
|
+
p 'Results: ' + getResponse.results.to_s
|
47
|
+
raise 'Failure retrieving Folder' unless getResponse.success?
|
48
|
+
|
49
|
+
if getResponse.success? then
|
50
|
+
ParentIDForEmail = getResponse.results[0][:id]
|
51
|
+
p "Parent Folder for Email: #{ParentIDForEmail}"
|
52
|
+
|
53
|
+
# Create Folder
|
54
|
+
p '>>> Create Folder'
|
55
|
+
postFolder = FuelSDK::Folder.new
|
56
|
+
postFolder.authStub = stubObj
|
57
|
+
postFolder.props = {"CustomerKey" => NameOfTestFolder, "Name" => NameOfTestFolder, "Description" => NameOfTestFolder, "ContentType"=> "EMAIL", "ParentFolder" => {"ID" => ParentIDForEmail}}
|
58
|
+
postResponse = postFolder.post
|
59
|
+
p 'Post Status: ' + postResponse.status.to_s
|
60
|
+
p 'Code: ' + postResponse.code.to_s
|
61
|
+
p 'Message: ' + postResponse.message.to_s
|
62
|
+
p 'Result Count: ' + postResponse.results.length.to_s
|
63
|
+
p 'Results: ' + postResponse.results.inspect
|
64
|
+
raise 'Failure creating Folder' unless postResponse.success?
|
65
|
+
|
66
|
+
# Retrieve newly created Folder
|
67
|
+
p '>>> Retrieve newly created Folder'
|
68
|
+
getFolder = FuelSDK::Folder.new()
|
69
|
+
getFolder.authStub = stubObj
|
70
|
+
getFolder.props = ["ID", "Client.ID", "ParentFolder.ID", "ParentFolder.CustomerKey", "ParentFolder.ObjectID", "ParentFolder.Name", "ParentFolder.Description", "ParentFolder.ContentType", "ParentFolder.IsActive", "ParentFolder.IsEditable", "ParentFolder.AllowChildren", "Name", "Description", "ContentType", "IsActive", "IsEditable", "AllowChildren", "CreatedDate", "ModifiedDate", "Client.ModifiedBy", "ObjectID", "CustomerKey", "Client.EnterpriseID", "Client.CreatedBy"]
|
71
|
+
getFolder.filter = {'Property' => 'CustomerKey','SimpleOperator' => 'equals','Value' => NameOfTestFolder}
|
72
|
+
getResponse = getFolder.get
|
73
|
+
p 'Retrieve Status: ' + getResponse.status.to_s
|
74
|
+
p 'Code: ' + getResponse.code.to_s
|
75
|
+
p 'Message: ' + getResponse.message.to_s
|
76
|
+
p 'MoreResults: ' + getResponse.more?.to_s
|
77
|
+
p 'Results Length: ' + getResponse.results.length.to_s
|
78
|
+
p 'Results: ' + getResponse.results.to_s
|
79
|
+
raise 'Failure retrieving Folder' unless getResponse.success?
|
80
|
+
raise 'Failure verifying created Folder' if getResponse.results.empty?
|
81
|
+
|
82
|
+
# Update Folder
|
83
|
+
p '>>> Update Folder'
|
84
|
+
patchFolder = FuelSDK::Folder.new
|
85
|
+
patchFolder.authStub = stubObj
|
86
|
+
patchFolder.props = {"CustomerKey" => NameOfTestFolder, "Description" => "New Description"}
|
87
|
+
patchResponse = patchFolder.patch
|
88
|
+
p 'Patch Status: ' + patchResponse.status.to_s
|
89
|
+
p 'Code: ' + patchResponse.code.to_s
|
90
|
+
p 'Message: ' + patchResponse.message.to_s
|
91
|
+
p 'Result Count: ' + patchResponse.results.length.to_s
|
92
|
+
p 'Results: ' + patchResponse.results.inspect
|
93
|
+
raise 'Failure updating Folder' unless patchResponse.success?
|
94
|
+
|
95
|
+
# Retrieve updated Folder
|
96
|
+
p '>>> Retrieve updated Folder'
|
97
|
+
getFolder = FuelSDK::Folder.new()
|
98
|
+
getFolder.authStub = stubObj
|
99
|
+
getFolder.props = ["ID", "Client.ID", "ParentFolder.ID", "ParentFolder.CustomerKey", "ParentFolder.ObjectID", "ParentFolder.Name", "ParentFolder.Description", "ParentFolder.ContentType", "ParentFolder.IsActive", "ParentFolder.IsEditable", "ParentFolder.AllowChildren", "Name", "Description", "ContentType", "IsActive", "IsEditable", "AllowChildren", "CreatedDate", "ModifiedDate", "Client.ModifiedBy", "ObjectID", "CustomerKey", "Client.EnterpriseID", "Client.CreatedBy"]
|
100
|
+
getFolder.filter = {'Property' => 'CustomerKey','SimpleOperator' => 'equals','Value' => NameOfTestFolder}
|
101
|
+
getResponse = getFolder.get
|
102
|
+
p 'Retrieve Status: ' + getResponse.status.to_s
|
103
|
+
p 'Code: ' + getResponse.code.to_s
|
104
|
+
p 'Message: ' + getResponse.message.to_s
|
105
|
+
p 'MoreResults: ' + getResponse.more?.to_s
|
106
|
+
p 'Results Length: ' + getResponse.results.length.to_s
|
107
|
+
p 'Results: ' + getResponse.results.to_s
|
108
|
+
raise 'Failure retrieving Folder' unless getResponse.success?
|
109
|
+
|
110
|
+
# Delete Folder
|
111
|
+
p '>>> Delete Folder'
|
112
|
+
deleteFolder = FuelSDK::Folder.new
|
113
|
+
deleteFolder.authStub = stubObj
|
114
|
+
deleteFolder.props = {"CustomerKey" => NameOfTestFolder, "Name"=>NameOfTestFolder, "Content"=> "<b>Some HTML Content Goes here. NOW WITH NEW CONTENT</b>"}
|
115
|
+
deleteResponse = deleteFolder.delete
|
116
|
+
p 'Delete Status: ' + deleteResponse.status.to_s
|
117
|
+
p 'Code: ' + deleteResponse.code.to_s
|
118
|
+
p 'Message: ' + deleteResponse.message.to_s
|
119
|
+
p 'Result Count: ' + deleteResponse.results.length.to_s
|
120
|
+
p 'Results: ' + deleteResponse.results.inspect
|
121
|
+
raise 'Failure deleting Folder' unless deleteResponse.success?
|
122
|
+
|
123
|
+
# Retrieve Folder to confirm deletion
|
124
|
+
p '>>> Retrieve Folder to confirm deletion'
|
125
|
+
getFolder = FuelSDK::Folder.new()
|
126
|
+
getFolder.authStub = stubObj
|
127
|
+
getFolder.props = ["ID"]
|
128
|
+
getFolder.filter = {'Property' => 'CustomerKey','SimpleOperator' => 'equals','Value' => NameOfTestFolder}
|
129
|
+
getResponse = getFolder.get
|
130
|
+
p 'Retrieve Status: ' + getResponse.status.to_s
|
131
|
+
p 'Code: ' + getResponse.code.to_s
|
132
|
+
p 'Message: ' + getResponse.message.to_s
|
133
|
+
p 'MoreResults: ' + getResponse.more?.to_s
|
134
|
+
p 'Results Length: ' + getResponse.results.length.to_s
|
135
|
+
p 'Results: ' + getResponse.results.to_s
|
136
|
+
raise 'Failure verifying deleted Folder' unless getResponse.success?
|
137
|
+
raise 'Failure verifying deleted Folder' unless getResponse.results.empty?
|
138
|
+
end
|
139
|
+
rescue => e
|
140
|
+
p "Caught exception: #{e.message}"
|
141
|
+
p e.backtrace
|
142
|
+
end
|
143
|
+
|
@@ -0,0 +1,104 @@
|
|
1
|
+
require 'fuelsdk'
|
2
|
+
require_relative 'sample_helper'
|
3
|
+
|
4
|
+
begin
|
5
|
+
stubObj = FuelSDK::Client.new auth
|
6
|
+
|
7
|
+
NewImportName = "RubySDKImport"
|
8
|
+
SendableDataExtensionCustomerKey = "62476204-bfd3-de11-95ca-001e0bbae8cc"
|
9
|
+
ListIDForImport = "1956035"
|
10
|
+
|
11
|
+
p '>>> Create Import to DataExtension'
|
12
|
+
postImport = ET_Import.new
|
13
|
+
postImport.authStub = stubObj
|
14
|
+
postImport.props = {"Name"=>NewImportName}
|
15
|
+
postImport.props["CustomerKey"] = NewImportName
|
16
|
+
postImport.props["Description"] = "Created with RubySDK"
|
17
|
+
postImport.props["AllowErrors"] = "true"
|
18
|
+
postImport.props["DestinationObject"] = {"ObjectID"=>SendableDataExtensionCustomerKey}
|
19
|
+
postImport.props["FieldMappingType"] = "InferFromColumnHeadings"
|
20
|
+
postImport.props["FileSpec"] = "RubyExample.csv"
|
21
|
+
postImport.props["FileType"] = "CSV"
|
22
|
+
postImport.props["Notification"] = {"ResponseType"=>"email","ResponseAddress"=>"example@example.com"}
|
23
|
+
postImport.props["RetrieveFileTransferLocation"] = {"CustomerKey"=>"ExactTarget Enhanced FTP"}
|
24
|
+
postImport.props["UpdateType"] = "Overwrite"
|
25
|
+
postResponse = postImport.post
|
26
|
+
p 'Post Status: ' + postResponse.status.to_s
|
27
|
+
p 'Code: ' + postResponse.code.to_s
|
28
|
+
p 'Message: ' + postResponse.message.to_s
|
29
|
+
p 'Result Count: ' + postResponse.results.length.to_s
|
30
|
+
p 'Results: ' + postResponse.results.inspect
|
31
|
+
|
32
|
+
p '>>> Delete Import'
|
33
|
+
deleteImport = ET_Import.new()
|
34
|
+
deleteImport.authStub = stubObj
|
35
|
+
deleteImport.props = {"CustomerKey" => NewImportName}
|
36
|
+
deleteResponse = deleteImport.delete
|
37
|
+
p 'Delete Status: ' + deleteResponse.status.to_s
|
38
|
+
p 'Code: ' + deleteResponse.code.to_s
|
39
|
+
p 'Message: ' + deleteResponse.message.to_s
|
40
|
+
p 'Results Length: ' + deleteResponse.results.length.to_s
|
41
|
+
p 'Results: ' + deleteResponse.results.to_s
|
42
|
+
|
43
|
+
p '>>> Create Import to List'
|
44
|
+
postImport = ET_Import.new
|
45
|
+
postImport.authStub = stubObj
|
46
|
+
postImport.props = {"Name"=>NewImportName}
|
47
|
+
postImport.props["CustomerKey"] = NewImportName
|
48
|
+
postImport.props["Description"] = "Created with RubySDK"
|
49
|
+
postImport.props["AllowErrors"] = "true"
|
50
|
+
postImport.props["DestinationObject"] = {"ID"=>ListIDForImport}
|
51
|
+
postImport.props["FieldMappingType"] = "InferFromColumnHeadings"
|
52
|
+
postImport.props["FileSpec"] = "RubyExample.csv"
|
53
|
+
postImport.props["FileType"] = "CSV"
|
54
|
+
postImport.props["Notification"] = {"ResponseType"=>"email","ResponseAddress"=>"example@example.com"}
|
55
|
+
postImport.props["RetrieveFileTransferLocation"] = {"CustomerKey"=>"ExactTarget Enhanced FTP"}
|
56
|
+
postImport.props["UpdateType"] = "AddAndUpdate"
|
57
|
+
postResponse = postImport.post
|
58
|
+
p 'Post Status: ' + postResponse.status.to_s
|
59
|
+
p 'Code: ' + postResponse.code.to_s
|
60
|
+
p 'Message: ' + postResponse.message.to_s
|
61
|
+
p 'Result Count: ' + postResponse.results.length.to_s
|
62
|
+
p 'Results: ' + postResponse.results.inspect
|
63
|
+
|
64
|
+
p '>>> Start Import to List'
|
65
|
+
startImport = ET_Import.new
|
66
|
+
startImport.authStub = stubObj
|
67
|
+
startImport.props = {"CustomerKey"=>NewImportName}
|
68
|
+
postResponse = startImport.start
|
69
|
+
p 'Start Status: ' + postResponse.status.to_s
|
70
|
+
p 'Code: ' + postResponse.code.to_s
|
71
|
+
p 'Message: ' + postResponse.message.to_s
|
72
|
+
p 'Result Count: ' + postResponse.results.length.to_s
|
73
|
+
p 'Results: ' + postResponse.results.inspect
|
74
|
+
|
75
|
+
importStatus = ""
|
76
|
+
while postResponse.status && importStatus != "Error" && importStatus != "Completed" do
|
77
|
+
p '>>> Checking status in loop'
|
78
|
+
# Wait a bit before checking the status to give it time to process
|
79
|
+
sleep 30
|
80
|
+
statusResponse = startImport.status
|
81
|
+
p 'Status Status: ' + statusResponse.status.to_s
|
82
|
+
p 'Code: ' + statusResponse.code.to_s
|
83
|
+
p 'Message: ' + statusResponse.message.to_s
|
84
|
+
p 'Result Count: ' + statusResponse.results.length.to_s
|
85
|
+
p 'Results: ' + statusResponse.results.inspect
|
86
|
+
importStatus = statusResponse.results[0][:import_status]
|
87
|
+
end
|
88
|
+
|
89
|
+
p '>>> Delete Import'
|
90
|
+
deleteImport = ET_Import.new()
|
91
|
+
deleteImport.authStub = stubObj
|
92
|
+
deleteImport.props = {"CustomerKey" => NewImportName}
|
93
|
+
deleteResponse = deleteImport.delete
|
94
|
+
p 'Delete Status: ' + deleteResponse.status.to_s
|
95
|
+
p 'Code: ' + deleteResponse.code.to_s
|
96
|
+
p 'Message: ' + deleteResponse.message.to_s
|
97
|
+
p 'Results Length: ' + deleteResponse.results.length.to_s
|
98
|
+
p 'Results: ' + deleteResponse.results.to_s
|
99
|
+
|
100
|
+
rescue => e
|
101
|
+
p "Caught exception: #{e.message}"
|
102
|
+
p e.backtrace
|
103
|
+
end
|
104
|
+
|