viewpoint 0.1.27 → 1.0.0.beta.1
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +196 -0
- data/lib/ews/calendar_accessors.rb +34 -0
- data/lib/ews/connection.rb +117 -0
- data/lib/ews/connection_helper.rb +35 -0
- data/lib/ews/ews_client.rb +71 -0
- data/lib/ews/exceptions/exceptions.rb +59 -0
- data/lib/ews/folder_accessors.rb +199 -0
- data/lib/ews/item_accessors.rb +157 -0
- data/lib/ews/mailbox_accessors.rb +87 -0
- data/lib/ews/message_accessors.rb +86 -0
- data/lib/ews/push_subscription_accessors.rb +33 -0
- data/lib/ews/soap.rb +63 -0
- data/lib/ews/soap/builders/ews_builder.rb +1011 -0
- data/lib/ews/soap/ews_response.rb +83 -0
- data/lib/ews/soap/ews_soap_availability_response.rb +58 -0
- data/lib/ews/soap/ews_soap_free_busy_response.rb +109 -0
- data/lib/ews/soap/ews_soap_response.rb +103 -0
- data/lib/ews/soap/exchange_availability.rb +61 -0
- data/lib/ews/soap/exchange_data_services.rb +742 -0
- data/lib/ews/soap/exchange_notification.rb +146 -0
- data/lib/ews/soap/exchange_user_configuration.rb +33 -0
- data/lib/ews/soap/exchange_web_service.rb +294 -0
- data/lib/{model/attendee.rb → ews/soap/parsers/ews_parser.rb} +20 -14
- data/lib/ews/soap/parsers/ews_sax_document.rb +66 -0
- data/lib/ews/soap/response_message.rb +78 -0
- data/lib/ews/soap/responses/create_attachment_response_message.rb +46 -0
- data/lib/{model/meeting_message.rb → ews/soap/responses/create_item_response_message.rb} +7 -10
- data/lib/ews/soap/responses/find_item_response_message.rb +80 -0
- data/lib/ews/soap/responses/get_events_response_message.rb +53 -0
- data/lib/ews/soap/responses/send_notification_response_message.rb +58 -0
- data/lib/{model/attachment.rb → ews/soap/responses/subscribe_response_message.rb} +17 -13
- data/lib/ews/templates/forward_item.rb +24 -0
- data/lib/ews/templates/message.rb +66 -0
- data/lib/ews/templates/reply_to_item.rb +25 -0
- data/lib/ews/types.rb +146 -0
- data/lib/ews/types/attachment.rb +77 -0
- data/lib/{model/meeting_cancellation.rb → ews/types/attendee.rb} +9 -8
- data/lib/ews/types/calendar_folder.rb +8 -0
- data/lib/ews/types/calendar_item.rb +37 -0
- data/lib/ews/types/contact.rb +7 -0
- data/lib/ews/types/contacts_folder.rb +8 -0
- data/lib/ews/types/copied_event.rb +51 -0
- data/lib/{soap/handsoap/builder.rb → ews/types/created_event.rb} +5 -2
- data/lib/{model/meeting_response.rb → ews/types/deleted_event.rb} +6 -6
- data/lib/ews/types/distribution_list.rb +7 -0
- data/lib/ews/types/event.rb +62 -0
- data/lib/ews/types/file_attachment.rb +65 -0
- data/lib/ews/types/folder.rb +60 -0
- data/lib/{model/distribution_list.rb → ews/types/free_busy_changed_event.rb} +6 -6
- data/lib/ews/types/generic_folder.rb +352 -0
- data/lib/ews/types/item.rb +381 -0
- data/lib/ews/types/item_attachment.rb +46 -0
- data/lib/{model → ews/types}/item_field_uri_map.rb +2 -2
- data/lib/ews/types/mailbox_user.rb +156 -0
- data/lib/ews/types/meeting_cancellation.rb +7 -0
- data/lib/ews/types/meeting_message.rb +7 -0
- data/lib/ews/types/meeting_request.rb +7 -0
- data/lib/ews/types/meeting_response.rb +7 -0
- data/lib/ews/types/message.rb +7 -0
- data/lib/ews/types/modified_event.rb +48 -0
- data/lib/{model/item_attachment.rb → ews/types/moved_event.rb} +33 -15
- data/lib/ews/types/new_mail_event.rb +24 -0
- data/lib/ews/types/out_of_office.rb +147 -0
- data/lib/ews/types/search_folder.rb +8 -0
- data/lib/ews/types/status_event.rb +39 -0
- data/lib/ews/types/task.rb +7 -0
- data/lib/ews/types/tasks_folder.rb +8 -0
- data/lib/viewpoint.rb +82 -106
- metadata +99 -67
- data/README +0 -114
- data/lib/exceptions/exceptions.rb +0 -46
- data/lib/model/calendar_folder.rb +0 -67
- data/lib/model/calendar_item.rb +0 -267
- data/lib/model/contact.rb +0 -238
- data/lib/model/contacts_folder.rb +0 -46
- data/lib/model/event.rb +0 -116
- data/lib/model/file_attachment.rb +0 -53
- data/lib/model/folder.rb +0 -47
- data/lib/model/generic_folder.rb +0 -471
- data/lib/model/item.rb +0 -313
- data/lib/model/mailbox_user.rb +0 -146
- data/lib/model/meeting_request.rb +0 -39
- data/lib/model/message.rb +0 -142
- data/lib/model/model.rb +0 -269
- data/lib/model/search_folder.rb +0 -48
- data/lib/model/task.rb +0 -121
- data/lib/model/tasks_folder.rb +0 -44
- data/lib/soap/handsoap/builders/ews_build_helpers.rb +0 -383
- data/lib/soap/handsoap/builders/ews_builder.rb +0 -146
- data/lib/soap/handsoap/ews_service.rb +0 -813
- data/lib/soap/handsoap/parser.rb +0 -104
- data/lib/soap/handsoap/parsers/ews_parser.rb +0 -246
- data/lib/soap/soap_provider.rb +0 -64
@@ -0,0 +1,48 @@
|
|
1
|
+
=begin
|
2
|
+
This file is part of Viewpoint; the Ruby library for Microsoft Exchange Web Services.
|
3
|
+
|
4
|
+
Copyright © 2011 Dan Wanek <dan.wanek@gmail.com>
|
5
|
+
|
6
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
+
you may not use this file except in compliance with the License.
|
8
|
+
You may obtain a copy of the License at
|
9
|
+
|
10
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
|
12
|
+
Unless required by applicable law or agreed to in writing, software
|
13
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
+
See the License for the specific language governing permissions and
|
16
|
+
limitations under the License.
|
17
|
+
=end
|
18
|
+
|
19
|
+
module Viewpoint::EWS::Types
|
20
|
+
|
21
|
+
class ModifiedEvent < Event
|
22
|
+
|
23
|
+
MODIFIED_EVENT_KEY_PATHS = {
|
24
|
+
}
|
25
|
+
|
26
|
+
MODIFIED_EVENT_KEY_TYPES = {
|
27
|
+
}
|
28
|
+
|
29
|
+
MODIFIED_EVENT_KEY_ALIAS = { }
|
30
|
+
|
31
|
+
|
32
|
+
private
|
33
|
+
|
34
|
+
|
35
|
+
def key_paths
|
36
|
+
@key_paths ||= super.merge MODIFIED_EVENT_KEY_PATHS
|
37
|
+
end
|
38
|
+
|
39
|
+
def key_types
|
40
|
+
@key_types ||= super.merge MODIFIED_EVENT_KEY_TYPES
|
41
|
+
end
|
42
|
+
|
43
|
+
def key_alias
|
44
|
+
@key_alias ||= super.merge MODIFIED_EVENT_KEY_ALIAS
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
end
|
@@ -16,18 +16,36 @@
|
|
16
16
|
limitations under the License.
|
17
17
|
=end
|
18
18
|
|
19
|
-
module Viewpoint
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
19
|
+
module Viewpoint::EWS::Types
|
20
|
+
|
21
|
+
class MovedEvent < Event
|
22
|
+
|
23
|
+
MOVED_EVENT_KEY_PATHS = {
|
24
|
+
:old_item_id => [:old_item_id, :attribs],
|
25
|
+
:old_folder_id => [:old_folder_id, :attribs],
|
26
|
+
:old_parent_folder_id => [:old_parent_folder_id, :attribs],
|
27
|
+
}
|
28
|
+
|
29
|
+
MOVED_EVENT_KEY_TYPES = {
|
30
|
+
}
|
31
|
+
|
32
|
+
MOVED_EVENT_KEY_ALIAS = { }
|
33
|
+
|
34
|
+
|
35
|
+
private
|
36
|
+
|
37
|
+
|
38
|
+
def key_paths
|
39
|
+
@key_paths ||= super.merge MOVED_EVENT_KEY_PATHS
|
40
|
+
end
|
41
|
+
|
42
|
+
def key_types
|
43
|
+
@key_types ||= super.merge MOVED_EVENT_KEY_TYPES
|
44
|
+
end
|
45
|
+
|
46
|
+
def key_alias
|
47
|
+
@key_alias ||= super.merge MOVED_EVENT_KEY_ALIAS
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
=begin
|
2
|
+
This file is part of Viewpoint; the Ruby library for Microsoft Exchange Web Services.
|
3
|
+
|
4
|
+
Copyright © 2011 Dan Wanek <dan.wanek@gmail.com>
|
5
|
+
|
6
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
+
you may not use this file except in compliance with the License.
|
8
|
+
You may obtain a copy of the License at
|
9
|
+
|
10
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
|
12
|
+
Unless required by applicable law or agreed to in writing, software
|
13
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
+
See the License for the specific language governing permissions and
|
16
|
+
limitations under the License.
|
17
|
+
=end
|
18
|
+
|
19
|
+
module Viewpoint::EWS::Types
|
20
|
+
|
21
|
+
class NewMailEvent < Event
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,147 @@
|
|
1
|
+
=begin
|
2
|
+
This file is part of Viewpoint; the Ruby library for Microsoft Exchange Web Services.
|
3
|
+
|
4
|
+
Copyright © 2011 Dan Wanek <dan.wanek@gmail.com>
|
5
|
+
|
6
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
+
you may not use this file except in compliance with the License.
|
8
|
+
You may obtain a copy of the License at
|
9
|
+
|
10
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
|
12
|
+
Unless required by applicable law or agreed to in writing, software
|
13
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
+
See the License for the specific language governing permissions and
|
16
|
+
limitations under the License.
|
17
|
+
=end
|
18
|
+
|
19
|
+
module Viewpoint::EWS::Types
|
20
|
+
|
21
|
+
OOF_KEY_PATHS = {
|
22
|
+
:enabled? => [:oof_settings, :oof_state],
|
23
|
+
:scheduled? => [:oof_settings, :oof_state],
|
24
|
+
:duration => [:oof_settings, :duration],
|
25
|
+
}
|
26
|
+
|
27
|
+
OOF_KEY_TYPES = {
|
28
|
+
:enabled? => ->(str){str == :enabled},
|
29
|
+
:scheduled? => ->(str){str == :scheduled},
|
30
|
+
:duration => ->(hsh){ hsh[:start_time]..hsh[:end_time] },
|
31
|
+
}
|
32
|
+
|
33
|
+
OOF_KEY_ALIAS = {}
|
34
|
+
|
35
|
+
# This represents OutOfOffice settings
|
36
|
+
# @see http://msdn.microsoft.com/en-us/library/aa563465.aspx
|
37
|
+
class OutOfOffice
|
38
|
+
include Viewpoint::EWS
|
39
|
+
include Viewpoint::EWS::Types
|
40
|
+
|
41
|
+
attr_reader :user
|
42
|
+
|
43
|
+
# @param [MailboxUser] user
|
44
|
+
# @param [Hash] ews_item
|
45
|
+
def initialize(user, ews_item)
|
46
|
+
@ews = user.ews
|
47
|
+
@user = user
|
48
|
+
@ews_item = ews_item
|
49
|
+
@changed = false
|
50
|
+
simplify!
|
51
|
+
end
|
52
|
+
|
53
|
+
def changed?
|
54
|
+
@changed
|
55
|
+
end
|
56
|
+
|
57
|
+
def save!
|
58
|
+
return true unless changed?
|
59
|
+
opts = { mailbox: {address: user.email_address} }.merge(@ews_item[:oof_settings])
|
60
|
+
resp = @ews.set_user_oof_settings(opts)
|
61
|
+
if resp.success?
|
62
|
+
@changed = false
|
63
|
+
true
|
64
|
+
else
|
65
|
+
raise SaveFailed, "Could not save #{self.class}. #{resp.code}: #{resp.message}"
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
def enable
|
70
|
+
return true if enabled?
|
71
|
+
@changed = true
|
72
|
+
@ews_item[:oof_settings][:oof_state] = :enabled
|
73
|
+
end
|
74
|
+
|
75
|
+
def disable
|
76
|
+
return true unless enabled? || scheduled?
|
77
|
+
@changed = true
|
78
|
+
@ews_item[:oof_settings][:oof_state] = :disabled
|
79
|
+
end
|
80
|
+
|
81
|
+
# Schedule an out of office.
|
82
|
+
# @param [DateTime] start_time
|
83
|
+
# @param [DateTime] end_time
|
84
|
+
def schedule(start_time, end_time)
|
85
|
+
@changed = true
|
86
|
+
@ews_item[:oof_settings][:oof_state] = :scheduled
|
87
|
+
set_duration start_time, end_time
|
88
|
+
end
|
89
|
+
|
90
|
+
# Specify a duration for this Out Of Office setting
|
91
|
+
# @param [DateTime] start_time
|
92
|
+
# @param [DateTime] end_time
|
93
|
+
def set_duration(start_time, end_time)
|
94
|
+
@changed = true
|
95
|
+
@ews_item[:oof_settings][:duration][:start_time] = start_time
|
96
|
+
@ews_item[:oof_settings][:duration][:end_time] = end_time
|
97
|
+
end
|
98
|
+
|
99
|
+
# A message to send to internal users
|
100
|
+
# @param [String] message
|
101
|
+
def internal_reply=(message)
|
102
|
+
@changed = true
|
103
|
+
@ews_item[:oof_settings][:internal_reply] = message
|
104
|
+
end
|
105
|
+
|
106
|
+
# A message to send to external users
|
107
|
+
# @param [String] message
|
108
|
+
def external_reply=(message)
|
109
|
+
@changed = true
|
110
|
+
@ews_item[:oof_settings][:external_reply] = message
|
111
|
+
end
|
112
|
+
|
113
|
+
|
114
|
+
private
|
115
|
+
|
116
|
+
def key_paths
|
117
|
+
@key_paths ||= super.merge(OOF_KEY_PATHS)
|
118
|
+
end
|
119
|
+
|
120
|
+
def key_types
|
121
|
+
@key_types ||= super.merge(OOF_KEY_TYPES)
|
122
|
+
end
|
123
|
+
|
124
|
+
def key_alias
|
125
|
+
@key_alias ||= super.merge(OOF_KEY_ALIAS)
|
126
|
+
end
|
127
|
+
|
128
|
+
def simplify!
|
129
|
+
oof_settings = @ews_item[:oof_settings][:elems].inject(:merge)
|
130
|
+
oof_settings[:oof_state] = oof_settings[:oof_state][:text].downcase.to_sym
|
131
|
+
oof_settings[:external_audience] = oof_settings[:external_audience][:text]
|
132
|
+
if oof_settings[:duration]
|
133
|
+
dur = oof_settings[:duration][:elems].inject(:merge)
|
134
|
+
oof_settings[:duration] = {
|
135
|
+
start_time: DateTime.iso8601(dur[:start_time][:text]),
|
136
|
+
end_time: DateTime.iso8601(dur[:end_time][:text])
|
137
|
+
}
|
138
|
+
end
|
139
|
+
oof_settings[:internal_reply] = oof_settings[:internal_reply][:elems][0][:message][:text] || ""
|
140
|
+
oof_settings[:external_reply] = oof_settings[:external_reply][:elems][0][:message][:text] || ""
|
141
|
+
@ews_item[:oof_settings] = oof_settings
|
142
|
+
@ews_item[:allow_external_oof] = @ews_item[:allow_external_oof][:text]
|
143
|
+
end
|
144
|
+
|
145
|
+
end #OutOfOffice
|
146
|
+
|
147
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
=begin
|
2
|
+
This file is part of Viewpoint; the Ruby library for Microsoft Exchange Web Services.
|
3
|
+
|
4
|
+
Copyright © 2011 Dan Wanek <dan.wanek@gmail.com>
|
5
|
+
|
6
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
+
you may not use this file except in compliance with the License.
|
8
|
+
You may obtain a copy of the License at
|
9
|
+
|
10
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
|
12
|
+
Unless required by applicable law or agreed to in writing, software
|
13
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
+
See the License for the specific language governing permissions and
|
16
|
+
limitations under the License.
|
17
|
+
=end
|
18
|
+
|
19
|
+
module Viewpoint::EWS::Types
|
20
|
+
|
21
|
+
class StatusEvent
|
22
|
+
include Viewpoint::EWS
|
23
|
+
include Viewpoint::EWS::Types
|
24
|
+
include Viewpoint::EWS::Types::Item
|
25
|
+
|
26
|
+
STATUS_EVENT_KEY_PATHS = {
|
27
|
+
:watermark => [:watermark, :text],
|
28
|
+
}
|
29
|
+
|
30
|
+
|
31
|
+
private
|
32
|
+
|
33
|
+
|
34
|
+
def key_paths
|
35
|
+
@key_paths ||= STATUS_EVENT_KEY_PATHS
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
end
|
data/lib/viewpoint.rb
CHANGED
@@ -16,118 +16,94 @@
|
|
16
16
|
limitations under the License.
|
17
17
|
=end
|
18
18
|
|
19
|
-
|
20
|
-
require 'singleton'
|
19
|
+
require 'kconv' if(RUBY_VERSION.start_with? '1.9') # bug in rubyntlm with ruby 1.9.x
|
21
20
|
require 'date'
|
22
21
|
require 'base64'
|
23
|
-
require '
|
22
|
+
require 'nokogiri'
|
23
|
+
require 'ostruct'
|
24
|
+
require 'logging'
|
24
25
|
|
25
|
-
|
26
|
-
# Class Extensions
|
26
|
+
# Class Extensions (Monkey patches)
|
27
27
|
require 'extensions/string'
|
28
28
|
|
29
|
-
# Load the backend SOAP infrastructure. Today this is Handsoap.
|
30
|
-
require 'soap/soap_provider'
|
31
|
-
|
32
|
-
# Load the model classes
|
33
|
-
# Base Models
|
34
|
-
require 'model/model'
|
35
|
-
require 'model/mailbox_user'
|
36
|
-
require 'model/attendee'
|
37
|
-
require 'model/generic_folder'
|
38
|
-
require 'model/item_field_uri_map' # supports Item
|
39
|
-
require 'model/item'
|
40
|
-
# Specific Models
|
41
|
-
# Folders
|
42
|
-
require 'model/folder'
|
43
|
-
require 'model/calendar_folder'
|
44
|
-
require 'model/contacts_folder'
|
45
|
-
require 'model/search_folder'
|
46
|
-
require 'model/tasks_folder'
|
47
|
-
# Items
|
48
|
-
require 'model/message'
|
49
|
-
require 'model/calendar_item'
|
50
|
-
require 'model/contact'
|
51
|
-
require 'model/distribution_list'
|
52
|
-
require 'model/meeting_message'
|
53
|
-
require 'model/meeting_request'
|
54
|
-
require 'model/meeting_response'
|
55
|
-
require 'model/meeting_cancellation'
|
56
|
-
require 'model/task'
|
57
|
-
require 'model/attachment'
|
58
|
-
require 'model/file_attachment'
|
59
|
-
require 'model/item_attachment'
|
60
|
-
# Third Party Libraries
|
61
|
-
require 'mail' # used to convert Message items to RFC822 compliant messages
|
62
|
-
require 'icalendar' # used to convert Calendar items to iCalendar objects
|
63
|
-
|
64
|
-
# Load the Exception classes
|
65
|
-
require 'exceptions/exceptions'
|
66
|
-
|
67
|
-
|
68
|
-
# This is the Singlenton class that controls access and presentation to Exchange
|
69
|
-
# Web Services. It is possible to just use the SOAP classes themselves but this
|
70
|
-
# is what ties all the pieces together.
|
71
|
-
# @attr_reader [SOAP::ExchangeWebService] :ews The SOAP object used to make calls
|
72
|
-
# to the Exchange Web Service.
|
73
29
|
module Viewpoint
|
74
30
|
module EWS
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
# Set the endpoint for Exchange Web Services.
|
85
|
-
# @param [String] endpoint The URL of the endpoint. This should end in
|
86
|
-
# 'exchange.asmx' and is typically something like this:
|
87
|
-
# https://myexch/ews/exchange.asmx
|
88
|
-
# @param [Integer] version The SOAP version to use. This defaults to 1
|
89
|
-
# and you should not need to pass this parameter.
|
90
|
-
def self.endpoint=(endpoint, version = 1)
|
91
|
-
@@endpoint = endpoint
|
92
|
-
SOAP::ExchangeWebService.endpoint(:uri => endpoint, :version => version) && true
|
93
|
-
end
|
94
|
-
|
95
|
-
# Fetch the current endpoint
|
96
|
-
def self.endpoint
|
97
|
-
@@endpoint
|
98
|
-
end
|
99
|
-
|
100
|
-
# Set the SOAP username and password.
|
101
|
-
# @param [String] user The user name
|
102
|
-
# @param [String] pass The password
|
103
|
-
def self.set_auth(user,pass)
|
104
|
-
@@user = user
|
105
|
-
SOAP::ExchangeWebService.set_auth(user,pass) && true
|
106
|
-
end
|
107
|
-
|
108
|
-
# Set the http driver that the SOAP back-end will use.
|
109
|
-
# @param [Symbol] driver The HTTP driver. Available drivers:
|
110
|
-
# :curb, :net_http, :http_client(Default)
|
111
|
-
def self.set_http_driver(driver)
|
112
|
-
Handsoap.http_driver = driver
|
113
|
-
end
|
114
|
-
|
115
|
-
# Sets the CA path to a certificate or hashed certificate directory.
|
116
|
-
# This is the same as HTTPClient::SSLConfig.set_trust_ca
|
117
|
-
# @param [String] ca_path A path to an OpenSSL::X509::Certificate or a 'c-rehash'ed directory
|
118
|
-
def self.set_trust_ca(ca_path)
|
119
|
-
SOAP::ExchangeWebService.set_http_options(:trust_ca_file => ca_path) && true
|
120
|
-
end
|
121
|
-
|
122
|
-
def initialize
|
123
|
-
@ews = SOAP::ExchangeWebService.new
|
124
|
-
end
|
125
|
-
|
126
|
-
# The MailboxUser object that represents the user connected to EWS.
|
127
|
-
def me
|
128
|
-
MailboxUser.find_user((@@user.include?('@') ? @@user : "#{@@user}@"))
|
129
|
-
end
|
130
|
-
|
131
|
-
end # class EWS
|
31
|
+
attr_reader :logger
|
32
|
+
Logging.logger.root.level = :debug
|
33
|
+
Logging.logger.root.appenders = Logging.appenders.stdout
|
34
|
+
|
35
|
+
def self.root_logger
|
36
|
+
Logging.logger.root
|
37
|
+
end
|
38
|
+
|
132
39
|
end # EWS
|
133
40
|
end
|
41
|
+
|
42
|
+
# Load the Exception classes
|
43
|
+
require 'ews/exceptions/exceptions'
|
44
|
+
|
45
|
+
# Load the backend SOAP / EWS infrastructure.
|
46
|
+
require 'ews/soap'
|
47
|
+
require 'ews/soap/response_message'
|
48
|
+
require 'ews/soap/ews_response'
|
49
|
+
require 'ews/soap/ews_soap_response'
|
50
|
+
require 'ews/soap/ews_soap_availability_response'
|
51
|
+
require 'ews/soap/ews_soap_free_busy_response'
|
52
|
+
require 'ews/soap/builders/ews_builder'
|
53
|
+
require 'ews/soap/parsers/ews_parser'
|
54
|
+
require 'ews/soap/parsers/ews_sax_document'
|
55
|
+
# Mix-ins for the ExchangeWebService
|
56
|
+
require 'ews/soap/exchange_data_services'
|
57
|
+
require 'ews/soap/exchange_notification'
|
58
|
+
require 'ews/soap/exchange_availability'
|
59
|
+
require 'ews/soap/exchange_user_configuration'
|
60
|
+
require 'ews/soap/exchange_web_service'
|
61
|
+
|
62
|
+
require 'ews/connection_helper'
|
63
|
+
require 'ews/connection'
|
64
|
+
|
65
|
+
# Base Types
|
66
|
+
require 'ews/types'
|
67
|
+
require 'ews/types/item_field_uri_map'
|
68
|
+
require 'ews/types/generic_folder'
|
69
|
+
require 'ews/types/item'
|
70
|
+
# Folders
|
71
|
+
require 'ews/types/folder'
|
72
|
+
require 'ews/types/calendar_folder'
|
73
|
+
require 'ews/types/contacts_folder'
|
74
|
+
require 'ews/types/tasks_folder'
|
75
|
+
require 'ews/types/search_folder'
|
76
|
+
# Items
|
77
|
+
require 'ews/types/message'
|
78
|
+
require 'ews/types/calendar_item'
|
79
|
+
require 'ews/types/contact'
|
80
|
+
require 'ews/types/distribution_list'
|
81
|
+
require 'ews/types/meeting_message'
|
82
|
+
require 'ews/types/meeting_request'
|
83
|
+
require 'ews/types/meeting_response'
|
84
|
+
require 'ews/types/meeting_cancellation'
|
85
|
+
require 'ews/types/task'
|
86
|
+
require 'ews/types/attachment'
|
87
|
+
require 'ews/types/file_attachment'
|
88
|
+
require 'ews/types/item_attachment'
|
89
|
+
require 'ews/types/mailbox_user'
|
90
|
+
require 'ews/types/out_of_office'
|
91
|
+
|
92
|
+
# Events
|
93
|
+
require 'ews/types/event'
|
94
|
+
require 'ews/types/copied_event'
|
95
|
+
require 'ews/types/created_event'
|
96
|
+
require 'ews/types/deleted_event'
|
97
|
+
require 'ews/types/free_busy_changed_event'
|
98
|
+
require 'ews/types/modified_event'
|
99
|
+
require 'ews/types/moved_event'
|
100
|
+
require 'ews/types/new_mail_event'
|
101
|
+
require 'ews/types/status_event'
|
102
|
+
|
103
|
+
# Template Objects
|
104
|
+
require 'ews/templates/message'
|
105
|
+
require 'ews/templates/forward_item'
|
106
|
+
require 'ews/templates/reply_to_item'
|
107
|
+
|
108
|
+
# The proxy between the models and the web service
|
109
|
+
require 'ews/ews_client'
|