constantcontact 2.1.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f28974a36aa166d1ec1e5aa197fb2d528ccd244d
4
- data.tar.gz: a3343897602d9c14ba3a09d4aadbf4383f8917f0
3
+ metadata.gz: c9bdb8c678b4503bddf05f8aebb1ae8b0c36425d
4
+ data.tar.gz: 74a762fd6f5a6eda1d050af11f41729eb18592f5
5
5
  SHA512:
6
- metadata.gz: e928981912c3b26ae556ede64e13dd75a421dbf75a84ad60f0bbfda6ad1ac2182381732ccf5ce3e54bb12249feb13322b2bd5804f2e1b3fa7be920630847b59e
7
- data.tar.gz: 4aebc30eb29335a52a6a541ac23b071bac5bf02f55bcd7aa469d6c8a124fde72d19a76e3c1e674b5f919d54bd7e2672fd77d5942cb66633ef21ec92740780dd0
6
+ metadata.gz: c30748e1c437d42217acd0f109152cfbe66a655f41d71821690db3b82547a7a18b03c6a428af1ddfdf832a1a3da4481992bd61d7d8670e9fabc5cebb6b60ba4f
7
+ data.tar.gz: 63c58d9f0520ea1d9f191e0aec12c52098d8d65779e8cee4cadc91e8ddad2a099d6f4b1c50a5b45f7ead77d081f478a11b28d61d022e1adca6e68943d419a421
data/README.md CHANGED
@@ -9,7 +9,7 @@ Installation
9
9
  ====
10
10
  Via bundler:
11
11
  ```ruby
12
- gem 'constantcontact', '~> 2.1.0'
12
+ gem 'constantcontact', '~> 2.2.0'
13
13
  ```
14
14
  Otherwise:
15
15
  ```bash
@@ -5,12 +5,12 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "constantcontact"
8
- s.version = '2.1.0'
8
+ s.version = '2.2.0'
9
9
  s.platform = Gem::Platform::RUBY
10
10
  s.authors = ["ConstantContact"]
11
11
  s.homepage = "http://www.constantcontact.com"
12
12
  s.summary = %q{Constant Contact SDK for Ruby}
13
- s.email = "apisupport@constantcontact.com"
13
+ s.email = "webservices@constantcontact.com"
14
14
  s.description = "Ruby library for interactions with Constant Contact v2 API"
15
15
  s.license = "MIT"
16
16
 
@@ -39,6 +39,7 @@ module ConstantContact
39
39
  autoload :Note, 'constantcontact/components/contacts/note'
40
40
  autoload :ClickThroughDetails, 'constantcontact/components/email_marketing/click_through_details'
41
41
  autoload :Campaign, 'constantcontact/components/email_marketing/campaign'
42
+ autoload :CampaignPreview, 'constantcontact/components/email_marketing/campaign_preview'
42
43
  autoload :MessageFooter, 'constantcontact/components/email_marketing/message_footer'
43
44
  autoload :Schedule, 'constantcontact/components/email_marketing/schedule'
44
45
  autoload :TestSend, 'constantcontact/components/email_marketing/test_send'
@@ -191,6 +191,14 @@ module ConstantContact
191
191
  end
192
192
 
193
193
 
194
+ # Get the preview of an existing campaign
195
+ # @param [Integer] campaign_id - Valid campaign id
196
+ # @return [CampaignPreview]
197
+ def get_email_campaign_preview(campaign_id)
198
+ Services::EmailMarketingService.get_campaign_preview(campaign_id)
199
+ end
200
+
201
+
194
202
  # Delete an individual campaign
195
203
  # @param [Mixed] campaign - Id of a campaign or a Campaign object
196
204
  # @raise IllegalArgumentException - if a Campaign object or campaign id is not passed
@@ -90,7 +90,7 @@ module ConstantContact
90
90
  used_columns << Util::Config.get('activities_columns.city')
91
91
  end
92
92
 
93
- if !address.state_code.nil?
93
+ if !address.state_code.nil? || !address.state.nil?
94
94
  used_columns << Util::Config.get('activities_columns.state')
95
95
  end
96
96
 
@@ -7,7 +7,7 @@
7
7
  module ConstantContact
8
8
  module Components
9
9
  class Address < Component
10
- attr_accessor :id, :line1, :line2, :line3, :city, :address_type, :state_code,
10
+ attr_accessor :id, :line1, :line2, :line3, :city, :address_type, :state, :state_code,
11
11
  :country_code, :postal_code, :sub_postal_code
12
12
 
13
13
  # Factory method to create an Address object from a json string
@@ -1,5 +1,5 @@
1
1
  #
2
- # email_campaign.rb
2
+ # campaign.rb
3
3
  # ConstantContact
4
4
  #
5
5
  # Copyright (c) 2013 Constant Contact. All rights reserved.
@@ -16,7 +16,7 @@ module ConstantContact
16
16
  :click_through_details, :permalink_url
17
17
 
18
18
 
19
- # Factory method to create an EmailCampaign object from an array
19
+ # Factory method to create a Campaign object from an array
20
20
  # @param [Hash] props - properties to create object from
21
21
  # @return [Campaign]
22
22
  def self.create(props)
@@ -0,0 +1,29 @@
1
+ #
2
+ # campaign_preview.rb
3
+ # ConstantContact
4
+ #
5
+ # Copyright (c) 2013 Constant Contact. All rights reserved.
6
+
7
+ module ConstantContact
8
+ module Components
9
+ class CampaignPreview < Component
10
+ attr_accessor :from_email, :preview_email_content, :preview_text_content,
11
+ :reply_to_email, :subject
12
+
13
+
14
+ # Factory method to create a CampaignPreview object from an array
15
+ # @param [Hash] props - properties to create object from
16
+ # @return [CampaignPreview]
17
+ def self.create(props)
18
+ obj = CampaignPreview.new
19
+ if props
20
+ props.each do |key, value|
21
+ obj.send("#{key}=", value) if obj.respond_to? key
22
+ end
23
+ end
24
+ obj
25
+ end
26
+
27
+ end
28
+ end
29
+ end
@@ -52,6 +52,18 @@ module ConstantContact
52
52
  end
53
53
 
54
54
 
55
+ # Get the preview of the given campaign
56
+ # @param [Integer] campaign_id - Valid campaign id
57
+ # @return [CampaignPreview]
58
+ def get_campaign_preview(campaign_id)
59
+ url = Util::Config.get('endpoints.base_url') +
60
+ sprintf(Util::Config.get('endpoints.campaign_preview'), campaign_id)
61
+ url = build_url(url)
62
+ response = RestClient.get(url, get_headers())
63
+ Components::CampaignPreview.create(JSON.parse(response.body))
64
+ end
65
+
66
+
55
67
  # Delete an email campaign
56
68
  # @param [Integer] campaign_id - Valid campaign id
57
69
  # @return [Boolean]
@@ -35,6 +35,7 @@ module ConstantContact
35
35
 
36
36
  :campaigns => 'emailmarketing/campaigns',
37
37
  :campaign => 'emailmarketing/campaigns/%s',
38
+ :campaign_preview => 'emailmarketing/campaigns/%s/preview',
38
39
  :campaign_schedules => 'emailmarketing/campaigns/%s/schedules',
39
40
  :campaign_schedule => 'emailmarketing/campaigns/%s/schedules/%s',
40
41
  :campaign_test_sends => 'emailmarketing/campaigns/%s/tests',
@@ -7,6 +7,6 @@
7
7
  module ConstantContact
8
8
  module SDK
9
9
  # Gem version
10
- VERSION = "2.1.0"
10
+ VERSION = "2.2.0"
11
11
  end
12
12
  end
@@ -729,6 +729,20 @@ describe ConstantContact::Api do
729
729
  end
730
730
  end
731
731
 
732
+ describe "#get_email_campaign_preview" do
733
+ it "gets the preview of an existing campaign" do
734
+ json_response = load_file('email_campaign_preview_response.json')
735
+ net_http_resp = Net::HTTPResponse.new(1.0, 200, 'OK')
736
+
737
+ response = RestClient::Response.create(json_response, net_http_resp, {}, @request)
738
+ RestClient.stub(:get).and_return(response)
739
+
740
+ campaign_preview = @api.get_email_campaign_preview(1)
741
+ campaign_preview.should be_kind_of(ConstantContact::Components::CampaignPreview)
742
+ campaign_preview.subject.should eq('Subject Test')
743
+ end
744
+ end
745
+
732
746
  describe "#add_email_campaign" do
733
747
  it "creates a new campaign" do
734
748
  json = load_file('email_campaign_response.json')
@@ -40,6 +40,20 @@ describe ConstantContact::Services::EmailMarketingService do
40
40
  end
41
41
  end
42
42
 
43
+ describe "#get_campaign_preview" do
44
+ it "gets the preview of the given campaign" do
45
+ json_response = load_file('email_campaign_preview_response.json')
46
+ net_http_resp = Net::HTTPResponse.new(1.0, 200, 'OK')
47
+
48
+ response = RestClient::Response.create(json_response, net_http_resp, {}, @request)
49
+ RestClient.stub(:get).and_return(response)
50
+
51
+ campaign_preview = ConstantContact::Services::EmailMarketingService.get_campaign_preview(1)
52
+ campaign_preview.should be_kind_of(ConstantContact::Components::CampaignPreview)
53
+ campaign_preview.subject.should eq('Subject Test')
54
+ end
55
+ end
56
+
43
57
  describe "#add_campaign" do
44
58
  it "adds a campaign" do
45
59
  json = load_file('email_campaign_response.json')
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: constantcontact
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ConstantContact
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-26 00:00:00.000000000 Z
11
+ date: 2015-08-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client
@@ -85,7 +85,7 @@ dependencies:
85
85
  - !ruby/object:Gem::Version
86
86
  version: '2.14'
87
87
  description: Ruby library for interactions with Constant Contact v2 API
88
- email: apisupport@constantcontact.com
88
+ email: webservices@constantcontact.com
89
89
  executables: []
90
90
  extensions: []
91
91
  extra_rdoc_files: []
@@ -113,6 +113,7 @@ files:
113
113
  - lib/constantcontact/components/contacts/email_address.rb
114
114
  - lib/constantcontact/components/contacts/note.rb
115
115
  - lib/constantcontact/components/email_marketing/campaign.rb
116
+ - lib/constantcontact/components/email_marketing/campaign_preview.rb
116
117
  - lib/constantcontact/components/email_marketing/click_through_details.rb
117
118
  - lib/constantcontact/components/email_marketing/message_footer.rb
118
119
  - lib/constantcontact/components/email_marketing/schedule.rb