Class: MarketoAPI::Campaigns
- Inherits:
-
ClientProxy
- Object
- ClientProxy
- MarketoAPI::Campaigns
- Defined in:
- lib/marketo_api/campaigns.rb
Overview
Implements Campaign-related calls for Marketo.
Sources
Campaigns have a source, which the Marketo SOAP API provides as MKTOWS
and SALES
. MarketoAPI provides these values as the friendlier values marketo
and sales
, but accepts the standard Maketo SOAP API enumeration values.
Instance Method Summary collapse
-
#for_source(source, name = nil, exact_name = nil) ⇒ Object
Implements href="http://developers.marketo.com/documentation/soap/getcampaignsforsource/">.
-
#request(options = {}) ⇒ Object
Implements href="http://developers.marketo.com/documentation/soap/requestcampaign/">.
-
#schedule(program_name, campaign_name, options = {}) ⇒ Object
Implements href="http://developers.marketo.com/documentation/soap/schedulecampaign/">.
Methods inherited from ClientProxy
Constructor Details
This class inherits a constructor from MarketoAPI::ClientProxy
Instance Method Details
#for_source(source, name = nil, exact_name = nil) ⇒ Object
Implements href="http://developers.marketo.com/documentation/soap/getcampaignsforsource/">.
If possible, prefer the generated methods #for_marketo and #for_sales.
:call-seq:
for_source(source)
for_source(source, name)
for_source(source, name, exact_name)
37 38 39 40 41 42 43 44 45 46 |
# File 'lib/marketo_api/campaigns.rb', line 37 def for_source(source, name = nil, exact_name = nil) call( :get_campaigns_for_source, { source: resolve_source(source), name: name, exactName: exact_name }.delete_if(&MarketoAPI::MINIMIZE_HASH) ) end |
#request(options = {}) ⇒ Object
Implements href="http://developers.marketo.com/documentation/soap/requestcampaign/">.
Parameters
source
-
Required. The source of the campaign.
leads
-
Required. An array of Lead objects or lead keys. If both
leads
andlead
are provided, they will be merged. lead
-
An alias for
leads
. campaign_id
-
The campaign ID to request for the
lead
orleads
. Required ifcampaign_name
orprogram_name
are not provided. campaign_name
-
The campaign name to request for the
lead
orleads
. Required ifcampaign_id
orprogram_name
are not provided. program_name
-
The program name to request for the
lead
orleads
. Required ifcampaign_id
orcampaign_name
are not provided, or ifprogram_tokens
are provided. program_tokens
-
An array of program tokens in the form:
{ attrib: { name: name, value: value } }
This will be made easier to manage in the future.
If possible, prefer #request_marketo and #request_sales.
:call-seq:
request()
98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 |
# File 'lib/marketo_api/campaigns.rb', line 98 def request( = {}) source = .fetch(:source) { :MKTOWS } leads = MarketoAPI.array(.delete(:leads)) + MarketoAPI.array(.delete(:lead)) if leads.empty? raise ArgumentError, ':lead or :leads must be provided' end valid_id = .has_key?(:campaign_id) || .has_key?(:campaign_name) || .has_key?(:program_name) unless valid_id raise ArgumentError, ':campaign_id, :campaign_name, or :program_name must be provided' end if .has_key?(:campaign_id) && .has_key?(:campaign_name) raise ArgumentError, ':campaign_id and :campaign_name are mutually exclusive' end if (tokens = .delete(:program_tokens)) && !tokens.empty? if ![:program_name] raise KeyError, ':program_name must be provided when using :program_tokens' end end REQUEST_PARAM_XF.each { |o, n| [n] = .delete(o) } call( :RequestCampaign, .merge( source: resolve_source(source), leadList: transform_param_list(:get, leads), programTokenList: tokens ).delete_if(&MarketoAPI::MINIMIZE_HASH) ) end |
#schedule(program_name, campaign_name, options = {}) ⇒ Object
Implements href="http://developers.marketo.com/documentation/soap/schedulecampaign/">.
Optional Parameters
run_at
-
The time to run the scheduled campaign.
program_tokens
-
An array of program tokens in the form:
{ attrib: { name: name, value: value } }
This will be made easier to manage in the future.
source
must be marketo
or sales
or the equivalent enumerated values from the SOAP environment (MKTOWS
or SALES
).
:call-seq:
schedule(program_name, campaign_name, = {})
170 171 172 173 174 175 176 177 178 179 180 |
# File 'lib/marketo_api/campaigns.rb', line 170 def schedule(program_name, campaign_name, = {}) call( :ScheduleCampaign, { programName: program_name, campaignName: campaign_name, campaignRunAt: [:run_at], programTokenList: [:program_tokens] }.delete_if(&MarketoAPI::MINIMIZE_HASH) ) end |