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.
Files changed (57) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +26 -0
  3. data/Gemfile +3 -0
  4. data/Gemfile.lock +91 -0
  5. data/Guardfile +8 -0
  6. data/LICENSE.md +13 -0
  7. data/README.md +127 -0
  8. data/Rakefile +1 -0
  9. data/fuelsdk.gemspec +30 -0
  10. data/lib/fuelsdk.rb +74 -0
  11. data/lib/fuelsdk/client.rb +282 -0
  12. data/lib/fuelsdk/http_request.rb +116 -0
  13. data/lib/fuelsdk/objects.rb +757 -0
  14. data/lib/fuelsdk/rest.rb +122 -0
  15. data/lib/fuelsdk/soap.rb +288 -0
  16. data/lib/fuelsdk/targeting.rb +58 -0
  17. data/lib/fuelsdk/utils.rb +47 -0
  18. data/lib/fuelsdk/version.rb +39 -0
  19. data/lib/new.rb +1240 -0
  20. data/samples/sample-AddSubscriberToList.rb +56 -0
  21. data/samples/sample-CreateAndStartDataExtensionImport.rb +29 -0
  22. data/samples/sample-CreateAndStartListImport.rb +27 -0
  23. data/samples/sample-CreateContentAreas.rb +48 -0
  24. data/samples/sample-CreateDataExtensions.rb +54 -0
  25. data/samples/sample-CreateProfileAttributes.rb +48 -0
  26. data/samples/sample-SendEmailToDataExtension.rb +23 -0
  27. data/samples/sample-SendEmailToList.rb +23 -0
  28. data/samples/sample-SendTriggeredSends.rb +30 -0
  29. data/samples/sample-bounceevent.rb +70 -0
  30. data/samples/sample-campaign.rb +211 -0
  31. data/samples/sample-clickevent.rb +71 -0
  32. data/samples/sample-contentarea.rb +122 -0
  33. data/samples/sample-dataextension.rb +209 -0
  34. data/samples/sample-directverb.rb +55 -0
  35. data/samples/sample-email.rb +122 -0
  36. data/samples/sample-email.senddefinition.rb +134 -0
  37. data/samples/sample-folder.rb +143 -0
  38. data/samples/sample-import.rb +104 -0
  39. data/samples/sample-list.rb +105 -0
  40. data/samples/sample-list.subscriber.rb +97 -0
  41. data/samples/sample-openevent.rb +70 -0
  42. data/samples/sample-profileattribute.rb +57 -0
  43. data/samples/sample-sentevent.rb +70 -0
  44. data/samples/sample-subscriber.rb +136 -0
  45. data/samples/sample-triggeredsend.rb +130 -0
  46. data/samples/sample-unsubevent.rb +72 -0
  47. data/samples/sample_helper.rb.template +8 -0
  48. data/spec/client_spec.rb +200 -0
  49. data/spec/helper_funcs_spec.rb +11 -0
  50. data/spec/http_request_spec.rb +36 -0
  51. data/spec/objects_helper_spec.rb +32 -0
  52. data/spec/objects_spec.rb +484 -0
  53. data/spec/rest_spec.rb +48 -0
  54. data/spec/soap_spec.rb +140 -0
  55. data/spec/spec_helper.rb +14 -0
  56. data/spec/targeting_spec.rb +39 -0
  57. 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
+