Class: ConstantContact::Services::EmailMarketingService

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

Class Method Summary collapse

Class Method Details

.add_campaign(campaign) ⇒ Campaign

Create a new campaign

Parameters:

  • campaign (Campaign)
    • Campaign to be created

Returns:

  • (Campaign)


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

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)


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

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)


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

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)


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

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>)


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

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)


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

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