constant_contact 1.1.6 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -19,7 +19,7 @@ module ConstantContact
19
19
  # Setup defaults when creating a new object since
20
20
  # CC requires so many extraneous fields to be present
21
21
  # when creating a new Campaign.
22
- def initialize
22
+ def initialize(*args)
23
23
  obj = super
24
24
  obj.set_defaults
25
25
  obj
@@ -0,0 +1,9 @@
1
+ module ConstantContact
2
+ module CampaignEvent
3
+ class BounceEvent < CampaignEventBase
4
+ def self.collection_name
5
+ 'bounces'
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,7 @@
1
+ module ConstantContact
2
+ module CampaignEvent
3
+ class CampaignEventBase < Base
4
+ self.site += "/campaigns/:campaign_id/events"
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,9 @@
1
+ module ConstantContact
2
+ module CampaignEvent
3
+ class ForwardEvent < CampaignEventBase
4
+ def self.collection_name
5
+ 'forwards'
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module ConstantContact
2
+ module CampaignEvent
3
+ class OpenEvent < CampaignEventBase
4
+ def self.collection_name
5
+ 'opens'
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module ConstantContact
2
+ module CampaignEvent
3
+ class OptoutEvent < CampaignEventBase
4
+ def self.collection_name
5
+ 'optouts'
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module ConstantContact
2
+ module CampaignEvent
3
+ class SentEvent < CampaignEventBase
4
+ def self.collection_name
5
+ 'sends'
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,7 @@
1
+ module ConstantContact
2
+ module ContactEvent
3
+ class ContactEventBase < Base
4
+ self.site += "/contacts/:contact_id/events"
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,9 @@
1
+ module ConstantContact
2
+ module ContactEvent
3
+ class ReportsSummary < ContactEventBase
4
+ def self.collection_name
5
+ 'summary'
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module ConstantContact
2
+ module ContactEvent
3
+ class SentEvent < ContactEventBase
4
+ def self.collection_name
5
+ 'sends'
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,4 @@
1
+ module ConstantContact
2
+ class Event < Base
3
+ end
4
+ end
@@ -17,6 +17,10 @@ module ActiveResource
17
17
  end
18
18
 
19
19
  def decode(xml)
20
+ if xml =~ /\<atom\:/
21
+ xml.gsub!( /\<atom\:/, '<' )
22
+ xml.gsub!( /\<\/atom\:/, '</' )
23
+ end
20
24
  return [] if no_content?(xml)
21
25
  result = Hash.from_xml(from_atom_data(xml))
22
26
  is_collection?(xml) ? result['records'] : result.values.first
@@ -1,3 +1,3 @@
1
1
  module ConstantContact
2
- Version = '1.1.6'.freeze
2
+ Version = '1.2.0'.freeze
3
3
  end
@@ -6,10 +6,18 @@ require 'builder'
6
6
  require 'cgi' unless defined?(CGI) && defined?(CGI::escape)
7
7
  require File.join(directory, 'constant_contact', 'formats')
8
8
  require File.join(directory, 'constant_contact', 'base')
9
- require File.join(directory, 'constant_contact', 'list');
9
+ require File.join(directory, 'constant_contact', 'list')
10
10
  require File.join(directory, 'constant_contact', 'member')
11
11
  require File.join(directory, 'constant_contact', 'contact')
12
12
  require File.join(directory, 'constant_contact', 'campaign')
13
- require File.join(directory, 'constant_contact', 'contact_event')
13
+ require File.join(directory, 'constant_contact', 'campaign_event', 'campaign_event_base')
14
+ require File.join(directory, 'constant_contact', 'campaign_event', 'bounce_event')
15
+ require File.join(directory, 'constant_contact', 'campaign_event', 'forward_event')
16
+ require File.join(directory, 'constant_contact', 'campaign_event', 'open_event')
17
+ require File.join(directory, 'constant_contact', 'campaign_event', 'optout_event')
18
+ require File.join(directory, 'constant_contact', 'campaign_event', 'sent_event')
19
+ require File.join(directory, 'constant_contact', 'contact_event', 'contact_event_base')
20
+ require File.join(directory, 'constant_contact', 'contact_event', 'sent_event')
21
+ require File.join(directory, 'constant_contact', 'contact_event', 'reports_summary')
14
22
  require File.join(directory, 'constant_contact', 'activity')
15
23
  require File.join(directory, 'constant_contact', 'email_address')
@@ -0,0 +1,76 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <feed xmlns="http://www.w3.org/2005/Atom">
3
+ <id>http://api.constantcontact.com/ws/customers/dtjohnsospam/campaigns/1103842030678/events/sends</id>
4
+ <title type="text">Send Events for Customer: dtjohnsospam, Campaign id: 1103842030678</title>
5
+ <link href="sends"></link>
6
+ <link href="sends" rel="self"></link>
7
+ <author>
8
+ <name>dtjohnsospam</name>
9
+ </author>
10
+ <updated>2010-10-28T20:56:31.199Z</updated>
11
+ <link href="/ws/customers/dtjohnsospam/campaigns/1103842030678/events/sends" rel="first"></link>
12
+ <link href="/ws/customers/dtjohnsospam/campaigns/1103842030678/events/sends" rel="current"></link>
13
+ <entry>
14
+ <id>http://api.constantcontact.com/ws/customers/dtjohnsospam/events/sends/1103842030678,4,1288295117783</id>
15
+ <title type="text">Email Send Event for Customer: dtjohnsospam, Campaign: http://api.constantcontact.com/ws/customers/dtjohnsospam/campaigns/1103842030678</title>
16
+ <updated>2010-10-28T19:45:17.783Z</updated>
17
+ <author>
18
+ <name>Constant Contact</name>
19
+ </author>
20
+ <content type="application/vnd.ctct+xml">
21
+ <SentEvent xmlns="http://ws.constantcontact.com/ns/1.0/" id="http://api.constantcontact.com/ws/customers/dtjohnsospam/events/sends/1103842030678,4,1288295117783">
22
+ <Contact id="http://api.constantcontact.com/ws/customers/dtjohnsospam/contacts/4">
23
+ <EmailAddress>daniel@webs.com</EmailAddress>
24
+ <link xmlns="http://www.w3.org/2005/Atom" href="/ws/customers/dtjohnsospam/contacts/4" rel="self"></link>
25
+ </Contact>
26
+ <Campaign id="http://api.constantcontact.com/ws/customers/dtjohnsospam/campaigns/1103842030678">
27
+ <link xmlns="http://www.w3.org/2005/Atom" href="/ws/customers/dtjohnsospam/campaigns/1103842030678" rel="self"></link>
28
+ <Name>Oct 28 2010</Name>
29
+ </Campaign>
30
+ <EventTime>2010-10-28T19:45:17.783Z</EventTime>
31
+ </SentEvent>
32
+ </content>
33
+ </entry>
34
+ <entry>
35
+ <id>http://api.constantcontact.com/ws/customers/dtjohnsospam/events/sends/1103842030678,3,1288295117733</id>
36
+ <title type="text">Email Send Event for Customer: dtjohnsospam, Campaign: http://api.constantcontact.com/ws/customers/dtjohnsospam/campaigns/1103842030678</title>
37
+ <updated>2010-10-28T19:45:17.733Z</updated>
38
+ <author>
39
+ <name>Constant Contact</name>
40
+ </author>
41
+ <content type="application/vnd.ctct+xml">
42
+ <SentEvent xmlns="http://ws.constantcontact.com/ns/1.0/" id="http://api.constantcontact.com/ws/customers/dtjohnsospam/events/sends/1103842030678,3,1288295117733">
43
+ <Contact id="http://api.constantcontact.com/ws/customers/dtjohnsospam/contacts/3">
44
+ <EmailAddress>idris@umd.edu</EmailAddress>
45
+ <link xmlns="http://www.w3.org/2005/Atom" href="/ws/customers/dtjohnsospam/contacts/3" rel="self"></link>
46
+ </Contact>
47
+ <Campaign id="http://api.constantcontact.com/ws/customers/dtjohnsospam/campaigns/1103842030678">
48
+ <link xmlns="http://www.w3.org/2005/Atom" href="/ws/customers/dtjohnsospam/campaigns/1103842030678" rel="self"></link>
49
+ <Name>Oct 28 2010</Name>
50
+ </Campaign>
51
+ <EventTime>2010-10-28T19:45:17.733Z</EventTime>
52
+ </SentEvent>
53
+ </content>
54
+ </entry>
55
+ <entry>
56
+ <id>http://api.constantcontact.com/ws/customers/dtjohnsospam/events/sends/1103842030678,2,1288295117649</id>
57
+ <title type="text">Email Send Event for Customer: dtjohnsospam, Campaign: http://api.constantcontact.com/ws/customers/dtjohnsospam/campaigns/1103842030678</title>
58
+ <updated>2010-10-28T19:45:17.649Z</updated>
59
+ <author>
60
+ <name>Constant Contact</name>
61
+ </author>
62
+ <content type="application/vnd.ctct+xml">
63
+ <SentEvent xmlns="http://ws.constantcontact.com/ns/1.0/" id="http://api.constantcontact.com/ws/customers/dtjohnsospam/events/sends/1103842030678,2,1288295117649">
64
+ <Contact id="http://api.constantcontact.com/ws/customers/dtjohnsospam/contacts/2">
65
+ <EmailAddress>hoverwhat@gmail.com</EmailAddress>
66
+ <link xmlns="http://www.w3.org/2005/Atom" href="/ws/customers/dtjohnsospam/contacts/2" rel="self"></link>
67
+ </Contact>
68
+ <Campaign id="http://api.constantcontact.com/ws/customers/dtjohnsospam/campaigns/1103842030678">
69
+ <link xmlns="http://www.w3.org/2005/Atom" href="/ws/customers/dtjohnsospam/campaigns/1103842030678" rel="self"></link>
70
+ <Name>Oct 28 2010</Name>
71
+ </Campaign>
72
+ <EventTime>2010-10-28T19:45:17.649Z</EventTime>
73
+ </SentEvent>
74
+ </content>
75
+ </entry>
76
+ </feed>
metadata CHANGED
@@ -5,9 +5,9 @@ version: !ruby/object:Gem::Version
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
- - 1
9
- - 6
10
- version: 1.1.6
8
+ - 2
9
+ - 0
10
+ version: 1.2.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Tim Case
@@ -18,7 +18,7 @@ autorequire:
18
18
  bindir: bin
19
19
  cert_chain: []
20
20
 
21
- date: 2010-10-26 00:00:00 -04:00
21
+ date: 2010-10-29 00:00:00 -04:00
22
22
  default_executable:
23
23
  dependencies:
24
24
  - !ruby/object:Gem::Dependency
@@ -133,9 +133,18 @@ files:
133
133
  - lib/constant_contact/activity.rb
134
134
  - lib/constant_contact/base.rb
135
135
  - lib/constant_contact/campaign.rb
136
+ - lib/constant_contact/campaign_event/bounce_event.rb
137
+ - lib/constant_contact/campaign_event/campaign_event_base.rb
138
+ - lib/constant_contact/campaign_event/forward_event.rb
139
+ - lib/constant_contact/campaign_event/open_event.rb
140
+ - lib/constant_contact/campaign_event/optout_event.rb
141
+ - lib/constant_contact/campaign_event/sent_event.rb
136
142
  - lib/constant_contact/contact.rb
137
- - lib/constant_contact/contact_event.rb
143
+ - lib/constant_contact/contact_event/contact_event_base.rb
144
+ - lib/constant_contact/contact_event/reports_summary.rb
145
+ - lib/constant_contact/contact_event/sent_event.rb
138
146
  - lib/constant_contact/email_address.rb
147
+ - lib/constant_contact/event.rb
139
148
  - lib/constant_contact/formats/atom_format.rb
140
149
  - lib/constant_contact/formats/html_encoded_format.rb
141
150
  - lib/constant_contact/formats.rb
@@ -157,6 +166,7 @@ files:
157
166
  - test/fixtures/multiple_contacts_by_emails.xml
158
167
  - test/fixtures/new_list.xml
159
168
  - test/fixtures/nocontent.xml
169
+ - test/fixtures/senteventscollection.xml
160
170
  - test/fixtures/service_document.xml
161
171
  - test/fixtures/single_contact_by_email.xml
162
172
  - test/fixtures/single_contact_by_id.xml
@@ -1,7 +0,0 @@
1
- module ConstantContact
2
- class ContactEvent < Base
3
- self.site += "/contacts/:contact_id"
4
- end
5
- end
6
-
7
-