Class: ConstantContact::Services::EmailMarketingService

Inherits:
BaseService
  • Object
show all
Defined in:
lib/constantcontact/services/email_marketing_service.rb

Instance Attribute Summary

Attributes inherited from BaseService

#api_client

Instance Method Summary collapse

Methods inherited from BaseService

#initialize

Constructor Details

This class inherits a constructor from ConstantContact::Services::BaseService

Instance Method Details

#add_campaign(campaign) ⇒ Campaign

Create a new campaign

Parameters:

  • campaign (Campaign)
    • Campaign to be created

Returns:

  • (Campaign)


14
15
16
17
18
19
20
# File 'lib/constantcontact/services/email_marketing_service.rb', line 14

def add_campaign(campaign)
  url = Util::Config.get('endpoints.base_url') + Util::Config.get('endpoints.campaigns')
  url = build_url(url)
  payload = campaign.to_json
  response = RestClient.post(url, payload, get_headers())
  Components::Campaign.create(JSON.parse(response.body))
end

#delete_campaign(campaign_id) ⇒ Boolean

Delete an email campaign

Parameters:

  • campaign_id (Integer)
    • Valid campaign id

Returns:

  • (Boolean)


69
70
71
72
73
74
75
# File 'lib/constantcontact/services/email_marketing_service.rb', line 69

def delete_campaign(campaign_id)
  url = Util::Config.get('endpoints.base_url') +
        sprintf(Util::Config.get('endpoints.campaign'), campaign_id)
  url = build_url(url)
  response = RestClient.delete(url, get_headers())
  response.code == 204
end

#get_campaign(campaign_id) ⇒ Campaign

Get campaign details for a specific campaign

Parameters:

  • campaign_id (Integer)
    • Valid campaign id

Returns:

  • (Campaign)


45
46
47
48
49
50
51
# File 'lib/constantcontact/services/email_marketing_service.rb', line 45

def get_campaign(campaign_id)
  url = Util::Config.get('endpoints.base_url') +
        sprintf(Util::Config.get('endpoints.campaign'), campaign_id)
  url = build_url(url)
  response = RestClient.get(url, get_headers())
  Components::Campaign.create(JSON.parse(response.body))
end

#get_campaign_preview(campaign_id) ⇒ CampaignPreview

Get the preview of the given campaign

Parameters:

  • campaign_id (Integer)
    • Valid campaign id

Returns:

  • (CampaignPreview)


57
58
59
60
61
62
63
# File 'lib/constantcontact/services/email_marketing_service.rb', line 57

def get_campaign_preview(campaign_id)
  url = Util::Config.get('endpoints.base_url') +
        sprintf(Util::Config.get('endpoints.campaign_preview'), campaign_id)
  url = build_url(url)
  response = RestClient.get(url, get_headers())
  Components::CampaignPreview.create(JSON.parse(response.body))
end

#get_campaigns(params = {}) ⇒ ResultSet<Campaign>

Get a set of campaigns

Parameters:

  • params (Hash) (defaults to: {})
    • query parameters to be appended to the request

Returns:

  • (ResultSet<Campaign>)


26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/constantcontact/services/email_marketing_service.rb', line 26

def get_campaigns(params = {})
  url = Util::Config.get('endpoints.base_url') + Util::Config.get('endpoints.campaigns')
  url = build_url(url, params)

  response = RestClient.get(url, get_headers())
  body = JSON.parse(response.body)

  campaigns = []
  body['results'].each do |campaign|
    campaigns << Components::Campaign.create_summary(campaign)
  end

  Components::ResultSet.new(campaigns, body['meta'])
end

#update_campaign(campaign) ⇒ Campaign

Update a specific email campaign

Parameters:

  • campaign (Campaign)
    • Campaign to be updated

Returns:

  • (Campaign)


81
82
83
84
85
86
87
88
# File 'lib/constantcontact/services/email_marketing_service.rb', line 81

def update_campaign(campaign)
  url = Util::Config.get('endpoints.base_url') +
        sprintf(Util::Config.get('endpoints.campaign'), campaign.id)
  url = build_url(url)
  payload = campaign.to_json
  response = RestClient.put(url, payload, get_headers())
  Components::Campaign.create(JSON.parse(response.body))
end