require 'marketingcloudsdk' require_relative 'sample_helper' begin stubObj = MarketingCloudSDK::Client.new auth # Create List p '>>> Create List' postList = MarketingCloudSDK::List.new postList.authStub = stubObj postList.props = {"ListName" => 'RubyAssetList', "Description" => "This list was created with the RubySDK", "Type" => "Private" } postResponse = postList.post p 'Post Status: ' + postResponse.status.to_s p 'Code: ' + postResponse.code.to_s p 'Message: ' + postResponse.message.to_s p 'Result Count: ' + postResponse.results.length.to_s p 'Results: ' + postResponse.results.inspect raise 'Failure creating list for asset' unless postResponse.success? # In order for this sample to run, it needs to have an asset that it can associate the campaign to ExampleAssetType = "LIST" ExampleAssetItemID = postResponse.results[0][:new_id] # Retrieve all Campaigns p '>>> Retrieve all Campaigns' getCamp = MarketingCloudSDK::Campaign.new getCamp.authStub = stubObj getResponse = getCamp.get p 'Retrieve Status: ' + getResponse.status.to_s p 'Code: ' + getResponse.code.to_s p 'Message: ' + getResponse.message.to_s p 'MoreResults: ' + getResponse.more?.to_s p "Results: #{getResponse.results}" p 'Results(Items) Length: ' + getResponse.results['items'].length.to_s p '-----------------------------' raise 'Failure retrieving campaigns' unless getResponse.success? while getResponse.more? do p '>>> Continue Retrieve all Campaigns with GetMoreResults' getResponse = getCamp.continue p 'Retrieve Status: ' + getResponse.status.to_s p 'Code: ' + getResponse.code.to_s p 'Message: ' + getResponse.message.to_s p 'MoreResults: ' + getResponse.more?.to_s p 'Results(Items) Length: ' + getResponse.results['items'].length.to_s end # Create a new Campaign p '>>> Create a new Campaign' postCamp = MarketingCloudSDK::Campaign.new postCamp.authStub = stubObj postCamp.props = {"name" => "RubySDKCreatedForTest1", "description"=> "RubySDKCreatedForTest", "color"=>"FF9933", "favorite"=>"false"} postResponse = postCamp.post p 'Post Status: ' + postResponse.status.to_s p 'Code: ' + postResponse.code.to_s p 'Message: ' + postResponse.message.to_s p 'Results: ' + postResponse.results.to_json p '-----------------------------' raise 'Failure creating campaign' unless postResponse.success? IDOfpostCampaign = postResponse.results['id'] # Retrieve the new Campaign p '>>> Retrieve the new Campaign' getCamp = MarketingCloudSDK::Campaign.new getCamp.authStub = stubObj getCamp.props = {"id" => IDOfpostCampaign} getResponse = getCamp.get p 'Retrieve Status: ' + getResponse.status.to_s p 'Code: ' + getResponse.code.to_s p 'Message: ' + getResponse.message.to_s p 'Results: ' + getResponse.results.to_json p '-----------------------------' raise 'Failure retrieving campaign' unless getResponse.success? # Update the new Campaign p '>>> Update the new Campaign' patchCamp = MarketingCloudSDK::Campaign.new patchCamp.authStub = stubObj patchCamp.props = {"id"=> IDOfpostCampaign, "name" => "RubySDKCreated-Updated!"} patchResponse = patchCamp.patch p 'Patch Status: ' + patchResponse.status.to_s p 'Code: ' + patchResponse.code.to_s p 'Message: ' + patchResponse.message.to_s p 'Results: ' + patchResponse.results.to_json p '-----------------------------' raise 'Failure updating campaign' unless patchResponse.success? # Retrieve the updated Campaign p '>>> Retrieve the updated Campaign' getCamp = MarketingCloudSDK::Campaign.new getCamp.authStub = stubObj getCamp.props = {"id" => IDOfpostCampaign} getResponse = getCamp.get p 'Retrieve Status: ' + getResponse.status.to_s p 'Code: ' + getResponse.code.to_s p 'Message: ' + getResponse.message.to_s p 'Results: ' + getResponse.results.to_json p '-----------------------------' raise 'Failure retrieving campaign' unless getResponse.success? # Create a new Campaign Asset p '>>> Create a new Campaign Asset' postCampAsset = MarketingCloudSDK::Campaign::Asset.new postCampAsset.authStub = stubObj postCampAsset.props = {"id" => IDOfpostCampaign, "ids"=> [ExampleAssetItemID], "type"=> ExampleAssetType} postResponse = postCampAsset.post p 'Post Status: ' + postResponse.status.to_s p 'Code: ' + postResponse.code.to_s p 'Message: ' + postResponse.message.to_s p 'Results: ' + postResponse.results.to_json p '-----------------------------' raise 'Failure creating campaign assets' unless postResponse.success? IDOfpostCampaignAsset = postResponse.results[0]['id'] # Retrieve all Campaign Asset for a campaign p '>>> Retrieve all Campaign Asset for a Campaign' getCampAsset = MarketingCloudSDK::Campaign::Asset.new getCampAsset.authStub = stubObj getCampAsset.props = {"id" => IDOfpostCampaign} getResponse = getCampAsset.get p 'Retrieve Status: ' + getResponse.status.to_s p 'Code: ' + getResponse.code.to_s p 'Message: ' + getResponse.message.to_s p 'Results: ' + getResponse.results.inspect p '-----------------------------' raise 'Failure retrieving campaign assets' unless getResponse.success? # Retrieve a single new Campaign Asset p '>>> Retrieve a single new Campaign Asset' getCampAsset = MarketingCloudSDK::Campaign::Asset.new getCampAsset.authStub = stubObj getCampAsset.props = {"id" => IDOfpostCampaign, "assetId" => IDOfpostCampaignAsset} getResponse = getCampAsset.get p 'Retrieve Status: ' + getResponse.status.to_s p 'Code: ' + getResponse.code.to_s p 'Message: ' + getResponse.message.to_s p 'Results: ' + getResponse.results.inspect p '-----------------------------' raise 'Failure retrieving campaign asset' unless getResponse.success? # Delete the new Campaign Asset p '>>> Delete the new Campaign Asset' deleteCampAsset = MarketingCloudSDK::Campaign::Asset.new deleteCampAsset.authStub = stubObj deleteCampAsset.props = {"id" => IDOfpostCampaign, "assetId"=> IDOfpostCampaignAsset} deleteResponse = deleteCampAsset.delete p 'Delete Status: ' + deleteResponse.status.to_s p 'Code: ' + deleteResponse.code.to_s p 'Message: ' + deleteResponse.message.to_s p 'Results: ' + deleteResponse.results.to_json p '-----------------------------' raise 'Failure deleting campaign asset' unless deleteResponse.success? # Get a single a new Campaign Asset to confirm deletion p '>>> Get a single a new Campaign Asset to confirm deletion' getCampAsset = MarketingCloudSDK::Campaign::Asset.new getCampAsset.authStub = stubObj getCampAsset.props = {"id" => IDOfpostCampaign} getResponse = getCampAsset.get p 'Retrieve Status: ' + getResponse.status.to_s p 'Code: ' + getResponse.code.to_s p 'Message: ' + getResponse.message.to_s p 'Results: ' + getResponse.results.inspect p '-----------------------------' raise 'Failure retrieving campaign asset' unless getResponse.success? raise 'Failure retrieving campaign asset' unless getResponse.results['totalCount'] == 0 rescue => e p "Caught exception: #{e.message}" p e.backtrace ensure # Delete the new Campaign p '>>> Delete the new Campaign' deleteCamp = MarketingCloudSDK::Campaign.new deleteCamp.authStub = stubObj deleteCamp.props = {"id"=> IDOfpostCampaign} deleteResponse = deleteCamp.delete p 'Delete Status: ' + deleteResponse.status.to_s p 'Code: ' + deleteResponse.code.to_s p 'Message: ' + deleteResponse.message.to_s p 'Results: ' + deleteResponse.results.to_json p '-----------------------------' raise 'Failure deleting campaign asset' unless deleteResponse.success? p '>>> Delete List' deleteSub = MarketingCloudSDK::List.new() deleteSub.authStub = stubObj deleteSub.props = {"ID" => ExampleAssetItemID} deleteResponse = deleteSub.delete p 'Delete Status: ' + deleteResponse.status.to_s p 'Code: ' + deleteResponse.code.to_s p 'Message: ' + deleteResponse.message.to_s p 'Results Length: ' + deleteResponse.results.length.to_s p 'Results: ' + deleteResponse.results.to_s end