Class: Mailtrap::EmailCampaignsAPI
- Inherits:
-
Object
- Object
- Mailtrap::EmailCampaignsAPI
- Includes:
- BaseAPI
- Defined in:
- lib/mailtrap/email_campaigns_api.rb
Instance Attribute Summary
Attributes included from BaseAPI
Instance Method Summary collapse
-
#cancel(email_campaign_id) ⇒ EmailCampaign
Cancels a
scheduledcampaign, returning it to thedraftstate. -
#create(options) ⇒ EmailCampaign
Creates a new email campaign in the
draftstate. -
#delete(email_campaign_id) ⇒ nil
Deletes an email campaign.
-
#get(email_campaign_id) ⇒ EmailCampaign
Retrieves a specific email campaign.
-
#initialize(client = Mailtrap::Client.new) ⇒ EmailCampaignsAPI
constructor
A new instance of EmailCampaignsAPI.
-
#list(per_page: nil, search: nil, token: nil) ⇒ EmailCampaignsListResponse
Lists email campaigns for the account, newest first.
-
#reset(email_campaign_id) ⇒ EmailCampaign
Resets a
scheduledcampaign back to thedraftstate. -
#schedule(email_campaign_id, datetime) ⇒ EmailCampaign
Schedules a
draftcampaign to start sending at a future time. -
#start(email_campaign_id) ⇒ EmailCampaign
Starts sending a
draftcampaign immediately. -
#stats(email_campaign_id, start_date: nil, end_date: nil) ⇒ EmailCampaignStats
Retrieves aggregated performance statistics for an email campaign.
-
#terminate(email_campaign_id) ⇒ EmailCampaign
Terminates a campaign that is currently sending (+started+,
queued, orpaused), aborting the in-flight send. -
#update(email_campaign_id, options) ⇒ EmailCampaign
Updates an existing
draftemail campaign.
Methods included from BaseAPI
Constructor Details
#initialize(client = Mailtrap::Client.new) ⇒ EmailCampaignsAPI
Returns a new instance of EmailCampaignsAPI.
26 27 28 |
# File 'lib/mailtrap/email_campaigns_api.rb', line 26 def initialize(client = Mailtrap::Client.new) @client = client end |
Instance Method Details
#cancel(email_campaign_id) ⇒ EmailCampaign
Cancels a scheduled campaign, returning it to the draft state
135 136 137 |
# File 'lib/mailtrap/email_campaigns_api.rb', line 135 def cancel(email_campaign_id) perform_action(email_campaign_id, :cancel) end |
#create(options) ⇒ EmailCampaign
Creates a new email campaign in the draft state
76 77 78 |
# File 'lib/mailtrap/email_campaigns_api.rb', line 76 def create() base_create() end |
#delete(email_campaign_id) ⇒ nil
Deletes an email campaign. Only a campaign in the draft state can be deleted.
108 109 110 |
# File 'lib/mailtrap/email_campaigns_api.rb', line 108 def delete(email_campaign_id) base_delete(email_campaign_id) end |
#get(email_campaign_id) ⇒ EmailCampaign
Retrieves a specific email campaign
54 55 56 |
# File 'lib/mailtrap/email_campaigns_api.rb', line 54 def get(email_campaign_id) base_get(email_campaign_id) end |
#list(per_page: nil, search: nil, token: nil) ⇒ EmailCampaignsListResponse
Lists email campaigns for the account, newest first
36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/mailtrap/email_campaigns_api.rb', line 36 def list(per_page: nil, search: nil, token: nil) query_params = {} query_params[:per_page] = per_page unless per_page.nil? query_params[:search] = search unless search.nil? query_params[:token] = token unless token.nil? response = client.get(base_path, query_params) EmailCampaignsListResponse.new( data: Array(response[:data]).map { |item| build_entity(item, response_class) }, pagination: response[:pagination] ) end |
#reset(email_campaign_id) ⇒ EmailCampaign
Resets a scheduled campaign back to the draft state
152 153 154 |
# File 'lib/mailtrap/email_campaigns_api.rb', line 152 def reset(email_campaign_id) perform_action(email_campaign_id, :reset) end |
#schedule(email_campaign_id, datetime) ⇒ EmailCampaign
Schedules a draft campaign to start sending at a future time.
The time is reported back in current_state_metadata.scheduled_at.
127 128 129 |
# File 'lib/mailtrap/email_campaigns_api.rb', line 127 def schedule(email_campaign_id, datetime) perform_action(email_campaign_id, :schedule, { datetime: }) end |
#start(email_campaign_id) ⇒ EmailCampaign
Starts sending a draft campaign immediately
116 117 118 |
# File 'lib/mailtrap/email_campaigns_api.rb', line 116 def start(email_campaign_id) perform_action(email_campaign_id, :start) end |
#stats(email_campaign_id, start_date: nil, end_date: nil) ⇒ EmailCampaignStats
Retrieves aggregated performance statistics for an email campaign. By default statistics are aggregated since the campaign was last started.
163 164 165 166 167 168 169 170 |
# File 'lib/mailtrap/email_campaigns_api.rb', line 163 def stats(email_campaign_id, start_date: nil, end_date: nil) query_params = {} query_params[:start_date] = start_date unless start_date.nil? query_params[:end_date] = end_date unless end_date.nil? response = client.get("#{base_path}/#{email_campaign_id}/stats", query_params) build_entity(response[:data], EmailCampaignStats) end |
#terminate(email_campaign_id) ⇒ EmailCampaign
Terminates a campaign that is currently sending (+started+, queued, or paused),
aborting the in-flight send
144 145 146 |
# File 'lib/mailtrap/email_campaigns_api.rb', line 144 def terminate(email_campaign_id) perform_action(email_campaign_id, :terminate) end |
#update(email_campaign_id, options) ⇒ EmailCampaign
Updates an existing draft email campaign. Only the provided attributes are changed;
template_attributes sub-fields are also updated partially, in place.
100 101 102 |
# File 'lib/mailtrap/email_campaigns_api.rb', line 100 def update(email_campaign_id, ) base_update(email_campaign_id, ) end |