Class: Postal::Driver

Inherits:
Object
  • Object
show all
Defined in:
lib/postal/driver.rb

Constant Summary collapse

DefaultEndpointUrl =
"http://www.mymailserver.com/"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(wsdl_url = nil, proxy = nil, username = nil, password = nil) ⇒ Driver

Returns a new instance of Driver.



12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/postal/driver.rb', line 12

def initialize(wsdl_url = nil, proxy = nil, username = nil, password = nil)
  wsdl_url ||= DefaultEndpointUrl
  @client = Savon::Client.new do |wsdl, http|
    wsdl.document = wsdl_url
    if proxy
      http.proxy = proxy
    end
    if username && password
      http.auth.basic username, password
    end
  end
end

Instance Attribute Details

#clientObject

Returns the value of attribute client.



8
9
10
# File 'lib/postal/driver.rb', line 8

def client
  @client
end

Instance Method Details

#createSingleMember(email, name, list_name) ⇒ Object



39
40
41
42
43
44
45
46
# File 'lib/postal/driver.rb', line 39

def createSingleMember(email, name, list_name)
  response = @client.request :wsdl, :create_single_member do |soap|
    soap.body = { "EmailAddress" => email,
                  "FullName" => name || "",
                  "ListName" => list_name}
  end
  response.to_hash[:create_single_member_response][:return].to_i
end

#deleteMembers(args) ⇒ Object



49
50
51
52
53
54
# File 'lib/postal/driver.rb', line 49

def deleteMembers(args)
  response = @client.request :wsdl, :delete_members do |soap|
    soap.body = { "FilterCriteriaArray" => {'item' => args} }
  end
  response.to_hash[:delete_members_response][:return].to_i
end

#importContent(content_id) ⇒ Object



102
103
104
105
106
107
# File 'lib/postal/driver.rb', line 102

def importContent(content_id)
  response = @client.request :wsdl, :import_content do |soap|
    soap.body = { "ContentID" => content_id }
  end
  response.to_hash[:import_content_response][:return]
end

#selectContent(args) ⇒ Object



81
82
83
84
85
86
# File 'lib/postal/driver.rb', line 81

def selectContent(args)
  response = @client.request :wsdl, :select_content do |soap|
    soap.body = { "FilterCriteriaArray" => {'item' => args} }
  end
  response.to_hash[:select_content_response][:return]
end

#selectLists(list_name, site_name) ⇒ Object



89
90
91
92
93
94
95
96
97
98
99
# File 'lib/postal/driver.rb', line 89

def selectLists(list_name, site_name)
  response = @client.request :wsdl, :select_lists do |soap|
    soap.body = { "ListName" => list_name,
                  "SiteName" => site_name}
  end
  if response.to_hash[:select_lists_response]
    return response.to_hash[:select_lists_response][:return]
  else
    return nil
  end
end

#selectMembers(args) ⇒ Object



31
32
33
34
35
36
# File 'lib/postal/driver.rb', line 31

def selectMembers(args)
  response = @client.request :wsdl, :select_members do |soap|
    soap.body = { "FilterCriteriaArray" => {'item' => args} }
  end
  response.to_hash[:select_members_response][:return]
end

#sendMailingDirect(email_addresses = [], member_ids = [], mail) ⇒ Object



110
111
112
113
114
115
116
117
# File 'lib/postal/driver.rb', line 110

def sendMailingDirect(email_addresses=[], member_ids=[], mail)
  response = @client.request :wsdl, :send_mailing_direct do |soap|
    soap.body = { "EmailAddressArray" => {:item => email_addresses},
                  "MemberIDArray" => {:item => member_ids},
                  "MailingStructIn" => mail }
  end
  response.to_hash[:send_mailing_direct_response][:return]
end

#soap_actionsObject



26
27
28
# File 'lib/postal/driver.rb', line 26

def soap_actions
  @client.wsdl.soap_actions
end

#unsubscribe(list_name, id, email) ⇒ Object



57
58
59
60
61
62
63
64
65
66
# File 'lib/postal/driver.rb', line 57

def unsubscribe(list_name, id, email)
  response = @client.request :wsdl, :unsubscribe do |soap|
    soap.body = { 'SimpleMemberStructArrayIn' => { 
                    'item' => {
                      'ListName' => list_name,
                      'MemberID' => id,
                      'EmailAddress' => email }}}
  end
  response.to_hash[:unsubscribe_response][:return]
end

#updateMemberDemographics(list_name, id, email, demographics) ⇒ Object



69
70
71
72
73
74
75
76
77
78
# File 'lib/postal/driver.rb', line 69

def updateMemberDemographics(list_name, id, email, demographics)
  response = @client.request :wsdl, :update_member_demographics do |soap|
    soap.body = { "SimpleMemberStructIn" => {
                    'ListName' => list_name,
                    'MemberID' => id,
                    'EmailAddress' => email},
                  "DemographicsArray" => {'item' => demographics} }
  end
  response.to_hash[:update_member_demographics_response][:return]
end