constantcontact 1.0.2 → 1.1.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.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +127 -136
  3. data/constantcontact.gemspec +4 -3
  4. data/lib/constantcontact.rb +63 -44
  5. data/lib/constantcontact/api.rb +932 -535
  6. data/lib/constantcontact/auth/oauth2.rb +86 -66
  7. data/lib/constantcontact/components/account/verified_email_address.rb +14 -14
  8. data/lib/constantcontact/components/activities/activity.rb +30 -30
  9. data/lib/constantcontact/components/activities/activity_error.rb +14 -14
  10. data/lib/constantcontact/components/activities/add_contacts.rb +1 -1
  11. data/lib/constantcontact/components/activities/add_contacts_import_data.rb +37 -36
  12. data/lib/constantcontact/components/component.rb +25 -0
  13. data/lib/constantcontact/components/contacts/address.rb +12 -12
  14. data/lib/constantcontact/components/contacts/contact.rb +50 -44
  15. data/lib/constantcontact/components/contacts/contact_list.rb +12 -12
  16. data/lib/constantcontact/components/contacts/custom_field.rb +14 -14
  17. data/lib/constantcontact/components/contacts/email_address.rb +14 -14
  18. data/lib/constantcontact/components/contacts/note.rb +13 -13
  19. data/lib/constantcontact/components/email_marketing/campaign.rb +41 -41
  20. data/lib/constantcontact/components/email_marketing/click_through_details.rb +14 -14
  21. data/lib/constantcontact/components/email_marketing/message_footer.rb +14 -14
  22. data/lib/constantcontact/components/email_marketing/schedule.rb +14 -15
  23. data/lib/constantcontact/components/email_marketing/test_send.rb +21 -21
  24. data/lib/constantcontact/components/event_spot/contact.rb +27 -0
  25. data/lib/constantcontact/components/event_spot/event.rb +63 -0
  26. data/lib/constantcontact/components/event_spot/event_track.rb +28 -0
  27. data/lib/constantcontact/components/event_spot/fee.rb +27 -0
  28. data/lib/constantcontact/components/event_spot/guest.rb +31 -0
  29. data/lib/constantcontact/components/event_spot/notification_option.rb +27 -0
  30. data/lib/constantcontact/components/event_spot/promo_code.rb +26 -0
  31. data/lib/constantcontact/components/event_spot/registrant.rb +54 -0
  32. data/lib/constantcontact/components/event_spot/registrant_field.rb +27 -0
  33. data/lib/constantcontact/components/event_spot/registrant_section.rb +34 -0
  34. data/lib/constantcontact/components/event_spot/sale_item.rb +27 -0
  35. data/lib/constantcontact/components/library/file/library_file.rb +27 -0
  36. data/lib/constantcontact/components/library/folder/library_folder.rb +26 -0
  37. data/lib/constantcontact/components/library/info/library_summary.rb +26 -0
  38. data/lib/constantcontact/components/library/info/move_results.rb +26 -0
  39. data/lib/constantcontact/components/library/info/upload_status.rb +26 -0
  40. data/lib/constantcontact/components/tracking/bounce_activity.rb +14 -14
  41. data/lib/constantcontact/components/tracking/click_activity.rb +14 -14
  42. data/lib/constantcontact/components/tracking/forward_activity.rb +14 -14
  43. data/lib/constantcontact/components/tracking/open_activity.rb +14 -14
  44. data/lib/constantcontact/components/tracking/send_activity.rb +14 -14
  45. data/lib/constantcontact/components/tracking/tracking_summary.rb +17 -17
  46. data/lib/constantcontact/components/tracking/unsubscribe_activity.rb +14 -14
  47. data/lib/constantcontact/services/account_service.rb +4 -3
  48. data/lib/constantcontact/services/activity_service.rb +40 -3
  49. data/lib/constantcontact/services/base_service.rb +34 -6
  50. data/lib/constantcontact/services/campaign_tracking_service.rb +20 -20
  51. data/lib/constantcontact/services/contact_service.rb +10 -12
  52. data/lib/constantcontact/services/contact_tracking_service.rb +20 -20
  53. data/lib/constantcontact/services/email_marketing_service.rb +8 -10
  54. data/lib/constantcontact/services/event_spot_service.rb +254 -0
  55. data/lib/constantcontact/services/library_service.rb +297 -0
  56. data/lib/constantcontact/services/list_service.rb +6 -5
  57. data/lib/constantcontact/util/config.rb +135 -117
  58. data/lib/constantcontact/version.rb +1 -1
  59. data/spec/constantcontact/api_spec.rb +1223 -173
  60. data/spec/constantcontact/auth/oauth2_spec.rb +60 -47
  61. data/spec/constantcontact/components/contacts/address_spec.rb +1 -1
  62. data/spec/constantcontact/components/contacts/contact_list_spec.rb +1 -1
  63. data/spec/constantcontact/components/contacts/contact_spec.rb +1 -1
  64. data/spec/constantcontact/components/contacts/email_address_spec.rb +1 -1
  65. data/spec/constantcontact/services/activity_service_spec.rb +201 -0
  66. data/spec/constantcontact/services/base_service_spec.rb +27 -0
  67. data/spec/constantcontact/services/campaign_schedule_service_spec.rb +111 -0
  68. data/spec/constantcontact/services/campaign_tracking_service_spec.rb +127 -0
  69. data/spec/constantcontact/services/contact_service_spec.rb +24 -22
  70. data/spec/constantcontact/services/contact_tracking_service_spec.rb +127 -0
  71. data/spec/constantcontact/services/email_marketing_spec.rb +72 -66
  72. data/spec/constantcontact/services/event_spot_spec.rb +217 -0
  73. data/spec/constantcontact/services/library_service_spec.rb +248 -0
  74. data/spec/constantcontact/services/list_service_spec.rb +33 -17
  75. data/spec/spec_helper.rb +3 -1
  76. metadata +63 -7
@@ -9,61 +9,77 @@ require 'spec_helper'
9
9
  describe ConstantContact::Services::ListService do
10
10
  describe "#get_lists" do
11
11
  it "returns an array of lists" do
12
- json = load_json('lists.json')
12
+ json_response = load_file('lists_response.json')
13
13
  net_http_resp = Net::HTTPResponse.new(1.0, 200, 'OK')
14
14
 
15
- response = RestClient::Response.create(json, net_http_resp, {})
15
+ response = RestClient::Response.create(json_response, net_http_resp, {})
16
16
  RestClient.stub(:get).and_return(response)
17
- lists = ConstantContact::Services::ListService.get_lists('token')
18
- list = lists[0]
19
17
 
18
+ lists = ConstantContact::Services::ListService.get_lists('token')
20
19
  lists.should be_kind_of(Array)
21
- list.should be_kind_of(ConstantContact::Components::ContactList)
20
+ lists.first.should be_kind_of(ConstantContact::Components::ContactList)
21
+ lists.first.name.should eq('General Interest')
22
22
  end
23
23
  end
24
24
 
25
25
  describe "#get_list" do
26
26
  it "returns a list" do
27
- json = load_json('list.json')
27
+ json = load_file('list_response.json')
28
28
  net_http_resp = Net::HTTPResponse.new(1.0, 200, 'OK')
29
29
 
30
30
  response = RestClient::Response.create(json, net_http_resp, {})
31
31
  RestClient.stub(:get).and_return(response)
32
- contact = ConstantContact::Services::ListService.get_list('token', 1)
33
32
 
34
- contact.should be_kind_of(ConstantContact::Components::ContactList)
33
+ list = ConstantContact::Services::ListService.get_list('token', 1)
34
+ list.should be_kind_of(ConstantContact::Components::ContactList)
35
+ list.name.should eq('Monthly Specials')
35
36
  end
36
37
  end
37
38
 
38
39
  describe "#add_list" do
39
40
  it "adds a list" do
40
- json = load_json('list.json')
41
+ json = load_file('list_response.json')
41
42
  net_http_resp = Net::HTTPResponse.new(1.0, 200, 'OK')
42
43
 
43
44
  response = RestClient::Response.create(json, net_http_resp, {})
44
45
  RestClient.stub(:post).and_return(response)
46
+ new_list = ConstantContact::Components::ContactList.create(JSON.parse(json))
47
+
48
+ list = ConstantContact::Services::ListService.add_list('token', new_list)
49
+ list.should be_kind_of(ConstantContact::Components::ContactList)
50
+ list.status.should eq('ACTIVE')
51
+ end
52
+ end
53
+
54
+ describe "#update_list" do
55
+ it "updates a list" do
56
+ json = load_file('list_response.json')
57
+ net_http_resp = Net::HTTPResponse.new(1.0, 200, 'OK')
58
+
59
+ response = RestClient::Response.create(json, net_http_resp, {})
60
+ RestClient.stub(:put).and_return(response)
45
61
  list = ConstantContact::Components::ContactList.create(JSON.parse(json))
46
- added = ConstantContact::Services::ListService.add_list('token', list)
47
62
 
48
- added.should respond_to(:status)
49
- added.status.should eq('ACTIVE')
63
+ result = ConstantContact::Services::ListService.update_list('token', list)
64
+ result.should be_kind_of(ConstantContact::Components::ContactList)
65
+ result.status.should eq('ACTIVE')
50
66
  end
51
67
  end
52
68
 
53
69
  describe "#get_contacts_from_list" do
54
70
  it "returns an array of contacts" do
55
- json_list = load_json('list.json')
56
- json_contacts = load_json('contacts.json')
71
+ json_list = load_file('list_response.json')
72
+ json_contacts = load_file('contacts_response.json')
57
73
  net_http_resp = Net::HTTPResponse.new(1.0, 200, 'OK')
58
74
 
59
75
  response = RestClient::Response.create(json_contacts, net_http_resp, {})
60
76
  RestClient.stub(:get).and_return(response)
61
77
  list = ConstantContact::Components::ContactList.create(JSON.parse(json_list))
62
- contacts = ConstantContact::Services::ListService.get_contacts_from_list('token', list)
63
- contact = contacts.results[0]
64
78
 
79
+ contacts = ConstantContact::Services::ListService.get_contacts_from_list('token', list)
65
80
  contacts.should be_kind_of(ConstantContact::Components::ResultSet)
66
- contact.should be_kind_of(ConstantContact::Components::Contact)
81
+ contacts.results.first.should be_kind_of(ConstantContact::Components::Contact)
82
+ contacts.results.first.fax.should eq('318-978-7575')
67
83
  end
68
84
  end
69
85
  end
data/spec/spec_helper.rb CHANGED
@@ -6,8 +6,10 @@
6
6
 
7
7
  $:.unshift File.join(File.dirname(__FILE__), *%w[.. lib])
8
8
  require 'constantcontact'
9
+ #require 'simplecov'
9
10
 
11
+ #SimpleCov.start
10
12
 
11
- def load_json(file_name)
13
+ def load_file(file_name)
12
14
  json = File.read(File.join(File.dirname(__FILE__), 'fixtures', file_name))
13
15
  end
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: 1.0.2
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ConstantContact
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-07-30 00:00:00.000000000 Z
11
+ date: 2014-01-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: mime-types
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '='
46
+ - !ruby/object:Gem::Version
47
+ version: 1.25.1
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '='
53
+ - !ruby/object:Gem::Version
54
+ version: 1.25.1
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: rspec
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -59,8 +73,9 @@ extensions: []
59
73
  extra_rdoc_files: []
60
74
  files:
61
75
  - .rspec
62
- - constantcontact.gemspec
63
76
  - README.md
77
+ - constantcontact.gemspec
78
+ - lib/constantcontact.rb
64
79
  - lib/constantcontact/api.rb
65
80
  - lib/constantcontact/auth/oauth2.rb
66
81
  - lib/constantcontact/auth/session_data_store.rb
@@ -82,6 +97,22 @@ files:
82
97
  - lib/constantcontact/components/email_marketing/message_footer.rb
83
98
  - lib/constantcontact/components/email_marketing/schedule.rb
84
99
  - lib/constantcontact/components/email_marketing/test_send.rb
100
+ - lib/constantcontact/components/event_spot/contact.rb
101
+ - lib/constantcontact/components/event_spot/event.rb
102
+ - lib/constantcontact/components/event_spot/event_track.rb
103
+ - lib/constantcontact/components/event_spot/fee.rb
104
+ - lib/constantcontact/components/event_spot/guest.rb
105
+ - lib/constantcontact/components/event_spot/notification_option.rb
106
+ - lib/constantcontact/components/event_spot/promo_code.rb
107
+ - lib/constantcontact/components/event_spot/registrant.rb
108
+ - lib/constantcontact/components/event_spot/registrant_field.rb
109
+ - lib/constantcontact/components/event_spot/registrant_section.rb
110
+ - lib/constantcontact/components/event_spot/sale_item.rb
111
+ - lib/constantcontact/components/library/file/library_file.rb
112
+ - lib/constantcontact/components/library/folder/library_folder.rb
113
+ - lib/constantcontact/components/library/info/library_summary.rb
114
+ - lib/constantcontact/components/library/info/move_results.rb
115
+ - lib/constantcontact/components/library/info/upload_status.rb
85
116
  - lib/constantcontact/components/result_set.rb
86
117
  - lib/constantcontact/components/tracking/bounce_activity.rb
87
118
  - lib/constantcontact/components/tracking/click_activity.rb
@@ -102,11 +133,12 @@ files:
102
133
  - lib/constantcontact/services/contact_service.rb
103
134
  - lib/constantcontact/services/contact_tracking_service.rb
104
135
  - lib/constantcontact/services/email_marketing_service.rb
136
+ - lib/constantcontact/services/event_spot_service.rb
137
+ - lib/constantcontact/services/library_service.rb
105
138
  - lib/constantcontact/services/list_service.rb
106
139
  - lib/constantcontact/util/config.rb
107
140
  - lib/constantcontact/util/helpers.rb
108
141
  - lib/constantcontact/version.rb
109
- - lib/constantcontact.rb
110
142
  - spec/constantcontact/api_spec.rb
111
143
  - spec/constantcontact/auth/oauth2_spec.rb
112
144
  - spec/constantcontact/components/contacts/address_spec.rb
@@ -114,8 +146,15 @@ files:
114
146
  - spec/constantcontact/components/contacts/contact_spec.rb
115
147
  - spec/constantcontact/components/contacts/custom_field_spec.rb
116
148
  - spec/constantcontact/components/contacts/email_address_spec.rb
149
+ - spec/constantcontact/services/activity_service_spec.rb
150
+ - spec/constantcontact/services/base_service_spec.rb
151
+ - spec/constantcontact/services/campaign_schedule_service_spec.rb
152
+ - spec/constantcontact/services/campaign_tracking_service_spec.rb
117
153
  - spec/constantcontact/services/contact_service_spec.rb
154
+ - spec/constantcontact/services/contact_tracking_service_spec.rb
118
155
  - spec/constantcontact/services/email_marketing_spec.rb
156
+ - spec/constantcontact/services/event_spot_spec.rb
157
+ - spec/constantcontact/services/library_service_spec.rb
119
158
  - spec/constantcontact/services/list_service_spec.rb
120
159
  - spec/spec_helper.rb
121
160
  homepage: http://www.constantcontact.com
@@ -126,7 +165,6 @@ post_install_message:
126
165
  rdoc_options: []
127
166
  require_paths:
128
167
  - lib
129
- - spec
130
168
  required_ruby_version: !ruby/object:Gem::Requirement
131
169
  requirements:
132
170
  - - '>='
@@ -139,8 +177,26 @@ required_rubygems_version: !ruby/object:Gem::Requirement
139
177
  version: '0'
140
178
  requirements: []
141
179
  rubyforge_project:
142
- rubygems_version: 2.0.3
180
+ rubygems_version: 2.2.1
143
181
  signing_key:
144
182
  specification_version: 4
145
183
  summary: Constant Contact SDK for Ruby
146
- test_files: []
184
+ test_files:
185
+ - spec/constantcontact/api_spec.rb
186
+ - spec/constantcontact/auth/oauth2_spec.rb
187
+ - spec/constantcontact/components/contacts/address_spec.rb
188
+ - spec/constantcontact/components/contacts/contact_list_spec.rb
189
+ - spec/constantcontact/components/contacts/contact_spec.rb
190
+ - spec/constantcontact/components/contacts/custom_field_spec.rb
191
+ - spec/constantcontact/components/contacts/email_address_spec.rb
192
+ - spec/constantcontact/services/activity_service_spec.rb
193
+ - spec/constantcontact/services/base_service_spec.rb
194
+ - spec/constantcontact/services/campaign_schedule_service_spec.rb
195
+ - spec/constantcontact/services/campaign_tracking_service_spec.rb
196
+ - spec/constantcontact/services/contact_service_spec.rb
197
+ - spec/constantcontact/services/contact_tracking_service_spec.rb
198
+ - spec/constantcontact/services/email_marketing_spec.rb
199
+ - spec/constantcontact/services/event_spot_spec.rb
200
+ - spec/constantcontact/services/library_service_spec.rb
201
+ - spec/constantcontact/services/list_service_spec.rb
202
+ - spec/spec_helper.rb