module SendGrid4r::REST::MarketingCampaigns

SendGrid Web API v3 MarketingCampaigns

SendGrid Web API v3 MarketingCampaigns

Constants

Address
Campaign
Campaigns
Sender
Verified

Public Class Methods

create_address(resp) click to toggle source
# File lib/sendgrid4r/rest/marketing_campaigns/senders.rb, line 50
def self.create_address(resp)
  return resp if resp.nil?
  Address.new(resp['email'], resp['name'])
end
create_campaign(resp) click to toggle source
# File lib/sendgrid4r/rest/marketing_campaigns/marketing_campaigns.rb, line 17
def self.create_campaign(resp)
  return resp if resp.nil?
  send_at = Time.at(resp['send_at']) unless resp['send_at'].nil?
  Campaign.new(
    resp['id'], resp['title'], resp['subject'], resp['sender_id'],
    resp['list_ids'], resp['segment_ids'], resp['categories'],
    resp['suppression_group_id'], resp['custom_unsubscribe_url'],
    resp['ip_pool'], resp['html_content'], resp['plain_content'],
    send_at, resp['status']
  )
end
create_campaigns(resp) click to toggle source
# File lib/sendgrid4r/rest/marketing_campaigns/marketing_campaigns.rb, line 29
def self.create_campaigns(resp)
  return resp if resp.nil?
  result = resp['result'].map do |campaign|
    MarketingCampaigns.create_campaign(campaign)
  end
  Campaigns.new(result)
end
create_sender(resp) click to toggle source
# File lib/sendgrid4r/rest/marketing_campaigns/senders.rb, line 30
def self.create_sender(resp)
  return resp if resp.nil?
  from = MarketingCampaigns.create_address(resp['from'])
  reply_to = MarketingCampaigns.create_address(resp['reply_to'])
  verified = MarketingCampaigns.create_verified(resp['verified'])
  Sender.new(
    resp['id'], resp['nickname'], from, reply_to, resp['address'],
    resp['address_2'], resp['city'], resp['state'], resp['zip'],
    resp['country'], verified, Time.at(resp['updated_at']),
    Time.at(resp['created_at']), resp['locked']
  )
end
create_senders(resp) click to toggle source
# File lib/sendgrid4r/rest/marketing_campaigns/senders.rb, line 43
def self.create_senders(resp)
  return resp if resp.nil?
  resp.map do |sender|
    MarketingCampaigns.create_sender(sender)
  end
end
create_verified(resp) click to toggle source
# File lib/sendgrid4r/rest/marketing_campaigns/senders.rb, line 55
def self.create_verified(resp)
  return resp if resp.nil?
  Verified.new(resp['status'], resp['reason'])
end
url(campaign_id = nil) click to toggle source
# File lib/sendgrid4r/rest/marketing_campaigns/marketing_campaigns.rb, line 37
def self.url(campaign_id = nil)
  url = "#{BASE_URL}/campaigns"
  url = "#{url}/#{campaign_id}" unless campaign_id.nil?
  url
end
url_sender(sender_id = nil) click to toggle source
# File lib/sendgrid4r/rest/marketing_campaigns/senders.rb, line 60
def self.url_sender(sender_id = nil)
  url = "#{BASE_URL}/senders"
  url = "#{url}/#{sender_id}" unless sender_id.nil?
  url
end

Public Instance Methods

delete_campaign(campaign_id:, &block) click to toggle source
# File lib/sendgrid4r/rest/marketing_campaigns/marketing_campaigns.rb, line 61
def delete_campaign(campaign_id:, &block)
  endpoint = MarketingCampaigns.url(campaign_id)
  delete(@auth, endpoint, &block)
end
delete_sender(sender_id:, &block) click to toggle source
# File lib/sendgrid4r/rest/marketing_campaigns/senders.rb, line 84
def delete_sender(sender_id:, &block)
  endpoint = MarketingCampaigns.url_sender(sender_id)
  delete(@auth, endpoint, &block)
end
get_campaign(campaign_id:, &block) click to toggle source
# File lib/sendgrid4r/rest/marketing_campaigns/marketing_campaigns.rb, line 55
def get_campaign(campaign_id:, &block)
  endpoint = MarketingCampaigns.url(campaign_id)
  resp = get(@auth, endpoint, &block)
  finish(resp, @raw_resp) { |r| MarketingCampaigns.create_campaign(r) }
end
get_campaigns(&block) click to toggle source
# File lib/sendgrid4r/rest/marketing_campaigns/marketing_campaigns.rb, line 49
def get_campaigns(&block)
  endpoint = MarketingCampaigns.url
  resp = get(@auth, endpoint, &block)
  finish(resp, @raw_resp) { |r| MarketingCampaigns.create_campaigns(r) }
end
get_schedule_time_campaign(campaign_id:, &block) click to toggle source
# File lib/sendgrid4r/rest/marketing_campaigns/marketing_campaigns.rb, line 97
def get_schedule_time_campaign(campaign_id:, &block)
  endpoint = MarketingCampaigns.url(campaign_id)
  endpoint = "#{endpoint}/schedules"
  resp = get(@auth, endpoint, &block)
  finish(resp, @raw_resp) { |r| MarketingCampaigns.create_campaign(r) }
end
get_sender(sender_id:, &block) click to toggle source
# File lib/sendgrid4r/rest/marketing_campaigns/senders.rb, line 94
def get_sender(sender_id:, &block)
  endpoint = MarketingCampaigns.url_sender(sender_id)
  resp = get(@auth, endpoint, &block)
  finish(resp, @raw_resp) { |r| MarketingCampaigns.create_sender(r) }
end
get_senders(&block) click to toggle source
# File lib/sendgrid4r/rest/marketing_campaigns/senders.rb, line 72
def get_senders(&block)
  endpoint = MarketingCampaigns.url_sender
  resp = get(@auth, endpoint, &block)
  finish(resp, @raw_resp) { |r| MarketingCampaigns.create_senders(r) }
end
patch_campaign(campaign_id:, params:, &block) click to toggle source
# File lib/sendgrid4r/rest/marketing_campaigns/marketing_campaigns.rb, line 66
def patch_campaign(campaign_id:, params:, &block)
  endpoint = MarketingCampaigns.url(campaign_id)
  resp = patch(@auth, endpoint, params.to_h, &block)
  finish(resp, @raw_resp) { |r| MarketingCampaigns.create_campaign(r) }
end
patch_sender(sender_id:, params:, &block) click to toggle source
# File lib/sendgrid4r/rest/marketing_campaigns/senders.rb, line 78
def patch_sender(sender_id:, params:, &block)
  endpoint = MarketingCampaigns.url_sender(sender_id)
  resp = patch(@auth, endpoint, params.to_h, &block)
  finish(resp, @raw_resp) { |r| MarketingCampaigns.create_sender(r) }
end
post_campaign(params:, &block) click to toggle source
# File lib/sendgrid4r/rest/marketing_campaigns/marketing_campaigns.rb, line 43
def post_campaign(params:, &block)
  endpoint = MarketingCampaigns.url
  resp = post(@auth, endpoint, params, &block)
  finish(resp, @raw_resp) { |r| MarketingCampaigns.create_campaign(r) }
end
post_sender(params:, &block) click to toggle source
# File lib/sendgrid4r/rest/marketing_campaigns/senders.rb, line 66
def post_sender(params:, &block)
  endpoint = MarketingCampaigns.url_sender
  resp = post(@auth, endpoint, params.to_h, &block)
  finish(resp, @raw_resp) { |r| MarketingCampaigns.create_sender(r) }
end
reschedule_campaign(campaign_id:, send_at:, &block) click to toggle source
# File lib/sendgrid4r/rest/marketing_campaigns/marketing_campaigns.rb, line 88
def reschedule_campaign(campaign_id:, send_at:, &block)
  endpoint = MarketingCampaigns.url(campaign_id)
  endpoint = "#{endpoint}/schedules"
  payload = {}
  payload['send_at'] = send_at.to_i
  resp = patch(@auth, endpoint, payload, &block)
  finish(resp, @raw_resp) { |r| MarketingCampaigns.create_campaign(r) }
end
resend_sender_verification(sender_id:, &block) click to toggle source
# File lib/sendgrid4r/rest/marketing_campaigns/senders.rb, line 89
def resend_sender_verification(sender_id:, &block)
  endpoint = MarketingCampaigns.url_sender(sender_id)
  post(@auth, "#{endpoint}/resend_verification", nil, &block)
end
schedule_campaign(campaign_id:, send_at:, &block) click to toggle source
# File lib/sendgrid4r/rest/marketing_campaigns/marketing_campaigns.rb, line 79
def schedule_campaign(campaign_id:, send_at:, &block)
  endpoint = MarketingCampaigns.url(campaign_id)
  endpoint = "#{endpoint}/schedules"
  payload = {}
  payload['send_at'] = send_at.to_i
  resp = post(@auth, endpoint, payload, &block)
  finish(resp, @raw_resp) { |r| MarketingCampaigns.create_campaign(r) }
end
send_campaign(campaign_id:, &block) click to toggle source
# File lib/sendgrid4r/rest/marketing_campaigns/marketing_campaigns.rb, line 72
def send_campaign(campaign_id:, &block)
  endpoint = MarketingCampaigns.url(campaign_id)
  endpoint = "#{endpoint}/schedules/now"
  resp = post(@auth, endpoint, nil, &block)
  finish(resp, @raw_resp) { |r| MarketingCampaigns.create_campaign(r) }
end
test_campaign(campaign_id:, to:, &block) click to toggle source
# File lib/sendgrid4r/rest/marketing_campaigns/marketing_campaigns.rb, line 110
def test_campaign(campaign_id:, to:, &block)
  endpoint = MarketingCampaigns.url(campaign_id)
  endpoint = "#{endpoint}/schedules/test"
  payload = {}
  payload['to'] = to
  post(@auth, endpoint, payload, &block)
end
unschedule_campaign(campaign_id:, &block) click to toggle source
# File lib/sendgrid4r/rest/marketing_campaigns/marketing_campaigns.rb, line 104
def unschedule_campaign(campaign_id:, &block)
  endpoint = MarketingCampaigns.url(campaign_id)
  endpoint = "#{endpoint}/schedules"
  delete(@auth, endpoint, &block)
end