Wrap text
Report abuse
|
|
require 'soap/wsdlDriver'
require 'cgi'
class SpamCannon
class << self
attr_accessor :wsdl, :logging, :client
def newsletters
return @newsletters if @newsletters
@newsletters = client.getNewsletters.inject({}) do |hash, letter|
hash.merge(letter.list_id => letter)
end
end
def create_user(email, vitals, subscriptions = [])
client.createUser(email, vitals, subscriptions)
end
def update_user(email, vitals, subscriptions = [], unsubscriptions = [])
client.updateUser(email, vitals, subscriptions, unsubscriptions)
end
def get_user(email)
client.getUser(email)
end
def user_exists?(email)
client.doesUserExist(email)
end
def client
@logging ? client_with_logging : client_without_logging
end
private
def client_without_logging
@client ||= SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver
end
def client_with_logging
returning(client_without_logging) { |c| c.wiredump_file_base = 'soap.txt' }
end
end
end
SpamCannon.wsdl = 'http://soap.newsletters.website.com:9631/services/SCC?wsdl'
|