sfmc-fuelsdk-ruby 1.3.0 → 1.3.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.
Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/.github/ISSUE_TEMPLATE/bug_report.md +39 -39
  3. data/.github/ISSUE_TEMPLATE/feature_request.md +20 -20
  4. data/.gitignore +29 -29
  5. data/Gemfile +3 -3
  6. data/Gemfile.lock +104 -92
  7. data/Guardfile +8 -8
  8. data/LICENSE.md +13 -13
  9. data/README.md +200 -194
  10. data/Rakefile +1 -1
  11. data/lib/marketingcloudsdk.rb +74 -74
  12. data/lib/marketingcloudsdk/client.rb +395 -395
  13. data/lib/marketingcloudsdk/http_request.rb +118 -118
  14. data/lib/marketingcloudsdk/objects.rb +757 -757
  15. data/lib/marketingcloudsdk/rest.rb +118 -118
  16. data/lib/marketingcloudsdk/soap.rb +296 -296
  17. data/lib/marketingcloudsdk/targeting.rb +99 -99
  18. data/lib/marketingcloudsdk/utils.rb +47 -47
  19. data/lib/marketingcloudsdk/version.rb +39 -39
  20. data/lib/new.rb +1240 -1240
  21. data/marketingcloudsdk.gemspec +30 -30
  22. data/samples/sample-AddSubscriberToList.rb +56 -56
  23. data/samples/sample-CreateAndStartDataExtensionImport.rb +29 -29
  24. data/samples/sample-CreateAndStartListImport.rb +27 -27
  25. data/samples/sample-CreateContentAreas.rb +48 -48
  26. data/samples/sample-CreateDataExtensions.rb +54 -54
  27. data/samples/sample-CreateProfileAttributes.rb +48 -48
  28. data/samples/sample-SendEmailToDataExtension.rb +23 -23
  29. data/samples/sample-SendEmailToList.rb +23 -23
  30. data/samples/sample-SendTriggeredSends.rb +30 -30
  31. data/samples/sample-bounceevent.rb +70 -70
  32. data/samples/sample-campaign.rb +211 -211
  33. data/samples/sample-clickevent.rb +71 -71
  34. data/samples/sample-contentarea.rb +122 -122
  35. data/samples/sample-dataextension.rb +209 -209
  36. data/samples/sample-directverb.rb +54 -54
  37. data/samples/sample-email.rb +122 -122
  38. data/samples/sample-email.senddefinition.rb +134 -134
  39. data/samples/sample-folder.rb +143 -143
  40. data/samples/sample-import.rb +103 -103
  41. data/samples/sample-list.rb +105 -105
  42. data/samples/sample-list.subscriber.rb +97 -97
  43. data/samples/sample-openevent.rb +70 -70
  44. data/samples/sample-profileattribute.rb +56 -56
  45. data/samples/sample-sentevent.rb +70 -70
  46. data/samples/sample-subscriber.rb +135 -135
  47. data/samples/sample-triggeredsend.rb +129 -129
  48. data/samples/sample-unsubevent.rb +72 -72
  49. data/samples/sample_helper.rb.template +10 -10
  50. data/spec/client_spec.rb +416 -416
  51. data/spec/default_values_fallback_spec.rb +30 -30
  52. data/spec/helper_funcs_spec.rb +11 -11
  53. data/spec/http_request_spec.rb +61 -61
  54. data/spec/objects_helper_spec.rb +32 -32
  55. data/spec/objects_spec.rb +484 -484
  56. data/spec/public_or_web_integration_credentials.rb.template +11 -11
  57. data/spec/rest_spec.rb +48 -48
  58. data/spec/soap_spec.rb +140 -140
  59. data/spec/spec_helper.rb +14 -14
  60. data/spec/targeting_spec.rb +44 -44
  61. metadata +14 -27
@@ -1,30 +1,30 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'marketingcloudsdk/version'
5
-
6
- Gem::Specification.new do |spec|
7
- spec.name = "sfmc-fuelsdk-ruby"
8
- spec.version = MarketingCloudSDK::VERSION
9
- spec.authors = ["Salesforce"]
10
- spec.email = ["mcsdkadmin@salesforce.com"]
11
- spec.description = %q{API wrapper for SOAP and REST API with Salesforce Marketing Cloud (ExactTarget)}
12
- spec.summary = %q{Fuel Client Library for Ruby}
13
- spec.homepage = "https://github.com/ExactTarget/FuelSDK-Ruby"
14
- spec.license = ""
15
-
16
- spec.files = `git ls-files`.split($/)
17
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
- spec.test_files = spec.files.grep(%r{^(samples|test|spec|features)/})
19
- spec.require_paths = ["lib"]
20
-
21
- spec.add_development_dependency "bundler","~> 1.3"
22
- spec.add_development_dependency 'rake','~>0.9'
23
- spec.add_development_dependency "rspec",'~> 2.0'
24
- spec.add_development_dependency "guard",'~> 1.1'
25
- spec.add_development_dependency "guard-rspec",'~> 2.0'
26
-
27
- spec.add_dependency "savon", "2.2.0"
28
- spec.add_dependency "json", "~>1.8",">= 1.8.1"
29
- spec.add_dependency "jwt", "~>1.0",">= 1.0.0"
30
- end
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'marketingcloudsdk/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "sfmc-fuelsdk-ruby"
8
+ spec.version = MarketingCloudSDK::VERSION
9
+ spec.authors = ["Salesforce"]
10
+ spec.email = ["mcsdkadmin@salesforce.com"]
11
+ spec.description = %q{API wrapper for SOAP and REST API with Salesforce Marketing Cloud (ExactTarget)}
12
+ spec.summary = %q{Fuel Client Library for Ruby}
13
+ spec.homepage = "https://github.com/ExactTarget/FuelSDK-Ruby"
14
+ spec.license = ""
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(samples|test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_development_dependency "bundler","~> 1.3"
22
+ spec.add_development_dependency 'rake','~>0.9'
23
+ spec.add_development_dependency "rspec",'~> 2.0'
24
+ spec.add_development_dependency "guard",'~> 1.1'
25
+ spec.add_development_dependency "guard-rspec",'~> 2.0'
26
+
27
+ spec.add_dependency "savon", ">= 2.12.1"
28
+ spec.add_dependency "json", ">= 2.2.0"
29
+ spec.add_dependency "jwt", ">= 2.1.0"
30
+ end
@@ -1,56 +1,56 @@
1
- require 'marketingcloudsdk'
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
-
1
+ require 'marketingcloudsdk'
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
+
@@ -1,29 +1,29 @@
1
- require 'marketingcloudsdk'
2
- require_relative 'sample_helper'
3
-
4
- begin
5
- myclient = MarketingCloudSDK::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
-
1
+ require 'marketingcloudsdk'
2
+ require_relative 'sample_helper'
3
+
4
+ begin
5
+ myclient = MarketingCloudSDK::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
+
@@ -1,27 +1,27 @@
1
- require 'marketingcloudsdk'
2
- require_relative 'sample_helper'
3
-
4
- begin
5
- myclient = MarketingCloudSDK::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
-
1
+ require 'marketingcloudsdk'
2
+ require_relative 'sample_helper'
3
+
4
+ begin
5
+ myclient = MarketingCloudSDK::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
+
@@ -1,48 +1,48 @@
1
- require 'marketingcloudsdk'
2
- require_relative 'sample_helper'
3
-
4
- begin
5
- myclient = MarketingCloudSDK::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
-
1
+ require 'marketingcloudsdk'
2
+ require_relative 'sample_helper'
3
+
4
+ begin
5
+ myclient = MarketingCloudSDK::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
+
@@ -1,54 +1,54 @@
1
- require 'marketingcloudsdk'
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
-
1
+ require 'marketingcloudsdk'
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
+