MyPreciousRuby1 1.1.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.
- checksums.yaml +7 -0
- data/.gitignore +28 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +92 -0
- data/Guardfile +8 -0
- data/LICENSE.md +13 -0
- data/README.md +139 -0
- data/Rakefile +1 -0
- data/lib/marketingcloudsdk.rb +74 -0
- data/lib/marketingcloudsdk/client.rb +296 -0
- data/lib/marketingcloudsdk/http_request.rb +118 -0
- data/lib/marketingcloudsdk/objects.rb +757 -0
- data/lib/marketingcloudsdk/rest.rb +118 -0
- data/lib/marketingcloudsdk/soap.rb +282 -0
- data/lib/marketingcloudsdk/targeting.rb +99 -0
- data/lib/marketingcloudsdk/utils.rb +47 -0
- data/lib/marketingcloudsdk/version.rb +39 -0
- data/lib/new.rb +1240 -0
- data/marketingcloudsdk.gemspec +30 -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 +54 -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 +103 -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 +56 -0
- data/samples/sample-sentevent.rb +70 -0
- data/samples/sample-subscriber.rb +135 -0
- data/samples/sample-triggeredsend.rb +129 -0
- data/samples/sample-unsubevent.rb +72 -0
- data/samples/sample_helper.rb.template +10 -0
- data/spec/client_spec.rb +218 -0
- data/spec/default_values_fallback_spec.rb +30 -0
- data/spec/helper_funcs_spec.rb +11 -0
- data/spec/http_request_spec.rb +61 -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 +44 -0
- metadata +262 -0
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'marketingcloudsdk'
|
2
|
+
require_relative 'sample_helper' # contains auth with credentials
|
3
|
+
|
4
|
+
begin
|
5
|
+
filter = {'Property' => 'Type','SimpleOperator' => 'equals','Value' => 'Public'}
|
6
|
+
client = ET_Client.new auth
|
7
|
+
getResponse = ET_Get.new client, 'List', nil, filter
|
8
|
+
p "Get Status: #{getResponse.status.to_s}"
|
9
|
+
p "Code: #{getResponse.code.to_s}"
|
10
|
+
p "Message: #{getResponse.message.to_s}"
|
11
|
+
p "Result Count: #{getResponse.results.length.to_s}"
|
12
|
+
p "Results: #{getResponse.results.inspect}"
|
13
|
+
raise 'Failure getting List info' unless getResponse.success?
|
14
|
+
|
15
|
+
NewListName = "RubySDKList"
|
16
|
+
props = {"ListName" => NewListName, "Description" => "This list was created with the RubySDK", "Type" => "Private" }
|
17
|
+
client = ET_Client.new auth
|
18
|
+
postResponse = ET_Post.new client, 'List', props
|
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
|
+
raise 'Failure Creating List' unless postResponse.success?
|
25
|
+
|
26
|
+
if postResponse.success? then
|
27
|
+
newListID = postResponse.results[0][:new_id]
|
28
|
+
p "New ID: #{newListID}"
|
29
|
+
|
30
|
+
props = {"ID" => newListID, "Description" => "Update!!!"}
|
31
|
+
client = ET_Client.new auth
|
32
|
+
patchResponse = ET_Patch.new client, 'List', props
|
33
|
+
p "Patch Status: #{patchResponse.status.to_s}"
|
34
|
+
p "Code: #{patchResponse.code.to_s}"
|
35
|
+
p "Message: #{patchResponse.message.to_s}"
|
36
|
+
p "Result Count: #{patchResponse.results.length.to_s}"
|
37
|
+
p "Results: #{patchResponse.results.inspect}"
|
38
|
+
raise 'Failure Patching List' unless patchResponse.success?
|
39
|
+
|
40
|
+
props = {"ID" => newListID}
|
41
|
+
client = ET_Client.new auth
|
42
|
+
deleteResponse = ET_Delete.new client, 'List', props
|
43
|
+
p "Delete Status: #{deleteResponse.status.to_s}"
|
44
|
+
p "Code: #{deleteResponse.code.to_s}"
|
45
|
+
p "Message: #{deleteResponse.message.to_s}"
|
46
|
+
p "Result Count: #{deleteResponse.results.length.to_s}"
|
47
|
+
p "Results: #{deleteResponse.results.inspect}"
|
48
|
+
raise 'Failure Deleting List' unless deleteResponse.success?
|
49
|
+
end
|
50
|
+
|
51
|
+
rescue => e
|
52
|
+
p "Caught exception: #{e.message}"
|
53
|
+
p e.backtrace
|
54
|
+
end
|
@@ -0,0 +1,122 @@
|
|
1
|
+
require 'marketingcloudsdk'
|
2
|
+
require_relative 'sample_helper'
|
3
|
+
|
4
|
+
begin
|
5
|
+
stubObj = MarketingCloudSDK::Client.new auth
|
6
|
+
|
7
|
+
# Retrieve All Email with GetMoreResults
|
8
|
+
p '>>> Retrieve All Email with GetMoreResults'
|
9
|
+
getHTMLBody = MarketingCloudSDK::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 = MarketingCloudSDK::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 = MarketingCloudSDK::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 = MarketingCloudSDK::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 = MarketingCloudSDK::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 = MarketingCloudSDK::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 = MarketingCloudSDK::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 'marketingcloudsdk'
|
2
|
+
require_relative 'sample_helper'
|
3
|
+
|
4
|
+
begin
|
5
|
+
stubObj = MarketingCloudSDK::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 = MarketingCloudSDK::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 = MarketingCloudSDK::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 RubySDK"
|
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 = MarketingCloudSDK::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 = MarketingCloudSDK::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 = MarketingCloudSDK::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 = MarketingCloudSDK::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 'marketingcloudsdk'
|
2
|
+
require_relative 'sample_helper'
|
3
|
+
|
4
|
+
begin
|
5
|
+
stubObj = MarketingCloudSDK::Client.new auth
|
6
|
+
|
7
|
+
# Retrieve All Folder with GetMoreResults
|
8
|
+
p '>>> Retrieve All Folder with GetMoreResults'
|
9
|
+
getFolder = MarketingCloudSDK::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 = MarketingCloudSDK::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 = MarketingCloudSDK::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 = MarketingCloudSDK::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 = MarketingCloudSDK::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 = MarketingCloudSDK::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 = MarketingCloudSDK::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 = MarketingCloudSDK::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
|
+
|