viewpoint 1.1.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +13 -8
  3. data/lib/ews/calendar_accessors.rb +37 -33
  4. data/lib/ews/connection.rb +151 -124
  5. data/lib/ews/connection_helper.rb +36 -33
  6. data/lib/ews/convert_accessors.rb +58 -54
  7. data/lib/ews/errors.rb +59 -53
  8. data/lib/ews/ews_client.rb +92 -79
  9. data/lib/ews/exceptions/exceptions.rb +61 -61
  10. data/lib/ews/folder_accessors.rb +235 -234
  11. data/lib/ews/impersonation.rb +29 -23
  12. data/lib/ews/item_accessors.rb +215 -213
  13. data/lib/ews/mailbox_accessors.rb +82 -79
  14. data/lib/ews/meeting_accessors.rb +38 -31
  15. data/lib/ews/message_accessors.rb +83 -81
  16. data/lib/ews/push_subscription_accessors.rb +29 -27
  17. data/lib/ews/room_accessors.rb +48 -46
  18. data/lib/ews/roomlist_accessors.rb +47 -45
  19. data/lib/ews/soap/builders/ews_builder.rb +1186 -1188
  20. data/lib/ews/soap/ews_response.rb +68 -73
  21. data/lib/ews/soap/ews_soap_availability_response.rb +57 -57
  22. data/lib/ews/soap/ews_soap_free_busy_response.rb +115 -117
  23. data/lib/ews/soap/ews_soap_response.rb +99 -101
  24. data/lib/ews/soap/ews_soap_room_response.rb +45 -45
  25. data/lib/ews/soap/ews_soap_roomlist_response.rb +45 -46
  26. data/lib/ews/soap/exchange_availability.rb +54 -52
  27. data/lib/ews/soap/exchange_data_services.rb +693 -711
  28. data/lib/ews/soap/exchange_notification.rb +123 -128
  29. data/lib/ews/soap/exchange_synchronization.rb +82 -82
  30. data/lib/ews/soap/exchange_time_zones.rb +41 -44
  31. data/lib/ews/soap/exchange_user_configuration.rb +30 -27
  32. data/lib/ews/soap/exchange_web_service.rb +237 -233
  33. data/lib/ews/soap/parsers/ews_parser.rb +46 -42
  34. data/lib/ews/soap/parsers/ews_sax_document.rb +63 -58
  35. data/lib/ews/soap/response_message.rb +69 -68
  36. data/lib/ews/soap/responses/create_attachment_response_message.rb +45 -45
  37. data/lib/ews/soap/responses/create_item_response_message.rb +26 -25
  38. data/lib/ews/soap/responses/find_item_response_message.rb +76 -78
  39. data/lib/ews/soap/responses/get_events_response_message.rb +52 -51
  40. data/lib/ews/soap/responses/send_notification_response_message.rb +53 -51
  41. data/lib/ews/soap/responses/subscribe_response_message.rb +37 -34
  42. data/lib/ews/soap/responses/sync_folder_hierarchy_response_message.rb +38 -35
  43. data/lib/ews/soap/responses/sync_folder_items_response_message.rb +38 -35
  44. data/lib/ews/soap.rb +27 -26
  45. data/lib/ews/templates/calendar_item.rb +64 -60
  46. data/lib/ews/templates/forward_item.rb +19 -17
  47. data/lib/ews/templates/message.rb +61 -67
  48. data/lib/ews/templates/reply_to_item.rb +20 -18
  49. data/lib/ews/templates/task.rb +55 -55
  50. data/lib/ews/types/attachment.rb +75 -74
  51. data/lib/ews/types/attendee.rb +27 -25
  52. data/lib/ews/types/calendar_folder.rb +60 -44
  53. data/lib/ews/types/calendar_item.rb +134 -116
  54. data/lib/ews/types/contact.rb +11 -5
  55. data/lib/ews/types/contacts_folder.rb +10 -5
  56. data/lib/ews/types/copied_event.rb +47 -48
  57. data/lib/ews/types/created_event.rb +22 -20
  58. data/lib/ews/types/deleted_event.rb +22 -20
  59. data/lib/ews/types/distribution_list.rb +11 -5
  60. data/lib/ews/types/event.rb +60 -59
  61. data/lib/ews/types/export_items_response_message.rb +54 -50
  62. data/lib/ews/types/file_attachment.rb +63 -61
  63. data/lib/ews/types/folder.rb +58 -57
  64. data/lib/ews/types/free_busy_changed_event.rb +22 -20
  65. data/lib/ews/types/generic_folder.rb +348 -372
  66. data/lib/ews/types/item.rb +401 -397
  67. data/lib/ews/types/item_attachment.rb +87 -80
  68. data/lib/ews/types/item_field_uri_map.rb +201 -200
  69. data/lib/ews/types/mailbox_user.rb +146 -154
  70. data/lib/ews/types/meeting_cancellation.rb +11 -5
  71. data/lib/ews/types/meeting_message.rb +11 -5
  72. data/lib/ews/types/meeting_request.rb +11 -5
  73. data/lib/ews/types/meeting_response.rb +11 -5
  74. data/lib/ews/types/message.rb +11 -5
  75. data/lib/ews/types/modified_event.rb +43 -45
  76. data/lib/ews/types/moved_event.rb +47 -48
  77. data/lib/ews/types/new_mail_event.rb +22 -20
  78. data/lib/ews/types/out_of_office.rb +145 -144
  79. data/lib/ews/types/post_item.rb +11 -5
  80. data/lib/ews/types/search_folder.rb +10 -5
  81. data/lib/ews/types/status_event.rb +37 -36
  82. data/lib/ews/types/task.rb +39 -33
  83. data/lib/ews/types/tasks_folder.rb +32 -22
  84. data/lib/ews/types.rb +134 -139
  85. data/lib/viewpoint/logging/config.rb +19 -19
  86. data/lib/viewpoint/logging.rb +23 -17
  87. data/lib/viewpoint/string_utils.rb +31 -32
  88. data/lib/viewpoint.rb +18 -18
  89. metadata +82 -11
  90. data/Changelog.txt +0 -1004
@@ -1,103 +1,101 @@
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::SOAP
20
-
21
- # A Generic Class for SOAP returns.
22
- # @attr_reader [String] :message The text from the EWS element <m:ResponseCode>
23
- class EwsSoapResponse
24
-
25
- def initialize(sax_hash)
26
- @resp = sax_hash
27
- simplify!
28
- end
29
-
30
- def envelope
31
- @resp[:envelope][:elems]
32
- end
33
-
34
- def header
35
- envelope[0][:header][:elems]
36
- end
37
-
38
- def body
39
- envelope[1][:body][:elems]
40
- end
41
-
42
- def response
43
- body[0]
44
- end
45
-
46
- def response_messages
47
- key = response.keys.first
48
- response[key][:elems].find{|e| e.keys.include? :response_messages }[:response_messages][:elems]
49
- end
50
-
51
- def response_message
52
- key = response_messages[0].keys.first
53
- response_messages[0][key]
54
- end
55
-
56
- def response_class
57
- response_message[:attribs][:response_class]
58
- end
59
- alias :status :response_class
60
-
61
- def response_code
62
- response_message[:elems][:response_code][:text]
63
- end
64
- alias :code :response_code
65
-
66
- def response_message_text
67
- guard_hash response_message[:elems], [:message_text, :text]
68
- end
69
- alias :message :response_message_text
70
-
71
- def success?
72
- response_class == "Success"
73
- end
74
-
75
-
76
- private
77
-
78
-
79
- def simplify!
80
- response_messages.each do |rm|
81
- key = rm.keys.first
82
- rm[key][:elems] = rm[key][:elems].inject(&:merge)
1
+ # frozen_string_literal: true
2
+
3
+ # This file is part of Viewpoint; the Ruby library for Microsoft Exchange Web Services.
4
+ #
5
+ # Copyright © 2011 Dan Wanek <dan.wanek@gmail.com>
6
+ #
7
+ # Licensed under the Apache License, Version 2.0 (the "License");
8
+ # you may not use this file except in compliance with the License.
9
+ # You may obtain a copy of the License at
10
+ #
11
+ # http://www.apache.org/licenses/LICENSE-2.0
12
+ #
13
+ # Unless required by applicable law or agreed to in writing, software
14
+ # distributed under the License is distributed on an "AS IS" BASIS,
15
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ # See the License for the specific language governing permissions and
17
+ # limitations under the License.
18
+
19
+ module Viewpoint
20
+ module EWS
21
+ module SOAP
22
+ # A Generic Class for SOAP returns.
23
+ # @attr_reader [String] :message The text from the EWS element <m:ResponseCode>
24
+ class EwsSoapResponse
25
+ def initialize(sax_hash)
26
+ @resp = sax_hash
27
+ simplify!
28
+ end
29
+
30
+ def envelope
31
+ @resp[:envelope][:elems]
32
+ end
33
+
34
+ def header
35
+ envelope[0][:header][:elems]
36
+ end
37
+
38
+ def body
39
+ envelope[1][:body][:elems]
40
+ end
41
+
42
+ def response
43
+ body[0]
44
+ end
45
+
46
+ def response_messages
47
+ key = response.keys.first
48
+ response[key][:elems].find { |e| e.keys.include? :response_messages }[:response_messages][:elems]
49
+ end
50
+
51
+ def response_message
52
+ key = response_messages[0].keys.first
53
+ response_messages[0][key]
54
+ end
55
+
56
+ def response_class
57
+ response_message[:attribs][:response_class]
58
+ end
59
+ alias status response_class
60
+
61
+ def response_code
62
+ response_message[:elems][:response_code][:text]
63
+ end
64
+ alias code response_code
65
+
66
+ def response_message_text
67
+ guard_hash response_message[:elems], %i[message_text text]
68
+ end
69
+ alias message response_message_text
70
+
71
+ def success?
72
+ response_class == 'Success'
73
+ end
74
+
75
+ private
76
+
77
+ def simplify!
78
+ response_messages.each do |rm|
79
+ key = rm.keys.first
80
+ rm[key][:elems] = rm[key][:elems].inject(&:merge)
81
+ end
82
+ end
83
+
84
+ # If the keys don't exist in the Hash return nil
85
+ # @param[Hash] hsh
86
+ # @param[Array<Symbol,String>] keys keys to follow in the array
87
+ # @return [Object, nil]
88
+ def guard_hash(hsh, keys)
89
+ key = keys.shift
90
+ return nil unless hsh.is_a?(Hash) && hsh.key?(key)
91
+
92
+ if keys.empty?
93
+ hsh[key]
94
+ else
95
+ guard_hash hsh[key], keys
96
+ end
97
+ end
83
98
  end
84
99
  end
85
-
86
- # If the keys don't exist in the Hash return nil
87
- # @param[Hash] hsh
88
- # @param[Array<Symbol,String>] keys keys to follow in the array
89
- # @return [Object, nil]
90
- def guard_hash(hsh, keys)
91
- key = keys.shift
92
- return nil unless hsh.is_a?(Hash) && hsh.has_key?(key)
93
-
94
- if keys.empty?
95
- hsh[key]
96
- else
97
- guard_hash hsh[key], keys
98
- end
99
- end
100
-
101
- end # EwsSoapResponse
102
-
103
- end # Viewpoint::EWS::SOAP
100
+ end
101
+ end
@@ -1,53 +1,53 @@
1
- =begin
2
- This file is a contribution to Viewpoint; the Ruby library for Microsoft Exchange Web Services.
3
-
4
- Copyright © 2013 Camille Baldock <viewpoint@camillebaldock.co.uk>
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::SOAP
20
-
21
- # A class for roomlists SOAP returns.
22
- # @attr_reader [String] :message The text from the EWS element <m:ResponseCode>
23
- class EwsSoapRoomResponse < EwsSoapResponse
1
+ # frozen_string_literal: true
2
+
3
+ # This file is a contribution to Viewpoint; the Ruby library for Microsoft Exchange Web Services.
4
+ #
5
+ # Copyright © 2013 Camille Baldock <viewpoint@camillebaldock.co.uk>
6
+ #
7
+ # Licensed under the Apache License, Version 2.0 (the "License");
8
+ # you may not use this file except in compliance with the License.
9
+ # You may obtain a copy of the License at
10
+ #
11
+ # http://www.apache.org/licenses/LICENSE-2.0
12
+ #
13
+ # Unless required by applicable law or agreed to in writing, software
14
+ # distributed under the License is distributed on an "AS IS" BASIS,
15
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ # See the License for the specific language governing permissions and
17
+ # limitations under the License.
18
+
19
+ module Viewpoint
20
+ module EWS
21
+ module SOAP
22
+ # A class for roomlists SOAP returns.
23
+ # @attr_reader [String] :message The text from the EWS element <m:ResponseCode>
24
+ class EwsSoapRoomResponse < EwsSoapResponse
25
+ def response_messages
26
+ key = response.keys.first
27
+ subresponse = response[key][:elems][1]
28
+ response_class = subresponse.keys.first
29
+ subresponse[response_class][:elems]
30
+ end
24
31
 
25
- def response_messages
26
- key = response.keys.first
27
- subresponse = response[key][:elems][1]
28
- response_class = subresponse.keys.first
29
- subresponse[response_class][:elems]
30
- end
32
+ def roomsArray # rubocop:disable Naming/MethodName -- public API name
33
+ response[:get_rooms_response][:elems][1][:rooms][:elems]
34
+ end
31
35
 
32
- def roomsArray
33
- response[:get_rooms_response][:elems][1][:rooms][:elems]
34
- end
36
+ def success?
37
+ response.first[1][:attribs][:response_class] == 'Success'
38
+ end
35
39
 
36
- def success?
37
- response.first[1][:attribs][:response_class] == "Success"
38
- end
40
+ private
39
41
 
40
- private
42
+ def simplify!
43
+ return unless response_messages
41
44
 
42
- def simplify!
43
- if response_messages
44
- response_messages.each do |rm|
45
- key = rm.keys.first
46
- rm[key][:elems] = rm[key][:elems].inject(&:merge)
45
+ response_messages.each do |rm|
46
+ key = rm.keys.first
47
+ rm[key][:elems] = rm[key][:elems].inject(&:merge)
48
+ end
47
49
  end
48
50
  end
49
51
  end
50
-
51
- end # EwsSoapRoomResponse
52
-
53
- end # Viewpoint::EWS::SOAP
52
+ end
53
+ end
@@ -1,54 +1,53 @@
1
- =begin
2
- This file is a contribution to Viewpoint; the Ruby library for Microsoft Exchange Web Services.
3
-
4
- Copyright © 2013 Camille Baldock <viewpoint@camillebaldock.co.uk>
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::SOAP
20
-
21
- # A class for roomlists SOAP returns.
22
- # @attr_reader [String] :message The text from the EWS element <m:ResponseCode>
23
- class EwsSoapRoomlistResponse < EwsSoapResponse
24
-
25
- def response_messages
26
- key = response.keys.first
27
- subresponse = response[key][:elems][1]
28
- response_class = subresponse.keys.first
29
- subresponse[response_class][:elems]
30
- end
1
+ # frozen_string_literal: true
2
+
3
+ # This file is a contribution to Viewpoint; the Ruby library for Microsoft Exchange Web Services.
4
+ #
5
+ # Copyright © 2013 Camille Baldock <viewpoint@camillebaldock.co.uk>
6
+ #
7
+ # Licensed under the Apache License, Version 2.0 (the "License");
8
+ # you may not use this file except in compliance with the License.
9
+ # You may obtain a copy of the License at
10
+ #
11
+ # http://www.apache.org/licenses/LICENSE-2.0
12
+ #
13
+ # Unless required by applicable law or agreed to in writing, software
14
+ # distributed under the License is distributed on an "AS IS" BASIS,
15
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ # See the License for the specific language governing permissions and
17
+ # limitations under the License.
18
+
19
+ module Viewpoint
20
+ module EWS
21
+ module SOAP
22
+ # A class for roomlists SOAP returns.
23
+ # @attr_reader [String] :message The text from the EWS element <m:ResponseCode>
24
+ class EwsSoapRoomlistResponse < EwsSoapResponse
25
+ def response_messages
26
+ key = response.keys.first
27
+ subresponse = response[key][:elems][1]
28
+ response_class = subresponse.keys.first
29
+ subresponse[response_class][:elems]
30
+ end
31
31
 
32
- def roomListsArray
33
- response[:get_room_lists_response][:elems][1][:room_lists][:elems]
34
- end
32
+ def roomListsArray # rubocop:disable Naming/MethodName -- public API name
33
+ response[:get_room_lists_response][:elems][1][:room_lists][:elems]
34
+ end
35
35
 
36
- def success?
37
- response.first[1][:attribs][:response_class] == "Success"
38
- end
36
+ def success?
37
+ response.first[1][:attribs][:response_class] == 'Success'
38
+ end
39
39
 
40
- private
40
+ private
41
41
 
42
+ def simplify!
43
+ return unless response_messages
42
44
 
43
- def simplify!
44
- if response_messages
45
- response_messages.each do |rm|
46
- key = rm.keys.first
47
- rm[key][:elems] = rm[key][:elems].inject(&:merge)
45
+ response_messages.each do |rm|
46
+ key = rm.keys.first
47
+ rm[key][:elems] = rm[key][:elems].inject(&:merge)
48
+ end
48
49
  end
49
50
  end
50
51
  end
51
-
52
- end # EwsSoapRoomlistResponse
53
-
54
- end # Viewpoint::EWS::SOAP
52
+ end
53
+ end
@@ -1,61 +1,63 @@
1
- module Viewpoint::EWS::SOAP
1
+ # frozen_string_literal: true
2
2
 
3
- # Exchange Availability operations as listed in the EWS Documentation.
4
- # @see http://msdn.microsoft.com/en-us/library/bb409286.aspx
5
- module ExchangeAvailability
6
- include Viewpoint::EWS::SOAP
3
+ module Viewpoint
4
+ module EWS
5
+ module SOAP
6
+ # Exchange Availability operations as listed in the EWS Documentation.
7
+ # @see http://msdn.microsoft.com/en-us/library/bb409286.aspx
8
+ module ExchangeAvailability
9
+ include Viewpoint::EWS::SOAP
7
10
 
8
- # -------------- Availability Operations -------------
11
+ # -------------- Availability Operations -------------
9
12
 
10
- # Gets a mailbox user's Out of Office (OOF) settings and messages.
11
- # @see http://msdn.microsoft.com/en-us/library/aa563465.aspx
12
- # @param [Hash] opts
13
- # @option opts [String] :address the email address of the user
14
- # @option opts [String] :name the user display name (optional)
15
- # @option opts [String] :routing_type the routing protocol (optional and stupid)
16
- def get_user_oof_settings(opts)
17
- opts = opts.clone
18
- [:address].each do |k|
19
- validate_param(opts, k, true)
20
- end
21
- req = build_soap! do |type, builder|
22
- if(type == :header)
23
- else
24
- builder.nbuild.GetUserOofSettingsRequest {|x|
25
- x.parent.default_namespace = @default_ns
26
- builder.mailbox!(opts)
27
- }
13
+ # Gets a mailbox user's Out of Office (OOF) settings and messages.
14
+ # @see http://msdn.microsoft.com/en-us/library/aa563465.aspx
15
+ # @param [Hash] opts
16
+ # @option opts [String] :address the email address of the user
17
+ # @option opts [String] :name the user display name (optional)
18
+ # @option opts [String] :routing_type the routing protocol (optional and stupid)
19
+ def get_user_oof_settings(opts)
20
+ opts = opts.clone
21
+ [:address].each do |k|
22
+ validate_param(opts, k, true)
23
+ end
24
+ req = build_soap! { |type, builder|
25
+ unless type == :header
26
+ builder.nbuild.GetUserOofSettingsRequest { |x|
27
+ x.parent.default_namespace = @default_ns
28
+ builder.mailbox!(opts)
29
+ }
30
+ end
31
+ }
32
+ do_soap_request(req, response_class: EwsSoapAvailabilityResponse)
28
33
  end
29
- end
30
- do_soap_request(req, response_class: EwsSoapAvailabilityResponse)
31
- end
32
34
 
33
- # Sets a mailbox user's Out of Office (OOF) settings and message.
34
- # @see http://msdn.microsoft.com/en-us/library/aa580294.aspx
35
- # @param [Hash] opts
36
- # @option opts [Hash] :mailbox the mailbox hash for the use
37
- # @option opts [String,Symbol] :oof_state :enabled, :disabled, :scheduled
38
- # @option opts [Hash] :duration {start_time: DateTime, end_time: DateTime}
39
- # @option opts [String] :internal_reply
40
- # @option opts [String] :external_reply
41
- # @option opts [String,Symbol] :external_audience :none, :known, :all
42
- def set_user_oof_settings(opts)
43
- opts = opts.clone
44
- [:mailbox, :oof_state].each do |k|
45
- validate_param(opts, k, true)
46
- end
47
- req = build_soap! do |type, builder|
48
- if(type == :header)
49
- else
50
- builder.nbuild.SetUserOofSettingsRequest {|x|
51
- x.parent.default_namespace = @default_ns
52
- builder.mailbox! opts.delete(:mailbox)
53
- builder.user_oof_settings!(opts)
54
- }
35
+ # Sets a mailbox user's Out of Office (OOF) settings and message.
36
+ # @see http://msdn.microsoft.com/en-us/library/aa580294.aspx
37
+ # @param [Hash] opts
38
+ # @option opts [Hash] :mailbox the mailbox hash for the use
39
+ # @option opts [String,Symbol] :oof_state :enabled, :disabled, :scheduled
40
+ # @option opts [Hash] :duration {start_time: DateTime, end_time: DateTime}
41
+ # @option opts [String] :internal_reply
42
+ # @option opts [String] :external_reply
43
+ # @option opts [String,Symbol] :external_audience :none, :known, :all
44
+ def set_user_oof_settings(opts) # rubocop:disable Naming/AccessorMethodName -- public API name
45
+ opts = opts.clone
46
+ %i[mailbox oof_state].each do |k|
47
+ validate_param(opts, k, true)
48
+ end
49
+ req = build_soap! { |type, builder|
50
+ unless type == :header
51
+ builder.nbuild.SetUserOofSettingsRequest { |x|
52
+ x.parent.default_namespace = @default_ns
53
+ builder.mailbox! opts.delete(:mailbox)
54
+ builder.user_oof_settings!(opts)
55
+ }
56
+ end
57
+ }
58
+ do_soap_request(req, response_class: EwsSoapAvailabilityResponse)
55
59
  end
56
60
  end
57
- do_soap_request(req, response_class: EwsSoapAvailabilityResponse)
58
61
  end
59
-
60
- end #ExchangeAvailability
62
+ end
61
63
  end