class Groupwise::PostOfficeAgent
Attributes
client[R]
endpoint[R]
Public Class Methods
new(endpoint, username, app_name, app_key)
click to toggle source
# File lib/groupwise/post_office_agent.rb, line 5 def initialize(endpoint, username, app_name, app_key) @endpoint, @username, @app_name, @app_key = endpoint, username, app_name, app_key @client = Savon.client(wsdl: wsdl, endpoint: endpoint) login end
Public Instance Methods
free_busy(email_addresses, wait_time = 0, start_time = nil, end_time = nil)
click to toggle source
# File lib/groupwise/post_office_agent.rb, line 31 def free_busy(email_addresses, wait_time = 0, start_time = nil, end_time = nil) message = { free_busy_session_id: free_busy_session(email_addresses, start_time, end_time) } sleep wait_time response = authenticated_request(:get_free_busy, message)[:free_busy_info] end
logout()
click to toggle source
# File lib/groupwise/post_office_agent.rb, line 25 def logout response = authenticated_request(:logout) @session = nil if response[:status][:code] == '0' return response end
version()
click to toggle source
# File lib/groupwise/post_office_agent.rb, line 11 def version @version ||= begin body = HTTPI.get(HTTPI::Request.new(endpoint)).body version = body.match(/(?<=POA )([^\n\r]*)/).captures.first end end
wsdl()
click to toggle source
# File lib/groupwise/post_office_agent.rb, line 18 def wsdl @wsdl ||= begin wsdl_version = Groupwise.wsdl_version(version) File.expand_path("../../../contrib/novell/GW#{wsdl_version}/groupwise.wsdl", __FILE__) end end
Private Instance Methods
authenticated_request(method, message = nil)
click to toggle source
# File lib/groupwise/post_office_agent.rb, line 50 def authenticated_request(method, message = nil) response = @client.call( "#{method}_request".to_sym, message: message, soap_header: { session: @session } ) response.body["#{method}_response".to_sym] end
free_busy_session(email_addresses, start_time = nil, end_time = nil)
click to toggle source
# File lib/groupwise/post_office_agent.rb, line 59 def free_busy_session(email_addresses, start_time = nil, end_time = nil) @free_busy_session ||= begin message = FreeBusySessionMessage.new(email_addresses, start_time, end_time) response = authenticated_request(:start_free_busy_session, message) response[:free_busy_session_id] end end
login()
click to toggle source
# File lib/groupwise/post_office_agent.rb, line 39 def login message = { auth: { username: @username, name: @app_name, key: @app_key }, version: '1.05', language: 'en', attributes!: { auth: { 'xsi:type' => 'q1:TrustedApplication' } } } response = @client.call(:login_request, message: message) @session = response.body[:login_response][:session] response.body[:login_response] end