Sha256: 84c1f65c29d255ffce577ac05b168a4614cac387dcf8e7da3d450546d7dee883

Contents?: true

Size: 1.4 KB

Versions: 6

Compression:

Stored size: 1.4 KB

Contents

module Cupid
  class Session
    def create_subscriber(email, *args)
      options = args.extract_options!
      options[:email] = email.to_s
      options[:client_id] ||= @account

      soap_body = '<Objects xsi:type="Subscriber">' +
                    create_subscriber_object(options) +
                  '</Objects>'

      build_request('Create', 'CreateRequest', soap_body)
    end

    def create_subscribers(*args)
      raise NoMethodError.new "I will implement this method soon"
    end

    private
      def create_subscriber_object(options)
        subscriber_object =   '<ObjectID xsi:nil="true"/>'
        subscriber_object +=  '<PartnerKey xsi:nil="true" />'
        subscriber_object +=  '<Client><ID>' + options[:client_id].to_s + '</ID></Client>' if options[:client_id]
        subscriber_object +=  '<Lists>' + options[:lists].map(&:list_object).join('') + '</Lists>' if options[:lists]
        subscriber_object +=  '<FirstName>' + options[:first_name].to_s + '</FirstName>' if options[:first_name]
        subscriber_object +=  '<LastName>' + options[:last_name].to_s + '</LastName>' if options[:last_name]
        subscriber_object +=  '<EmailAddress>' + options[:email] + '</EmailAddress>'
      end
      
      def list_object(list_id)
        '<PartnerKey xsi:nil="true">
        </PartnerKey>
        <ID>' + list_id.to_s + '</ID>
        <ObjectID xsi:nil="true">
        </ObjectID>'
      end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
cupid-0.1.2 lib/cupid/methods/subscriber.rb
cupid-0.1.1 lib/cupid/methods/subscriber.rb
cupid-0.1.0 lib/cupid/methods/subscriber.rb
cupid-0.0.86 lib/cupid/methods/subscriber.rb
cupid-0.0.8 lib/cupid/methods/subscriber.rb
cupid-0.0.7 lib/cupid/methods/subscriber.rb