This is a very ActiveResource-like ruby wrapper to the Constant Contact API. It's not quite done yet and if you are interested in using this code, check it out, and message me with questions.
See the ActiveResource::Base docs for more information on how to use this ActiveResource-based wrapper.
All examples require setting up either the specific class you'll be use or the Base object before use:
ConstantContact::Base.user = 'user'
ConstantContact::Base.api_key = 'api-key'
ConstantContact::Base.password = 'password'
ConstantContact::List.find(1)
ConstantContact::List.find :all
ConstantContact::Contact.find(1)
ConstantContact::Contact.find(:first, :params => {:email => 'jon@example.com'})
ConstantContact::Contact.find_by_email('jon@example.com') # => same as previous line
ConstantContact::Base.user = 'user'
ConstantContact::Base.api_key = 'api-key'
ConstantContact::Base.password = 'password'
# Contact not found. Create it on the default list (1)
begin
@contact = ConstantContact::Contact.new(
:email_address => "jon@example.com",
:first_name => "jon",
:last_name => "smith"
)
@contact.save
@contact_on_specific_lists = ConstantContact::Contact.new(
:email_address => "jon@example.com",
:first_name => "jon",
:last_name => "smith",
:list_ids => [7,8]
)
@contact_on_specific_lists.save
rescue ActiveResource::ResourceConflict => e
# contact already exists
puts 'Contact already exists. Saving contact failed.'
puts e
end
c = ConstantContact::Contact.find_by_email('jon@example.com')
@contact = ConstantContact::Contact.find(c.int_id) # Because Constant Contact doesn't return a full contact when searching by email
puts 'In default contact list.' if @contact.contact_lists.include?(1) # contact_lists is an array of list ids
Copyright (c) 2009 Timothy Case, released under the MIT license