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,56 @@
1
+ require 'fuelsdk'
2
+ require_relative 'sample_helper'
3
+
4
+ begin
5
+ stubObj = ET_Client.new auth
6
+
7
+ NewListName = "RubySDKList"
8
+
9
+ ## Example using AddSubscriberToList() method
10
+ ## Typically this method will be used with a pre-existing list but for testing purposes one is being created.
11
+
12
+ # Create List
13
+ p '>>> Create List'
14
+ postList = ET_List.new
15
+ postList.authStub = stubObj
16
+ postList.props = {"ListName" => NewListName, "Description" => "This list was created with the RubySDK", "Type" => "Private" }
17
+ postResponse = postList.post
18
+ p 'Post Status: ' + postResponse.status.to_s
19
+ p 'Code: ' + postResponse.code.to_s
20
+ p 'Message: ' + postResponse.message.to_s
21
+ p 'Result Count: ' + postResponse.results.length.to_s
22
+ p 'Results: ' + postResponse.results.inspect
23
+ raise 'Failure creating list' unless postResponse.success?
24
+
25
+ if postResponse.status then
26
+
27
+ newListID = postResponse.results[0][:new_id]
28
+ # Adding Subscriber To a List
29
+ p '>>> Add Subscriber To a List'
30
+ AddSubResponse = stubObj.AddSubscriberToList("AddSubTesting@bh.exacttarget.com", [newListID], "Test")
31
+ p 'AddSubResponse Status: ' + AddSubResponse.status.to_s
32
+ p 'Code: ' + AddSubResponse.code.to_s
33
+ p 'Message: ' + AddSubResponse.message.to_s
34
+ p 'Result Count: ' + AddSubResponse.results.length.to_s
35
+ p 'Results: ' + AddSubResponse.results.inspect
36
+ raise 'Failure adding user to list' unless AddSubResponse.success?
37
+
38
+ # Delete List
39
+ p '>>> Delete List'
40
+ deleteSub = ET_List.new()
41
+ deleteSub.authStub = stubObj
42
+ deleteSub.props = {"ID" => newListID}
43
+ deleteResponse = deleteSub.delete
44
+ p 'Delete Status: ' + deleteResponse.status.to_s
45
+ p 'Code: ' + deleteResponse.code.to_s
46
+ p 'Message: ' + deleteResponse.message.to_s
47
+ p 'Results Length: ' + deleteResponse.results.length.to_s
48
+ p 'Results: ' + deleteResponse.results.to_s
49
+ raise 'Failure deleting list' unless deleteResponse.success?
50
+ end
51
+
52
+ rescue => e
53
+ p "Caught exception: #{e.message}"
54
+ p e.backtrace
55
+ end
56
+
@@ -0,0 +1,29 @@
1
+ require 'fuelsdk'
2
+ require_relative 'sample_helper'
3
+
4
+ begin
5
+ myclient = FuelSDK::Client.new auth
6
+
7
+ DataExtensionCustomerKey = "62476204-bfd3-de11-95ca-001e0bbae8cc"
8
+ CSVFileName = "SDKExample.csv"
9
+
10
+ =begin
11
+ * Parameters:
12
+ * Data Extension CustomerKey - CustomerKey values are displayed in the UI as External Key
13
+ * File Name - File must be a CSV located on your ExactTarget FTP Site
14
+ * Overwrite (Boolean) - Set to True in order to overwrite all existing data in the data extension. Required if Data Extension does not have a primary key.
15
+ =end
16
+
17
+ response = myclient.CreateAndStartDataExtensionImport(DataExtensionCustomerKey, CSVFileName, true)
18
+ p 'Response Status: ' + response.status.to_s
19
+ p 'Code: ' + response.code.to_s
20
+ p 'Message: ' + response.message.to_s
21
+ p 'Results Length: ' + response.results.length.to_s
22
+ p 'Results: ' + response.results.to_s
23
+
24
+ rescue => e
25
+ p "Caught exception: #{e.message}"
26
+ p e.backtrace
27
+ end
28
+
29
+
@@ -0,0 +1,27 @@
1
+ require 'fuelsdk'
2
+ require_relative 'sample_helper'
3
+
4
+ begin
5
+ myclient = FuelSDK::Client.new auth
6
+ ListID = "1956035"
7
+ CSVFileName = "SDKExample.csv"
8
+
9
+ =begin
10
+ * Parameters:
11
+ * List ID
12
+ * File Name - File must be a CSV located on your ExactTarget FTP Site
13
+ =end
14
+
15
+ response = myclient.CreateAndStartListImport(ListID, CSVFileName)
16
+ p 'Response Status: ' + response.status.to_s
17
+ p 'Code: ' + response.code.to_s
18
+ p 'Message: ' + response.message.to_s
19
+ p 'Results Length: ' + response.results.length.to_s
20
+ p 'Results: ' + response.results.to_s
21
+
22
+ rescue => e
23
+ p "Caught exception: #{e.message}"
24
+ p e.backtrace
25
+ end
26
+
27
+
@@ -0,0 +1,48 @@
1
+ require 'fuelsdk'
2
+ require_relative 'sample_helper'
3
+
4
+ begin
5
+ myclient = FuelSDK::Client.new auth
6
+
7
+ ## Example using CreateContentAreas() method
8
+
9
+ NameOfContentAreaOne = "ExampleContentAreaOne"
10
+ NameOfContentAreaTwo = "ExampleContentAreaTwo"
11
+
12
+ # Declare a Ruby Hash which contain all of the details for a DataExtension
13
+ contAreaOne = {"CustomerKey" => NameOfContentAreaOne, "Name"=>NameOfContentAreaOne, "Content"=> "<b>Some HTML Content Goes here</b>"}
14
+ contAreaTwo = {"CustomerKey" => NameOfContentAreaTwo, "Name"=>NameOfContentAreaTwo, "Content"=> "<b>Some Different HTML Content Goes here</b>"}
15
+
16
+ # Call CreateDataExtensions passing in both DataExtension Hashes as an Array
17
+ response = myclient.CreateContentAreas([contAreaOne,contAreaTwo])
18
+ p 'Response Status: ' + response.status.to_s
19
+ p 'Code: ' + response.code.to_s
20
+ p 'Message: ' + response.message.to_s
21
+ p 'Results Length: ' + response.results.length.to_s
22
+ p 'Results: ' + response.results.to_s
23
+
24
+ p '>>> Delete contAreaOne'
25
+ contArea = ET_ContentArea.new
26
+ contArea.authStub = myclient
27
+ contArea.props = {"CustomerKey" => NameOfContentAreaOne}
28
+ delResponse = contArea.delete
29
+ p 'Delete Status: ' + delResponse.status.to_s
30
+ p 'Code: ' + delResponse.code.to_s
31
+ p 'Message: ' + delResponse.message.to_s
32
+ p 'Results: ' + delResponse.results.inspect
33
+
34
+ p '>>> Delete contAreaTwo'
35
+ contArea = ET_ContentArea.new
36
+ contArea.authStub = myclient
37
+ contArea.props = {"CustomerKey" => NameOfContentAreaTwo}
38
+ delResponse = contArea.delete
39
+ p 'Delete Status: ' + delResponse.status.to_s
40
+ p 'Code: ' + delResponse.code.to_s
41
+ p 'Message: ' + delResponse.message.to_s
42
+ p 'Results: ' + delResponse.results.inspect
43
+
44
+ rescue => e
45
+ p "Caught exception: #{e.message}"
46
+ p e.backtrace
47
+ end
48
+
@@ -0,0 +1,54 @@
1
+ require 'fuelsdk'
2
+ require_relative 'sample_helper'
3
+
4
+ begin
5
+ myclient = ET_Client.new auth
6
+
7
+ ## Example using CreateDataExtensions() method
8
+
9
+ # Declare a Ruby Hash which contain all of the details for a DataExtension
10
+ deOne = {"Name" => "HelperDEOne","CustomerKey" => "HelperDEOne"}
11
+ deOne['columns'] = [{"Name" => "Name", "FieldType" => "Text", "IsPrimaryKey" => "true", "MaxLength" => "100", "IsRequired" => "true"},{"Name" => "OtherField", "FieldType" => "Text"}]
12
+
13
+ # Declare a 2nd Ruby Hash which contain all of the details for a DataExtension
14
+ deTwo = {"Name" => "HelperDETwo","CustomerKey" => "HelperDETwo"}
15
+ deTwo['columns'] = [{"Name" => "Name", "FieldType" => "Text", "IsPrimaryKey" => "true", "MaxLength" => "100", "IsRequired" => "true"},{"Name" => "OtherField", "FieldType" => "Text"}]
16
+
17
+ # Call CreateDataExtensions passing in both DataExtension Hashes as an Array
18
+ createDEResponse = myclient.CreateDataExtensions([deOne, deTwo])
19
+ p 'CreateDataExtensions Status: ' + createDEResponse.status.to_s
20
+ p 'Code: ' + createDEResponse.code.to_s
21
+ p 'Message: ' + createDEResponse.message.to_s
22
+ p 'Results Length: ' + createDEResponse.results.length.to_s
23
+ p 'Results: ' + createDEResponse.results.to_s
24
+ raise 'Failure creating data extensions' unless createDEResponse.success?
25
+ raise 'Failure creating data extensions' unless createDEResponse.results.count == 2
26
+
27
+ # Cleaning up the newly created DEs
28
+ # Delete deOne
29
+ p '>>> Delete deOne'
30
+ de5 = ET_DataExtension.new
31
+ de5.authStub = myclient
32
+ de5.props = {"CustomerKey" => "HelperDEOne"}
33
+ delResponse = de5.delete
34
+ p 'Delete Status: ' + delResponse.status.to_s
35
+ p 'Code: ' + delResponse.code.to_s
36
+ p 'Message: ' + delResponse.message.to_s
37
+ p 'Results: ' + delResponse.results.inspect
38
+
39
+ # Delete deTwo
40
+ p '>>> Delete deTwo'
41
+ de5 = ET_DataExtension.new
42
+ de5.authStub = myclient
43
+ de5.props = {"CustomerKey" => "HelperDETwo"}
44
+ delResponse = de5.delete
45
+ p 'Delete Status: ' + delResponse.status.to_s
46
+ p 'Code: ' + delResponse.code.to_s
47
+ p 'Message: ' + delResponse.message.to_s
48
+ p 'Results: ' + delResponse.results.inspect
49
+
50
+ rescue => e
51
+ p "Caught exception: #{e.message}"
52
+ p e.backtrace
53
+ end
54
+
@@ -0,0 +1,48 @@
1
+ require 'fuelsdk'
2
+ require_relative 'sample_helper'
3
+
4
+ begin
5
+ myclient = FuelSDK::Client.new auth
6
+
7
+ ## Example using CreateProfileAttributes() method
8
+
9
+ NameOfAttributeOne = "ExampleAttributeOne"
10
+ NameOfAttributeTwo = "ExampleAttributeTwo"
11
+
12
+ # Declare a Ruby Hash which contain all of the details for a DataExtension
13
+ profileAttrOne = {"Name" => NameOfAttributeOne, "PropertyType"=>"string", "Description"=>"New Attribute from the SDK", "IsRequired"=>"false", "IsViewable"=>"false", "IsEditable"=>"true", "IsSendTime"=>"false"}
14
+ profileAttrTwo = {"Name" => NameOfAttributeTwo, "PropertyType"=>"string", "Description"=>"New Attribute from the SDK", "IsRequired"=>"false", "IsViewable"=>"false", "IsEditable"=>"true", "IsSendTime"=>"false"}
15
+
16
+ # Call CreateDataExtensions passing in both DataExtension Hashes as an Array
17
+ response = myclient.CreateProfileAttributes([profileAttrOne,profileAttrTwo])
18
+ p 'Response Status: ' + response.status.to_s
19
+ p 'Code: ' + response.code.to_s
20
+ p 'Message: ' + response.message.to_s
21
+ p 'Results Length: ' + response.results.length.to_s
22
+ p 'Results: ' + response.results.to_s
23
+
24
+ p '>>> Delete profileAttrOne'
25
+ profileattr = ET_ProfileAttribute.new
26
+ profileattr.authStub = myclient
27
+ profileattr.props = {"Name" => NameOfAttributeOne}
28
+ delResponse = profileattr.delete
29
+ p 'Delete Status: ' + delResponse.status.to_s
30
+ p 'Code: ' + delResponse.code.to_s
31
+ p 'Message: ' + delResponse.message.to_s
32
+ p 'Results: ' + delResponse.results.inspect
33
+
34
+ p '>>> Delete profileAttrTwo'
35
+ profileattr = ET_ProfileAttribute.new
36
+ profileattr.authStub = myclient
37
+ profileattr.props = {"Name" => NameOfAttributeTwo}
38
+ delResponse = profileattr.delete
39
+ p 'Delete Status: ' + delResponse.status.to_s
40
+ p 'Code: ' + delResponse.code.to_s
41
+ p 'Message: ' + delResponse.message.to_s
42
+ p 'Results: ' + delResponse.results.inspect
43
+
44
+ rescue => e
45
+ p "Caught exception: #{e.message}"
46
+ p e.backtrace
47
+ end
48
+
@@ -0,0 +1,23 @@
1
+ require 'fuelsdk'
2
+ require_relative 'sample_helper'
3
+
4
+ begin
5
+ myclient = FuelSDK::Client.new auth
6
+
7
+ EmailIDForSendDefinition = "3113962"
8
+ SendClassificationCustomerKey = "2239"
9
+ SendableDataExtensionCustomerKey = "F6F3871A-D124-499B-BBF5-3EFC0E827A51"
10
+
11
+ # Call SendEmailToDataExtension
12
+ response = myclient.SendEmailToDataExtension(EmailIDForSendDefinition, SendableDataExtensionCustomerKey,SendClassificationCustomerKey)
13
+ p 'Response Status: ' + response.status.to_s
14
+ p 'Code: ' + response.code.to_s
15
+ p 'Message: ' + response.message.to_s
16
+ p 'Results Length: ' + response.results.length.to_s
17
+ p 'Results: ' + response.results.to_s
18
+
19
+ rescue => e
20
+ p "Caught exception: #{e.message}"
21
+ p e.backtrace
22
+ end
23
+
@@ -0,0 +1,23 @@
1
+ require 'fuelsdk'
2
+ require_relative 'sample_helper'
3
+
4
+ begin
5
+ myclient = FuelSDK::Client.new auth
6
+
7
+ EmailIDForSendDefinition = "3113962"
8
+ ListIDForSendDefinition = "1729515"
9
+ SendClassificationCustomerKey = "2239"
10
+
11
+ # Call SendEmailToList
12
+ response = myclient.SendEmailToList(EmailIDForSendDefinition, ListIDForSendDefinition,SendClassificationCustomerKey)
13
+ p 'Response Status: ' + response.status.to_s
14
+ p 'Code: ' + response.code.to_s
15
+ p 'Message: ' + response.message.to_s
16
+ p 'Results Length: ' + response.results.length.to_s
17
+ p 'Results: ' + response.results.to_s
18
+
19
+ rescue => e
20
+ p "Caught exception: #{e.message}"
21
+ p e.backtrace
22
+ end
23
+
@@ -0,0 +1,30 @@
1
+ require 'fuelsdk'
2
+ require_relative 'sample_helper'
3
+
4
+ begin
5
+ myclient = FuelSDK::Client.new auth
6
+
7
+ TriggeredSendCustomerKey = "TEXTEXT"
8
+ AltTriggeredSendCustomerKey = "FailTest"
9
+ SubscriberEmailAddress = "SDKExample@bh.exacttarget.com"
10
+
11
+ # Call SendTriggeredSends which can be used to send emails to multiple definitions with a single request
12
+ # Limit usage to 50 subscribers per request.
13
+ tsOne = {"CustomerKey" => TriggeredSendCustomerKey}
14
+ tsOne['Subscribers'] = [{"EmailAddress"=>SubscriberEmailAddress, "SubscriberKey" => SubscriberEmailAddress}]
15
+ tsTwo = {"CustomerKey" => AltTriggeredSendCustomerKey}
16
+ tsTwo['Subscribers'] = [{"EmailAddress"=>SubscriberEmailAddress, "SubscriberKey" => SubscriberEmailAddress}]
17
+
18
+ response = myclient.SendTriggeredSends([tsOne,tsTwo])
19
+ p 'Response Status: ' + response.status.to_s
20
+ p 'Code: ' + response.code.to_s
21
+ p 'Message: ' + response.message.to_s
22
+ p 'Results Length: ' + response.results.length.to_s
23
+ p 'Results: ' + response.results.to_s
24
+
25
+ rescue => e
26
+ p "Caught exception: #{e.message}"
27
+ p e.backtrace
28
+ end
29
+
30
+
@@ -0,0 +1,70 @@
1
+ require 'fuelsdk'
2
+ require_relative 'sample_helper'
3
+
4
+ begin
5
+ stubObj = FuelSDK::Client.new auth
6
+
7
+ ## Modify the date below to reduce the number of results returned from the request
8
+ ## Setting this too far in the past could result in a very large response size
9
+ retrieveDate = '2011-01-15T13:00:00.000'
10
+
11
+ p '>>> Retrieve Filtered BounceEvents with GetMoreResults'
12
+ getBounceEvent = FuelSDK::BounceEvent.new()
13
+ getBounceEvent.authStub = stubObj
14
+ getBounceEvent.props = ["SendID","SubscriberKey","EventDate","Client.ID","EventType","BatchID","TriggeredSendDefinitionObjectID","PartnerKey"]
15
+ getBounceEvent.filter = {'Property' => 'EventDate','SimpleOperator' => 'greaterThan','DateValue' => retrieveDate}
16
+ getResponse = getBounceEvent.get
17
+ p 'Retrieve Status: ' + getResponse.status.to_s
18
+ p 'Code: ' + getResponse.code.to_s
19
+ p 'Message: ' + getResponse.message.to_s
20
+ p 'MoreResults: ' + getResponse.more?.to_s
21
+ p 'RequestID: ' + getResponse.request_id.to_s
22
+ p 'Results Length: ' + getResponse.results.length.to_s
23
+ # Since this could potentially return a large number of results, we do not want to print the results
24
+ p 'Results: ' + getResponse.results.to_s
25
+ raise 'Failure retrieving bounce events' unless getResponse.success?
26
+
27
+ while getResponse.more? do
28
+ p '>>> Continue Retrieve Filtered BounceEvents with GetMoreResults'
29
+ getResponse = getBounceEvent.continue
30
+ p 'Retrieve Status: ' + getResponse.status.to_s
31
+ p 'Code: ' + getResponse.code.to_s
32
+ p 'Message: ' + getResponse.message.to_s
33
+ p 'MoreResults: ' + getResponse.more?.to_s
34
+ p 'RequestID: ' + getResponse.request_id.to_s
35
+ p 'Results Length: ' + getResponse.results.length.to_s
36
+ end
37
+
38
+ # The following request could potentially bring back large amounts of data if run against a production account
39
+ =begin
40
+ p '>>> Retrieve All BounceEvents with GetMoreResults'
41
+ getBounceEvent = FuelSDK::BounceEvent.new()
42
+ getBounceEvent.authStub = stubObj
43
+ getBounceEvent.props = ["SendID","SubscriberKey","EventDate","Client.ID","EventType","BatchID","TriggeredSendDefinitionObjectID","PartnerKey"]
44
+ getResponse = getBounceEvent.get
45
+ p 'Retrieve Status: ' + getResponse.status.to_s
46
+ p 'Code: ' + getResponse.code.to_s
47
+ p 'Message: ' + getResponse.message.to_s
48
+ p 'MoreResults: ' + getResponse.more?.to_s
49
+ p 'RequestID: ' + getResponse.request_id.to_s
50
+ p 'Results Length: ' + getResponse.results.length.to_s
51
+ # Since this could potentially return a large number of results, we do not want to print the results
52
+ #p 'Results: ' + getResponse.results.to_s
53
+
54
+ while getResponse.more? do
55
+ p '>>> Continue Retrieve All BounceEvents with GetMoreResults'
56
+ getResponse = getBounceEvent.continue
57
+ p 'Retrieve Status: ' + getResponse.status.to_s
58
+ p 'Code: ' + getResponse.code.to_s
59
+ p 'Message: ' + getResponse.message.to_s
60
+ p 'MoreResults: ' + getResponse.more?.to_s
61
+ p 'RequestID: ' + getResponse.request_id.to_s
62
+ p 'Results Length: ' + getResponse.results.length.to_s
63
+ end
64
+ =end
65
+
66
+ rescue => e
67
+ p "Caught exception: #{e.message}"
68
+ p e.backtrace
69
+ end
70
+
@@ -0,0 +1,211 @@
1
+ require 'fuelsdk'
2
+ require_relative 'sample_helper'
3
+
4
+
5
+ begin
6
+ stubObj = FuelSDK::Client.new auth
7
+
8
+ # Create List
9
+ p '>>> Create List'
10
+ postList = FuelSDK::List.new
11
+ postList.authStub = stubObj
12
+ postList.props = {"ListName" => 'RubyAssetList', "Description" => "This list was created with the RubySDK", "Type" => "Private" }
13
+ postResponse = postList.post
14
+ p 'Post Status: ' + postResponse.status.to_s
15
+ p 'Code: ' + postResponse.code.to_s
16
+ p 'Message: ' + postResponse.message.to_s
17
+ p 'Result Count: ' + postResponse.results.length.to_s
18
+ p 'Results: ' + postResponse.results.inspect
19
+
20
+ raise 'Failure creating list for asset' unless postResponse.success?
21
+
22
+ # In order for this sample to run, it needs to have an asset that it can associate the campaign to
23
+ ExampleAssetType = "LIST"
24
+ ExampleAssetItemID = postResponse.results[0][:new_id]
25
+
26
+ # Retrieve all Campaigns
27
+ p '>>> Retrieve all Campaigns'
28
+ getCamp = FuelSDK::Campaign.new
29
+ getCamp.authStub = stubObj
30
+ getResponse = getCamp.get
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 "Results: #{getResponse.results}"
36
+ p 'Results(Items) Length: ' + getResponse.results['items'].length.to_s
37
+ p '-----------------------------'
38
+
39
+ raise 'Failure retrieving campaigns' unless getResponse.success?
40
+
41
+ while getResponse.more? do
42
+ p '>>> Continue Retrieve all Campaigns with GetMoreResults'
43
+ getResponse = getCamp.continue
44
+ p 'Retrieve Status: ' + getResponse.status.to_s
45
+ p 'Code: ' + getResponse.code.to_s
46
+ p 'Message: ' + getResponse.message.to_s
47
+ p 'MoreResults: ' + getResponse.more?.to_s
48
+ p 'Results(Items) Length: ' + getResponse.results['items'].length.to_s
49
+ end
50
+
51
+ # Create a new Campaign
52
+ p '>>> Create a new Campaign'
53
+ postCamp = FuelSDK::Campaign.new
54
+ postCamp.authStub = stubObj
55
+ postCamp.props = {"name" => "RubySDKCreatedForTest1", "description"=> "RubySDKCreatedForTest", "color"=>"FF9933", "favorite"=>"false"}
56
+ postResponse = postCamp.post
57
+ p 'Post Status: ' + postResponse.status.to_s
58
+ p 'Code: ' + postResponse.code.to_s
59
+ p 'Message: ' + postResponse.message.to_s
60
+ p 'Results: ' + postResponse.results.to_json
61
+ p '-----------------------------'
62
+
63
+ raise 'Failure creating campaign' unless postResponse.success?
64
+
65
+ IDOfpostCampaign = postResponse.results['id']
66
+
67
+ # Retrieve the new Campaign
68
+ p '>>> Retrieve the new Campaign'
69
+ getCamp = FuelSDK::Campaign.new
70
+ getCamp.authStub = stubObj
71
+ getCamp.props = {"id" => IDOfpostCampaign}
72
+ getResponse = getCamp.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 'Results: ' + getResponse.results.to_json
77
+ p '-----------------------------'
78
+
79
+ raise 'Failure retrieving campaign' unless getResponse.success?
80
+
81
+ # Update the new Campaign
82
+ p '>>> Update the new Campaign'
83
+ patchCamp = FuelSDK::Campaign.new
84
+ patchCamp.authStub = stubObj
85
+ patchCamp.props = {"id"=> IDOfpostCampaign, "name" => "RubySDKCreated-Updated!"}
86
+ patchResponse = patchCamp.patch
87
+ p 'Patch Status: ' + patchResponse.status.to_s
88
+ p 'Code: ' + patchResponse.code.to_s
89
+ p 'Message: ' + patchResponse.message.to_s
90
+ p 'Results: ' + patchResponse.results.to_json
91
+ p '-----------------------------'
92
+
93
+ raise 'Failure updating campaign' unless patchResponse.success?
94
+
95
+ # Retrieve the updated Campaign
96
+ p '>>> Retrieve the updated Campaign'
97
+ getCamp = FuelSDK::Campaign.new
98
+ getCamp.authStub = stubObj
99
+ getCamp.props = {"id" => IDOfpostCampaign}
100
+ getResponse = getCamp.get
101
+ p 'Retrieve Status: ' + getResponse.status.to_s
102
+ p 'Code: ' + getResponse.code.to_s
103
+ p 'Message: ' + getResponse.message.to_s
104
+ p 'Results: ' + getResponse.results.to_json
105
+ p '-----------------------------'
106
+
107
+ raise 'Failure retrieving campaign' unless getResponse.success?
108
+
109
+ # Create a new Campaign Asset
110
+ p '>>> Create a new Campaign Asset'
111
+ postCampAsset = FuelSDK::Campaign::Asset.new
112
+ postCampAsset.authStub = stubObj
113
+ postCampAsset.props = {"id" => IDOfpostCampaign, "ids"=> [ExampleAssetItemID], "type"=> ExampleAssetType}
114
+ postResponse = postCampAsset.post
115
+ p 'Post Status: ' + postResponse.status.to_s
116
+ p 'Code: ' + postResponse.code.to_s
117
+ p 'Message: ' + postResponse.message.to_s
118
+ p 'Results: ' + postResponse.results.to_json
119
+ p '-----------------------------'
120
+
121
+ raise 'Failure creating campaign assets' unless postResponse.success?
122
+
123
+ IDOfpostCampaignAsset = postResponse.results[0]['id']
124
+
125
+ # Retrieve all Campaign Asset for a campaign
126
+ p '>>> Retrieve all Campaign Asset for a Campaign'
127
+ getCampAsset = FuelSDK::Campaign::Asset.new
128
+ getCampAsset.authStub = stubObj
129
+ getCampAsset.props = {"id" => IDOfpostCampaign}
130
+ getResponse = getCampAsset.get
131
+ p 'Retrieve Status: ' + getResponse.status.to_s
132
+ p 'Code: ' + getResponse.code.to_s
133
+ p 'Message: ' + getResponse.message.to_s
134
+ p 'Results: ' + getResponse.results.inspect
135
+ p '-----------------------------'
136
+
137
+ raise 'Failure retrieving campaign assets' unless getResponse.success?
138
+
139
+ # Retrieve a single new Campaign Asset
140
+ p '>>> Retrieve a single new Campaign Asset'
141
+ getCampAsset = FuelSDK::Campaign::Asset.new
142
+ getCampAsset.authStub = stubObj
143
+ getCampAsset.props = {"id" => IDOfpostCampaign, "assetId" => IDOfpostCampaignAsset}
144
+ getResponse = getCampAsset.get
145
+ p 'Retrieve Status: ' + getResponse.status.to_s
146
+ p 'Code: ' + getResponse.code.to_s
147
+ p 'Message: ' + getResponse.message.to_s
148
+ p 'Results: ' + getResponse.results.inspect
149
+ p '-----------------------------'
150
+
151
+ raise 'Failure retrieving campaign asset' unless getResponse.success?
152
+
153
+ # Delete the new Campaign Asset
154
+ p '>>> Delete the new Campaign Asset'
155
+ deleteCampAsset = FuelSDK::Campaign::Asset.new
156
+ deleteCampAsset.authStub = stubObj
157
+ deleteCampAsset.props = {"id" => IDOfpostCampaign, "assetId"=> IDOfpostCampaignAsset}
158
+ deleteResponse = deleteCampAsset.delete
159
+ p 'Delete Status: ' + deleteResponse.status.to_s
160
+ p 'Code: ' + deleteResponse.code.to_s
161
+ p 'Message: ' + deleteResponse.message.to_s
162
+ p 'Results: ' + deleteResponse.results.to_json
163
+ p '-----------------------------'
164
+
165
+ raise 'Failure deleting campaign asset' unless deleteResponse.success?
166
+
167
+ # Get a single a new Campaign Asset to confirm deletion
168
+ p '>>> Get a single a new Campaign Asset to confirm deletion'
169
+ getCampAsset = FuelSDK::Campaign::Asset.new
170
+ getCampAsset.authStub = stubObj
171
+ getCampAsset.props = {"id" => IDOfpostCampaign}
172
+ getResponse = getCampAsset.get
173
+ p 'Retrieve Status: ' + getResponse.status.to_s
174
+ p 'Code: ' + getResponse.code.to_s
175
+ p 'Message: ' + getResponse.message.to_s
176
+ p 'Results: ' + getResponse.results.inspect
177
+ p '-----------------------------'
178
+
179
+ raise 'Failure retrieving campaign asset' unless getResponse.success?
180
+ raise 'Failure retrieving campaign asset' unless getResponse.results['totalCount'] == 0
181
+
182
+ rescue => e
183
+ p "Caught exception: #{e.message}"
184
+ p e.backtrace
185
+
186
+ ensure
187
+ # Delete the new Campaign
188
+ p '>>> Delete the new Campaign'
189
+ deleteCamp = FuelSDK::Campaign.new
190
+ deleteCamp.authStub = stubObj
191
+ deleteCamp.props = {"id"=> IDOfpostCampaign}
192
+ deleteResponse = deleteCamp.delete
193
+ p 'Delete Status: ' + deleteResponse.status.to_s
194
+ p 'Code: ' + deleteResponse.code.to_s
195
+ p 'Message: ' + deleteResponse.message.to_s
196
+ p 'Results: ' + deleteResponse.results.to_json
197
+ p '-----------------------------'
198
+
199
+ raise 'Failure deleting campaign asset' unless deleteResponse.success?
200
+
201
+ p '>>> Delete List'
202
+ deleteSub = FuelSDK::List.new()
203
+ deleteSub.authStub = stubObj
204
+ deleteSub.props = {"ID" => ExampleAssetItemID}
205
+ deleteResponse = deleteSub.delete
206
+ p 'Delete Status: ' + deleteResponse.status.to_s
207
+ p 'Code: ' + deleteResponse.code.to_s
208
+ p 'Message: ' + deleteResponse.message.to_s
209
+ p 'Results Length: ' + deleteResponse.results.length.to_s
210
+ p 'Results: ' + deleteResponse.results.to_s
211
+ end