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.
- data/.gitignore +24 -0
- data/Gemfile +3 -0
- data/Guardfile +8 -0
- data/README.md +117 -0
- data/Rakefile +1 -0
- data/fuelsdk.gemspec +30 -0
- data/lib/fuelsdk.rb +572 -0
- data/lib/fuelsdk/client.rb +142 -0
- data/lib/fuelsdk/http_request.rb +79 -0
- data/lib/fuelsdk/objects.rb +143 -0
- data/lib/fuelsdk/rest.rb +84 -0
- data/lib/fuelsdk/soap.rb +177 -0
- data/lib/fuelsdk/targeting.rb +22 -0
- data/lib/fuelsdk/version.rb +3 -0
- data/lib/new.rb +1204 -0
- data/samples/sample-AddSubscriberToList.rb +52 -0
- data/samples/sample-CreateDataExtensions.rb +51 -0
- data/samples/sample-bounceevent.rb +68 -0
- data/samples/sample-campaign.rb +212 -0
- data/samples/sample-clickevent.rb +68 -0
- data/samples/sample-contentarea.rb +114 -0
- data/samples/sample-dataextension.rb +192 -0
- data/samples/sample-email.rb +114 -0
- data/samples/sample-folder.rb +143 -0
- data/samples/sample-list.rb +105 -0
- data/samples/sample-list.subscriber.rb +97 -0
- data/samples/sample-openevent.rb +68 -0
- data/samples/sample-sentevent.rb +69 -0
- data/samples/sample-subscriber.rb +136 -0
- data/samples/sample-triggeredsend.rb +122 -0
- data/samples/sample-unsubevent.rb +68 -0
- data/samples/sample_helper.rb +8 -0
- data/spec/fuelsdk/client_spec.rb +21 -0
- data/spec/fuelsdk_spec.rb +197 -0
- data/spec/helper_funcs_spec.rb +11 -0
- data/spec/http_request_spec.rb +36 -0
- data/spec/rest_spec.rb +48 -0
- data/spec/soap_spec.rb +44 -0
- data/spec/spec_helper.rb +14 -0
- data/spec/targeting_spec.rb +39 -0
- metadata +239 -0
@@ -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
|
+
|