Class: Mailtrap::EmailCampaignsAPI
- Inherits:
-
Object
- Object
- Mailtrap::EmailCampaignsAPI
- Includes:
- BaseAPI
- Defined in:
- lib/mailtrap/email_campaigns_api.rb
Instance Attribute Summary collapse
-
#client ⇒ Object
readonly
Returns the value of attribute client.
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.
28 29 30 |
# File 'lib/mailtrap/email_campaigns_api.rb', line 28 def initialize(client = Mailtrap::Client.new) @client = client end |
Instance Attribute Details
#client ⇒ Object (readonly)
Returns the value of attribute client.
25 26 27 |
# File 'lib/mailtrap/email_campaigns_api.rb', line 25 def client @client end |
Instance Method Details
#cancel(email_campaign_id) ⇒ EmailCampaign
Cancels a scheduled campaign, returning it to the draft state
137 138 139 |
# File 'lib/mailtrap/email_campaigns_api.rb', line 137 def cancel(email_campaign_id) perform_action(email_campaign_id, :cancel) end |
#create(options) ⇒ EmailCampaign
Creates a new email campaign in the draft state
78 79 80 |
# File 'lib/mailtrap/email_campaigns_api.rb', line 78 def create() base_create() end |
#delete(email_campaign_id) ⇒ nil
Deletes an email campaign. Only a campaign in the draft state can be deleted.
110 111 112 |
# File 'lib/mailtrap/email_campaigns_api.rb', line 110 def delete(email_campaign_id) base_delete(email_campaign_id) end |
#get(email_campaign_id) ⇒ EmailCampaign
Retrieves a specific email campaign
56 57 58 |
# File 'lib/mailtrap/email_campaigns_api.rb', line 56 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
38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/mailtrap/email_campaigns_api.rb', line 38 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
154 155 156 |
# File 'lib/mailtrap/email_campaigns_api.rb', line 154 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.
129 130 131 |
# File 'lib/mailtrap/email_campaigns_api.rb', line 129 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
118 119 120 |
# File 'lib/mailtrap/email_campaigns_api.rb', line 118 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.
165 166 167 168 169 170 171 172 |
# File 'lib/mailtrap/email_campaigns_api.rb', line 165 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
146 147 148 |
# File 'lib/mailtrap/email_campaigns_api.rb', line 146 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.
102 103 104 |
# File 'lib/mailtrap/email_campaigns_api.rb', line 102 def update(email_campaign_id, ) base_update(email_campaign_id, ) end |