lib/createsend/subscriber.rb in createsend-2.5.1 vs lib/createsend/subscriber.rb in createsend-3.0.0

- old
+ new

@@ -1,53 +1,54 @@ -require 'createsend' -require 'json' - module CreateSend # Represents a subscriber and associated functionality. - class Subscriber + class Subscriber < CreateSend attr_reader :list_id attr_reader :email_address - def initialize(list_id, email_address) + def initialize(auth, list_id, email_address) @list_id = list_id @email_address = email_address + super end # Gets a subscriber by list ID and email address. - def self.get(list_id, email_address) + def self.get(auth, list_id, email_address) options = { :query => { :email => email_address } } - response = CreateSend.get "/subscribers/#{list_id}.json", options + cs = CreateSend.new auth + response = cs.get "/subscribers/#{list_id}.json", options Hashie::Mash.new(response) end # Adds a subscriber to a subscriber list. - def self.add(list_id, email_address, name, custom_fields, resubscribe, + def self.add(auth, list_id, email_address, name, custom_fields, resubscribe, restart_subscription_based_autoresponders=false) options = { :body => { :EmailAddress => email_address, :Name => name, :CustomFields => custom_fields, :Resubscribe => resubscribe, :RestartSubscriptionBasedAutoresponders => restart_subscription_based_autoresponders }.to_json } - response = CreateSend.post "/subscribers/#{list_id}.json", options + cs = CreateSend.new auth + response = cs.post "/subscribers/#{list_id}.json", options response.parsed_response end # Imports subscribers into a subscriber list. - def self.import(list_id, subscribers, resubscribe, + def self.import(auth, list_id, subscribers, resubscribe, queue_subscription_based_autoresponders=false, restart_subscription_based_autoresponders=false) options = { :body => { :Subscribers => subscribers, :Resubscribe => resubscribe, :QueueSubscriptionBasedAutoresponders => queue_subscription_based_autoresponders, :RestartSubscriptionBasedAutoresponders => restart_subscription_based_autoresponders }.to_json } begin - response = CreateSend.post( + cs = CreateSend.new auth + response = cs.post( "/subscribers/#{list_id}/import.json", options) rescue BadRequest => br # Subscriber import will throw BadRequest if some subscribers are not # imported successfully. If this occurs, we want to return the # ResultData property of the BadRequest exception (which is of the @@ -73,31 +74,31 @@ :Name => name, :CustomFields => custom_fields, :Resubscribe => resubscribe, :RestartSubscriptionBasedAutoresponders => restart_subscription_based_autoresponders }.to_json } - CreateSend.put "/subscribers/#{@list_id}.json", options + put "/subscribers/#{@list_id}.json", options # Update @email_address, so this object can continue to be used reliably @email_address = new_email_address end # Unsubscribes this subscriber from the associated list. def unsubscribe options = { :body => { :EmailAddress => @email_address }.to_json } - CreateSend.post "/subscribers/#{@list_id}/unsubscribe.json", options + post "/subscribers/#{@list_id}/unsubscribe.json", options end # Gets the historical record of this subscriber's trackable actions. def history options = { :query => { :email => @email_address } } - response = CreateSend.get "/subscribers/#{@list_id}/history.json", options + response = cs_get "/subscribers/#{@list_id}/history.json", options response.map{|item| Hashie::Mash.new(item)} end # Moves this subscriber to the Deleted state in the associated list. def delete options = { :query => { :email => @email_address } } - CreateSend.delete "/subscribers/#{@list_id}.json", options + super "/subscribers/#{@list_id}.json", options end end end \ No newline at end of file