require 'marketingcloudsdk' require_relative 'sample_helper' begin stubObj = MarketingCloudSDK::Client.new auth # Retrieve All ContentArea with GetMoreResults p '>>> Retrieve All ContentArea with GetMoreResults' getContent = MarketingCloudSDK::ContentArea.new() getContent.authStub = stubObj getContent.props = ["RowObjectID","ObjectID","ID","CustomerKey","Client.ID","ModifiedDate","CreatedDate","CategoryID","Name","Layout","IsDynamicContent","Content","IsSurvey","IsBlank","Key"] getResponse = getContent.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 Length: ' + getResponse.results.length.to_s #p 'Results: ' + getResponse.results.to_s raise 'Failure retrieving contentarea' unless getResponse.success? while getResponse.more? do p '>>> Continue Retrieve All ContentArea with GetMoreResults' getResponse = getContent.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 'RequestID: ' + getResponse.request_id.to_s p 'Results Length: ' + getResponse.results.length.to_s end NameOfTestContentArea = "RubySDKContentArea" # Create ContentArea p '>>> Create ContentArea' postContent = MarketingCloudSDK::ContentArea.new postContent.authStub = stubObj postContent.props = {"CustomerKey" => NameOfTestContentArea, "Name"=>NameOfTestContentArea, "Content"=> "Some HTML Content Goes here"} postResponse = postContent.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 contentarea' unless postResponse.success? # Retrieve newly created ContentArea p '>>> Retrieve newly created ContentArea' getContent = MarketingCloudSDK::ContentArea.new() getContent.authStub = stubObj getContent.props = ["RowObjectID","ObjectID","ID","CustomerKey","Client.ID","ModifiedDate","CreatedDate","CategoryID","Name","Layout","IsDynamicContent","Content","IsSurvey","IsBlank","Key"] getContent.filter = {'Property' => 'CustomerKey','SimpleOperator' => 'equals','Value' => NameOfTestContentArea} getResponse = getContent.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 Length: ' + getResponse.results.length.to_s p 'Results: ' + getResponse.results.to_s raise 'Failure retrieving contentarea' unless getResponse.success? # Update ContentArea p '>>> Update ContentArea' patchContent = MarketingCloudSDK::ContentArea.new patchContent.authStub = stubObj patchContent.props = {"CustomerKey" => NameOfTestContentArea, "Name"=>NameOfTestContentArea, "Content"=> "Some HTML Content Goes here. NOW WITH NEW CONTENT"} patchResponse = patchContent.patch p 'Patch Status: ' + patchResponse.status.to_s p 'Code: ' + patchResponse.code.to_s p 'Message: ' + patchResponse.message.to_s p 'Result Count: ' + patchResponse.results.length.to_s p 'Results: ' + patchResponse.results.inspect raise 'Failure updating contentarea' unless patchResponse.success? # Retrieve updated ContentArea p '>>> Retrieve updated ContentArea' getContent = MarketingCloudSDK::ContentArea.new() getContent.authStub = stubObj getContent.props = ["RowObjectID","ObjectID","ID","CustomerKey","Client.ID","ModifiedDate","CreatedDate","CategoryID","Name","Layout","IsDynamicContent","Content","IsSurvey","IsBlank","Key"] getContent.filter = {'Property' => 'CustomerKey','SimpleOperator' => 'equals','Value' => NameOfTestContentArea} getResponse = getContent.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 Length: ' + getResponse.results.length.to_s p 'Results: ' + getResponse.results.to_s raise 'Failure retrieving contentarea' unless getResponse.success? # Delete ContentArea p '>>> Delete ContentArea' deleteContent = MarketingCloudSDK::ContentArea.new deleteContent.authStub = stubObj deleteContent.props = {"CustomerKey" => NameOfTestContentArea, "Name"=>NameOfTestContentArea, "Content"=> "Some HTML Content Goes here. NOW WITH NEW CONTENT"} deleteResponse = deleteContent.delete p 'Delete Status: ' + deleteResponse.status.to_s p 'Code: ' + deleteResponse.code.to_s p 'Message: ' + deleteResponse.message.to_s p 'Result Count: ' + deleteResponse.results.length.to_s p 'Results: ' + deleteResponse.results.inspect raise 'Failure deleting contentarea' unless deleteResponse.success? # Retrieve ContentArea to confirm deletion p '>>> Retrieve ContentArea to confirm deletion' getContent = MarketingCloudSDK::ContentArea.new() getContent.authStub = stubObj getContent.props = ["RowObjectID","ObjectID","ID","CustomerKey","Client.ID","ModifiedDate","CreatedDate","CategoryID","Name","Layout","IsDynamicContent","Content","IsSurvey","IsBlank","Key"] getContent.filter = {'Property' => 'CustomerKey','SimpleOperator' => 'equals','Value' => NameOfTestContentArea} getResponse = getContent.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 Length: ' + getResponse.results.length.to_s p 'Results: ' + getResponse.results.to_s raise 'Failure retrieving contentarea' unless getResponse.success? rescue => e p "Caught exception: #{e.message}" p e.backtrace end