Sha256: 3dc8968483f6499ca608cf7f453fe271b26df5a070ae4f5fb4f45a30da9a5a38

Contents?: true

Size: 1.67 KB

Versions: 9

Compression:

Stored size: 1.67 KB

Contents

module Rews
  class Client
    attr_reader :endpoint
    attr_reader :auth_type
    attr_reader :user
    attr_reader :password
    attr_reader :savon_client
    attr_accessor :logdev

    # create a +Client+ to access Exchange Web Services
    # * using NTLM authentication
    #  Rews::Client.new('https://exchange.foo.com/EWS/Exchange.asmx', :ntlm, 'DOMAIN\\user', 'password')
    # * using basic authentication
    #  Rews::Client.new('https://exchange.foo.com/EWS/Exchange.asmx', :basic, 'DOMAIN\\user', 'password')
    def initialize(endpoint, auth_type, user, password)
      @endpoint=endpoint
      @auth_type = auth_type
      @user=user
      @password=password
      @savon_client = Savon::Client.new do
        wsdl.endpoint = endpoint
        wsdl.namespace = SCHEMA_MESSAGES
        
        http.auth.ssl.verify_mode = :none
        http.auth.send(auth_type, user, password)
      end
    end

    def inspect
      "#<#{self.class} @endpoint=#{@endpoint}, @auth_type=#{@auth_type}, @user=#{@user}, @password=#{@password}>"
    end

    # get a <tt>Folder::DistinguishedFolderId</tt> referencing one of the named top-level Folders in an Exchange mailbox
    # * get a folder from the default mailbox
    #  client.distinguished_folder_id('inbox')
    # * get a folder from another mailbox
    #  client.distinguished_folder_id('inbox', 'foo@bar.com')
    def distinguished_folder_id(id, mailbox_email=nil)
      Folder::DistinguishedFolderId.new(self, id, mailbox_email)
    end

    # yield a +Logger+ if +logdev+ has been set
    def log
      yield logger if @logdev
    end

    def logger
      return @logger if @logger
      @logger = Logger.new(@logdev) if @logdev
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
rews-0.2.12 lib/rews/client.rb
rews-0.2.11 lib/rews/client.rb
rews-0.2.10 lib/rews/client.rb
rews-0.2.9 lib/rews/client.rb
rews-0.2.7 lib/rews/client.rb
rews-0.2.6 lib/rews/client.rb
rews-0.2.5 lib/rews/client.rb
rews-0.2.4 lib/rews/client.rb
rews-0.2.3 lib/rews/client.rb