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)
30 31 32 33 34 35 36 37 38 39 |
# File 'lib/marketo_api/campaigns.rb', line 30 def for_source(source, name = nil, exact_name = nil) call( :get_campaigns_for_source, { source: resolve_source(source), name: name, exact_name: 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()
91 92 93 94 95 96 97 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 |
# File 'lib/marketo_api/campaigns.rb', line 91 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 call( :request_campaign, .merge( source: resolve_source(source), lead_list: transform_param_list(:get, leads), program_token_list: 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, = {})
161 162 163 164 165 166 167 168 169 170 171 |
# File 'lib/marketo_api/campaigns.rb', line 161 def schedule(program_name, campaign_name, = {}) call( :schedule_campaign, { program_name: program_name, campaign_name: campaign_name, campaign_run_at: [:run_at], program_token_list: [:program_tokens] }.delete_if(&MarketoAPI::MINIMIZE_HASH) ) end |