fuelsdk 0.0.1

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.
@@ -0,0 +1,114 @@
1
+ require '../ET_Client.rb'
2
+
3
+ begin
4
+ stubObj = ET_Client.new(false, false)
5
+
6
+ # Retrieve All ContentArea with GetMoreResults
7
+ p '>>> Retrieve All ContentArea with GetMoreResults'
8
+ getContent = ET_ContentArea.new()
9
+ getContent.authStub = stubObj
10
+ getContent.props = ["RowObjectID","ObjectID","ID","CustomerKey","Client.ID","ModifiedDate","CreatedDate","CategoryID","Name","Layout","IsDynamicContent","Content","IsSurvey","IsBlank","Key"]
11
+ getResponse = getContent.get
12
+ p 'Retrieve Status: ' + getResponse.status.to_s
13
+ p 'Code: ' + getResponse.code.to_s
14
+ p 'Message: ' + getResponse.message.to_s
15
+ p 'MoreResults: ' + getResponse.moreResults.to_s
16
+ p 'Results Length: ' + getResponse.results.length.to_s
17
+ #p 'Results: ' + getResponse.results.to_s
18
+
19
+ while getResponse.moreResults do
20
+ p '>>> Continue Retrieve All ContentArea with GetMoreResults'
21
+ getResponse = getContent.getMoreResults
22
+ p 'Retrieve Status: ' + getResponse.status.to_s
23
+ p 'Code: ' + getResponse.code.to_s
24
+ p 'Message: ' + getResponse.message.to_s
25
+ p 'MoreResults: ' + getResponse.moreResults.to_s
26
+ p 'RequestID: ' + getResponse.request_id.to_s
27
+ p 'Results Length: ' + getResponse.results.length.to_s
28
+ end
29
+
30
+ NameOfTestContentArea = "RubySDKContentArea"
31
+
32
+ # Create ContentArea
33
+ p '>>> Create ContentArea'
34
+ postContent = ET_ContentArea.new
35
+ postContent.authStub = stubObj
36
+ postContent.props = {"CustomerKey" => NameOfTestContentArea, "Name"=>NameOfTestContentArea, "Content"=> "<b>Some HTML Content Goes here</b>"}
37
+ postResponse = postContent.post
38
+ p 'Post Status: ' + postResponse.status.to_s
39
+ p 'Code: ' + postResponse.code.to_s
40
+ p 'Message: ' + postResponse.message.to_s
41
+ p 'Result Count: ' + postResponse.results.length.to_s
42
+ p 'Results: ' + postResponse.results.inspect
43
+
44
+ # Retrieve newly created ContentArea
45
+ p '>>> Retrieve newly created ContentArea'
46
+ getContent = ET_ContentArea.new()
47
+ getContent.authStub = stubObj
48
+ getContent.props = ["RowObjectID","ObjectID","ID","CustomerKey","Client.ID","ModifiedDate","CreatedDate","CategoryID","Name","Layout","IsDynamicContent","Content","IsSurvey","IsBlank","Key"]
49
+ getContent.filter = {'Property' => 'CustomerKey','SimpleOperator' => 'equals','Value' => NameOfTestContentArea}
50
+ getResponse = getContent.get
51
+ p 'Retrieve Status: ' + getResponse.status.to_s
52
+ p 'Code: ' + getResponse.code.to_s
53
+ p 'Message: ' + getResponse.message.to_s
54
+ p 'MoreResults: ' + getResponse.moreResults.to_s
55
+ p 'Results Length: ' + getResponse.results.length.to_s
56
+ p 'Results: ' + getResponse.results.to_s
57
+
58
+ # Update ContentArea
59
+ p '>>> Update ContentArea'
60
+ patchContent = ET_ContentArea.new
61
+ patchContent.authStub = stubObj
62
+ patchContent.props = {"CustomerKey" => NameOfTestContentArea, "Name"=>NameOfTestContentArea, "Content"=> "<b>Some HTML Content Goes here. NOW WITH NEW CONTENT</b>"}
63
+ patchResponse = patchContent.patch
64
+ p 'Patch Status: ' + patchResponse.status.to_s
65
+ p 'Code: ' + patchResponse.code.to_s
66
+ p 'Message: ' + patchResponse.message.to_s
67
+ p 'Result Count: ' + patchResponse.results.length.to_s
68
+ p 'Results: ' + patchResponse.results.inspect
69
+
70
+ # Retrieve updated ContentArea
71
+ p '>>> Retrieve updated ContentArea'
72
+ getContent = ET_ContentArea.new()
73
+ getContent.authStub = stubObj
74
+ getContent.props = ["RowObjectID","ObjectID","ID","CustomerKey","Client.ID","ModifiedDate","CreatedDate","CategoryID","Name","Layout","IsDynamicContent","Content","IsSurvey","IsBlank","Key"]
75
+ getContent.filter = {'Property' => 'CustomerKey','SimpleOperator' => 'equals','Value' => NameOfTestContentArea}
76
+ getResponse = getContent.get
77
+ p 'Retrieve Status: ' + getResponse.status.to_s
78
+ p 'Code: ' + getResponse.code.to_s
79
+ p 'Message: ' + getResponse.message.to_s
80
+ p 'MoreResults: ' + getResponse.moreResults.to_s
81
+ p 'Results Length: ' + getResponse.results.length.to_s
82
+ p 'Results: ' + getResponse.results.to_s
83
+
84
+ # Delete ContentArea
85
+ p '>>> Delete ContentArea'
86
+ deleteContent = ET_ContentArea.new
87
+ deleteContent.authStub = stubObj
88
+ deleteContent.props = {"CustomerKey" => NameOfTestContentArea, "Name"=>NameOfTestContentArea, "Content"=> "<b>Some HTML Content Goes here. NOW WITH NEW CONTENT</b>"}
89
+ deleteResponse = deleteContent.delete
90
+ p 'Delete Status: ' + deleteResponse.status.to_s
91
+ p 'Code: ' + deleteResponse.code.to_s
92
+ p 'Message: ' + deleteResponse.message.to_s
93
+ p 'Result Count: ' + deleteResponse.results.length.to_s
94
+ p 'Results: ' + deleteResponse.results.inspect
95
+
96
+ # Retrieve ContentArea to confirm deletion
97
+ p '>>> Retrieve ContentArea to confirm deletion'
98
+ getContent = ET_ContentArea.new()
99
+ getContent.authStub = stubObj
100
+ getContent.props = ["RowObjectID","ObjectID","ID","CustomerKey","Client.ID","ModifiedDate","CreatedDate","CategoryID","Name","Layout","IsDynamicContent","Content","IsSurvey","IsBlank","Key"]
101
+ getContent.filter = {'Property' => 'CustomerKey','SimpleOperator' => 'equals','Value' => NameOfTestContentArea}
102
+ getResponse = getContent.get
103
+ p 'Retrieve Status: ' + getResponse.status.to_s
104
+ p 'Code: ' + getResponse.code.to_s
105
+ p 'Message: ' + getResponse.message.to_s
106
+ p 'MoreResults: ' + getResponse.moreResults.to_s
107
+ p 'Results Length: ' + getResponse.results.length.to_s
108
+ p 'Results: ' + getResponse.results.to_s
109
+
110
+ rescue => e
111
+ p "Caught exception: #{e.message}"
112
+ p e.backtrace
113
+ end
114
+
@@ -0,0 +1,192 @@
1
+ require '../ET_Client.rb'
2
+
3
+
4
+ begin
5
+ stubObj = ET_Client.new(false, false)
6
+
7
+
8
+ # Get all of the DataExtensions in an Account
9
+ p '>>> Get all of the DataExtensions in an Account'
10
+ de = ET_DataExtension.new
11
+ de.authStub = stubObj
12
+ de.props = ["CustomerKey", "Name"]
13
+ getResponse = de.get
14
+ p 'Retrieve Status: ' + getResponse.status.to_s
15
+ p 'Code: ' + getResponse.code.to_s
16
+ p 'Message: ' + getResponse.message.to_s
17
+ p 'MoreResults: ' + getResponse.moreResults.to_s
18
+ p 'RequestID: ' + getResponse.request_id.to_s
19
+ p 'Results Length: ' + getResponse.results.length.to_s
20
+ #p 'Results: ' + getResponse.results.to_s
21
+
22
+ # Specify a name for the data extension that will be used for testing
23
+ # Note: Name and CustomerKey will be the same value
24
+ # WARNING: Data Extension will be deleted so don't use the name of a
25
+ # production data extension
26
+ NameOfDE = "ThisWillBeDeleted-Test"
27
+
28
+
29
+ # Create Data Extension
30
+ p '>>> Create Data Extension'
31
+ de2 = ET_DataExtension.new
32
+ de2.authStub = stubObj
33
+ de2.props = {"Name" => NameOfDE,"CustomerKey" => NameOfDE}
34
+ de2.columns = [{"Name" => "Name", "FieldType" => "Text", "IsPrimaryKey" => "true", "MaxLength" => "100", "IsRequired" => "true"},{"Name" => "OtherField", "FieldType" => "Text"}]
35
+ postResponse = de2.post
36
+ p 'Post Status: ' + postResponse.status.to_s
37
+ p 'Code: ' + postResponse.code.to_s
38
+ p 'Message: ' + postResponse.message.to_s
39
+ p 'Results: ' + postResponse.results.inspect
40
+
41
+ # Update DE to add new field
42
+ p '>>> Update DE to add new field'
43
+ de3 = ET_DataExtension.new
44
+ de3.authStub = stubObj
45
+ de3.props = {"Name" => NameOfDE,"CustomerKey" => NameOfDE}
46
+ de3.columns = [{"Name" => "AddedField", "FieldType" => "Text"}]
47
+ patchResponse = de3.patch
48
+ p 'Patch Status: ' + patchResponse.status.to_s
49
+ p 'Code: ' + patchResponse.code.to_s
50
+ p 'Message: ' + patchResponse.message.to_s
51
+ p 'Results: ' + patchResponse.results.inspect
52
+
53
+
54
+
55
+ # Retrieve all columns for data extension
56
+ p '>>> Retrieve all columns for data extension '
57
+ myDEColumn = ET_DataExtension::Column.new
58
+ myDEColumn.authStub = stubObj
59
+ myDEColumn.props = ["Name"]
60
+ myDEColumn.filter = {'Property' => 'CustomerKey','SimpleOperator' => 'equals','Value' => NameOfDE}
61
+ getResponse = myDEColumn.get
62
+ p 'Retrieve Status: ' + getResponse.status.to_s
63
+ p 'Code: ' + getResponse.code.to_s
64
+ p 'Message: ' + getResponse.message.to_s
65
+ p 'MoreResults: ' + getResponse.moreResults.to_s
66
+ p 'RequestID: ' + getResponse.request_id.to_s
67
+ p 'Results Length: ' + getResponse.results.length.to_s
68
+ p 'Results: ' + getResponse.results.to_s
69
+
70
+
71
+ # Add a row to a data extension (using CustomerKey)
72
+ p '>>> Add a row to a data extension'
73
+ de4 = ET_DataExtension::Row.new
74
+ de4.CustomerKey = NameOfDE;
75
+ de4.authStub = stubObj
76
+ de4.props = {"Name" => "MAC3", "OtherField" => "Text3"}
77
+ postResponse = de4.post
78
+ p 'Post Status: ' + postResponse.status.to_s
79
+ p 'Code: ' + postResponse.code.to_s
80
+ p 'Message: ' + postResponse.message.to_s
81
+ p 'Results: ' + postResponse.results.inspect
82
+
83
+ # Add a row to a data extension (Using Name)
84
+ p '>>> Add a row to a data extension'
85
+ de4 = ET_DataExtension::Row.new
86
+ de4.authStub = stubObj
87
+ de4.Name = NameOfDE
88
+ de4.props = {"Name" => "MAC4", "OtherField" => "Text3"}
89
+ postResponse = de4.post
90
+ p 'Post Status: ' + postResponse.status.to_s
91
+ p 'Code: ' + postResponse.code.to_s
92
+ p 'Message: ' + postResponse.message.to_s
93
+ p 'Results: ' + postResponse.results.inspect
94
+
95
+ # Retrieve all rows
96
+ p '>>> Retrieve all rows'
97
+ row = ET_DataExtension::Row.new()
98
+ row.authStub = stubObj
99
+ row.CustomerKey = NameOfDE
100
+ row.props = ["Name","OtherField"]
101
+ getResponse = row.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.moreResults.to_s
106
+ p 'RequestID: ' + getResponse.request_id.to_s
107
+ p 'Results Length: ' + getResponse.results.length.to_s
108
+ p 'Results: ' + getResponse.results.to_s
109
+
110
+ # Update a row in a data extension
111
+ p '>>> Update a row in a data extension'
112
+ de4 = ET_DataExtension::Row.new
113
+ de4.authStub = stubObj
114
+ de4.CustomerKey = NameOfDE
115
+ de4.props = {"Name" => "MAC3", "OtherField" => "UPDATED!"}
116
+ postResponse = de4.patch
117
+ p 'Patch Status: ' + postResponse.status.to_s
118
+ p 'Code: ' + postResponse.code.to_s
119
+ p 'Message: ' + postResponse.message.to_s
120
+ p 'Results: ' + postResponse.results.inspect
121
+
122
+ # Retrieve only updated row
123
+ p '>>> Retrieve only updated row'
124
+ row = ET_DataExtension::Row.new()
125
+ row.authStub = stubObj
126
+ row.CustomerKey = NameOfDE
127
+ row.props = ["Name","OtherField"]
128
+ row.filter = {'Property' => 'Name','SimpleOperator' => 'equals','Value' => 'MAC3'}
129
+ getResponse = row.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.moreResults.to_s
134
+ p 'RequestID: ' + getResponse.request_id.to_s
135
+ p 'Results Length: ' + getResponse.results.length.to_s
136
+ p 'Results: ' + getResponse.results.to_s
137
+
138
+ # Delete a row from a data extension
139
+ p '>>> Delete a row from a data extension'
140
+ de4 = ET_DataExtension::Row.new
141
+ de4.authStub = stubObj
142
+ de4.CustomerKey = NameOfDE
143
+ de4.props = {"Name" => "MAC3"}
144
+ deleteResponse = de4.delete
145
+ p 'Delete Status: ' + deleteResponse.status.to_s
146
+ p 'Code: ' + deleteResponse.code.to_s
147
+ p 'Message: ' + deleteResponse.message.to_s
148
+ p 'Results: ' + deleteResponse.results.inspect
149
+
150
+ # Delete a Data Extension
151
+ p '>>> Delete a Data Extension'
152
+ de5 = ET_DataExtension.new
153
+ de5.authStub = stubObj
154
+ de5.props = {"Name" => NameOfDE,"CustomerKey" => NameOfDE}
155
+ delResponse = de5.delete
156
+ p 'Post Status: ' + delResponse.status.to_s
157
+ p 'Code: ' + delResponse.code.to_s
158
+ p 'Message: ' + delResponse.message.to_s
159
+ p 'Results: ' + delResponse.results.inspect
160
+
161
+ =begin
162
+ # Retrieve lots of rows with moreResults
163
+ p '>>> Retrieve lots of rows with moreResults'
164
+ row = ET_DataExtension::Row.new()
165
+ row.authStub = stubObj
166
+ row.Name = "zipstolong"
167
+ row.props = ["zip","latitude","longitude"]
168
+ getResponse = row.get
169
+ p 'Retrieve Status: ' + getResponse.status.to_s
170
+ p 'Code: ' + getResponse.code.to_s
171
+ p 'Message: ' + getResponse.message.to_s
172
+ p 'MoreResults: ' + getResponse.moreResults.to_s
173
+ p 'RequestID: ' + getResponse.request_id.to_s
174
+ p 'Results Length: ' + getResponse.results.length.to_s
175
+ #p 'Results: ' + getResponse.results.to_s
176
+
177
+ while getResponse.moreResults do
178
+ p '>>> Continue Retrieve lots of rows with moreResults'
179
+ getResponse = row.getMoreResults
180
+ p 'Retrieve Status: ' + getResponse.status.to_s
181
+ p 'Code: ' + getResponse.code.to_s
182
+ p 'Message: ' + getResponse.message.to_s
183
+ p 'MoreResults: ' + getResponse.moreResults.to_s
184
+ p 'RequestID: ' + getResponse.request_id.to_s
185
+ p 'Results Length: ' + getResponse.results.length.to_s
186
+ end
187
+ =end
188
+
189
+ rescue => e
190
+ p "Caught exception: #{e.message}"
191
+ p e.backtrace
192
+ end
@@ -0,0 +1,114 @@
1
+ require '../ET_Client.rb'
2
+
3
+ begin
4
+ stubObj = ET_Client.new(false, false)
5
+
6
+ # Retrieve All Email with GetMoreResults
7
+ p '>>> Retrieve All Email with GetMoreResults'
8
+ getHTMLBody = ET_Email.new()
9
+ getHTMLBody.authStub = stubObj
10
+ 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"]
11
+ getResponse = getHTMLBody.get
12
+ p 'Retrieve Status: ' + getResponse.status.to_s
13
+ p 'Code: ' + getResponse.code.to_s
14
+ p 'Message: ' + getResponse.message.to_s
15
+ p 'MoreResults: ' + getResponse.moreResults.to_s
16
+ p 'Results Length: ' + getResponse.results.length.to_s
17
+ #p 'Results: ' + getResponse.results.to_s
18
+
19
+ while getResponse.moreResults do
20
+ p '>>> Continue Retrieve All Email with GetMoreResults'
21
+ getResponse = getHTMLBody.getMoreResults
22
+ p 'Retrieve Status: ' + getResponse.status.to_s
23
+ p 'Code: ' + getResponse.code.to_s
24
+ p 'Message: ' + getResponse.message.to_s
25
+ p 'MoreResults: ' + getResponse.moreResults.to_s
26
+ p 'RequestID: ' + getResponse.request_id.to_s
27
+ p 'Results Length: ' + getResponse.results.length.to_s
28
+ end
29
+
30
+ NameOfTestEmail = "RubySDKEmail"
31
+
32
+ # Create Email
33
+ p '>>> Create Email'
34
+ postHTMLBody = ET_Email.new
35
+ postHTMLBody.authStub = stubObj
36
+ postHTMLBody.props = {"CustomerKey" => NameOfTestEmail, "Name"=>NameOfTestEmail, "Subject" => "Created Using the RubySDK", "HTMLBody"=> "<b>Some HTML Goes here</b>"}
37
+ postResponse = postHTMLBody.post
38
+ p 'Post Status: ' + postResponse.status.to_s
39
+ p 'Code: ' + postResponse.code.to_s
40
+ p 'Message: ' + postResponse.message.to_s
41
+ p 'Result Count: ' + postResponse.results.length.to_s
42
+ p 'Results: ' + postResponse.results.inspect
43
+
44
+ # Retrieve newly created Email
45
+ p '>>> Retrieve newly created Email'
46
+ getHTMLBody = ET_Email.new()
47
+ getHTMLBody.authStub = stubObj
48
+ 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"]
49
+ getHTMLBody.filter = {'Property' => 'CustomerKey','SimpleOperator' => 'equals','Value' => NameOfTestEmail}
50
+ getResponse = getHTMLBody.get
51
+ p 'Retrieve Status: ' + getResponse.status.to_s
52
+ p 'Code: ' + getResponse.code.to_s
53
+ p 'Message: ' + getResponse.message.to_s
54
+ p 'MoreResults: ' + getResponse.moreResults.to_s
55
+ p 'Results Length: ' + getResponse.results.length.to_s
56
+ p 'Results: ' + getResponse.results.to_s
57
+
58
+ # Update Email
59
+ p '>>> Update Email'
60
+ patchHTMLBody = ET_Email.new
61
+ patchHTMLBody.authStub = stubObj
62
+ patchHTMLBody.props = {"CustomerKey" => NameOfTestEmail, "Name"=>NameOfTestEmail, "HTMLBody"=> "<b>Some HTML HTMLBody Goes here. NOW WITH NEW HTMLBody</b>"}
63
+ patchResponse = patchHTMLBody.patch
64
+ p 'Patch Status: ' + patchResponse.status.to_s
65
+ p 'Code: ' + patchResponse.code.to_s
66
+ p 'Message: ' + patchResponse.message.to_s
67
+ p 'Result Count: ' + patchResponse.results.length.to_s
68
+ p 'Results: ' + patchResponse.results.inspect
69
+
70
+ # Retrieve updated Email
71
+ p '>>> Retrieve updated Email'
72
+ getHTMLBody = ET_Email.new()
73
+ getHTMLBody.authStub = stubObj
74
+ 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"]
75
+ getHTMLBody.filter = {'Property' => 'CustomerKey','SimpleOperator' => 'equals','Value' => NameOfTestEmail}
76
+ getResponse = getHTMLBody.get
77
+ p 'Retrieve Status: ' + getResponse.status.to_s
78
+ p 'Code: ' + getResponse.code.to_s
79
+ p 'Message: ' + getResponse.message.to_s
80
+ p 'MoreResults: ' + getResponse.moreResults.to_s
81
+ p 'Results Length: ' + getResponse.results.length.to_s
82
+ p 'Results: ' + getResponse.results.to_s
83
+
84
+ # Delete Email
85
+ p '>>> Delete Email'
86
+ deleteHTMLBody = ET_Email.new
87
+ deleteHTMLBody.authStub = stubObj
88
+ deleteHTMLBody.props = {"CustomerKey" => NameOfTestEmail, "Name"=>NameOfTestEmail, "HTMLBody"=> "<b>Some HTML HTMLBody Goes here. NOW WITH NEW HTMLBody</b>"}
89
+ deleteResponse = deleteHTMLBody.delete
90
+ p 'Delete Status: ' + deleteResponse.status.to_s
91
+ p 'Code: ' + deleteResponse.code.to_s
92
+ p 'Message: ' + deleteResponse.message.to_s
93
+ p 'Result Count: ' + deleteResponse.results.length.to_s
94
+ p 'Results: ' + deleteResponse.results.inspect
95
+
96
+ # Retrieve Email to confirm deletion
97
+ p '>>> Retrieve Email to confirm deletion'
98
+ getHTMLBody = ET_Email.new()
99
+ getHTMLBody.authStub = stubObj
100
+ 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"]
101
+ getHTMLBody.filter = {'Property' => 'CustomerKey','SimpleOperator' => 'equals','Value' => NameOfTestEmail}
102
+ getResponse = getHTMLBody.get
103
+ p 'Retrieve Status: ' + getResponse.status.to_s
104
+ p 'Code: ' + getResponse.code.to_s
105
+ p 'Message: ' + getResponse.message.to_s
106
+ p 'MoreResults: ' + getResponse.moreResults.to_s
107
+ p 'Results Length: ' + getResponse.results.length.to_s
108
+ p 'Results: ' + getResponse.results.to_s
109
+
110
+ rescue => e
111
+ p "Caught exception: #{e.message}"
112
+ p e.backtrace
113
+ end
114
+
@@ -0,0 +1,143 @@
1
+ require 'fuelsdk'
2
+ require_relative 'sample_helper'
3
+
4
+ begin
5
+ stubObj = FuelSDK::ET_Client.new auth
6
+
7
+ # Retrieve All Folder with GetMoreResults
8
+ p '>>> Retrieve All Folder with GetMoreResults'
9
+ getFolder = FuelSDK::ET_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::ET_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::ET_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::ET_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::ET_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::ET_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::ET_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::ET_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
+