From 13638c058c98b0f2960fe8bb2713497f6dc3ef60 Mon Sep 17 00:00:00 2001 From: Mikael DELSOL Date: Thu, 16 Mar 2017 22:34:19 +0100 Subject: [PATCH 01/31] update gitignore for easy local tests --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 4bc4548..622e448 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ wsdltophp.phar vendor composer.lock +samples/_*.php From bfa35e77833eba6ff863207dc0df293617a7c3fd Mon Sep 17 00:00:00 2001 From: Mikael DELSOL Date: Thu, 16 Mar 2017 22:38:28 +0100 Subject: [PATCH 02/31] add use statements --- samples/GetServerTimeZones.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/samples/GetServerTimeZones.php b/samples/GetServerTimeZones.php index 9efb32d..90f2cca 100755 --- a/samples/GetServerTimeZones.php +++ b/samples/GetServerTimeZones.php @@ -10,6 +10,8 @@ use WsdlToPhp\PackageBase\AbstractSoapClientBase; use Ews\EnumType\EwsExchangeVersionType; use Ews\EwsClassMap; +use Ews\StructType\EwsRequestServerVersion; +use Ews\StructType\EwsGetServerTimeZonesType; /** * Your Office 365 login, like {id}@{id}.onmicrosoft.com @@ -37,11 +39,11 @@ /** * Configure the SoapHeader, each header's method begins with "setSoapHeader". */ -$get->setSoapHeaderRequestServerVersion(new \Ews\StructType\EwsRequestServerVersion(EwsExchangeVersionType::VALUE_EXCHANGE_2013_SP_1)); +$get->setSoapHeaderRequestServerVersion(new EwsRequestServerVersion(EwsExchangeVersionType::VALUE_EXCHANGE_2013_SP_1)); /** - * Send the request, you can customize the request by modifiying the new \Ews\StructType\EwsGetServerTimeZonesType() instance + * Send the request, you can customize the request by modifiying the new EwsGetServerTimeZonesType() instance */ -$result = $get->GetServerTimeZones(new \Ews\StructType\EwsGetServerTimeZonesType()); +$result = $get->GetServerTimeZones(new EwsGetServerTimeZonesType()); /** * Debug informations provided by the utility methods From a9fa5c26a26a1d13ee7a44b03d944eebdf6d4014 Mon Sep 17 00:00:00 2001 From: Mikael DELSOL Date: Thu, 16 Mar 2017 22:40:30 +0100 Subject: [PATCH 03/31] update readme by adding a new sample that helps finding the inbox message items --- README.md | 5 +- samples/FindInboxItems.php | 96 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 100 insertions(+), 1 deletion(-) create mode 100644 samples/FindInboxItems.php diff --git a/README.md b/README.md index 93c86b7..4f2d297 100755 --- a/README.md +++ b/README.md @@ -7,6 +7,8 @@ # PackageEws365 This package has been generated from the [Office 365 Exchange Web Services](wsdl/services.wsdl) WSDL using the [PackageGenerator](https://github.com/WsdlToPhp/PackageGenerator) project. +The complete list of operations is available at the [Office Dev Center](https://msdn.microsoft.com/fr-fr/library/office/bb409286(v=exchg.150).aspx). + # Summary - [Generating again the package](#generating-again-the-package) - [How to use the generated package?](#how-to-use-the-generated-package) @@ -41,6 +43,7 @@ Start looking into the auto-generated [tutorial.php](tutorial.php) file. This fi Sample scripts are available under the [samples](samples) folder: - [GetServerTimeZones](samples/GetServerTimeZones.php) +- [FindInboxItems](samples/FindInboxItems.php) # Need support or having a question? -We can help you understand how to use it and how to customize it. Feel free to contact us at contact@wsdltophp.com. +We can help you understand how to use it and how to customize it. Feel free to contact us at contact@wsdltophp.com. \ No newline at end of file diff --git a/samples/FindInboxItems.php b/samples/FindInboxItems.php new file mode 100644 index 0000000..87ba362 --- /dev/null +++ b/samples/FindInboxItems.php @@ -0,0 +1,96 @@ + __DIR__ . '/../wsdl/services.wsdl', + AbstractSoapClientBase::WSDL_CLASSMAP => EwsClassMap::get(), + AbstractSoapClientBase::WSDL_LOGIN => EWS_WS_LOGIN, + AbstractSoapClientBase::WSDL_PASSWORD => EWS_WS_PASSWORD, +); + +/** + * Instanciation of the ServiceType get that gather all the operations beginnig with "get". + */ +$find = new \Ews\ServiceType\EwsFind($options); +/** + * Configure the SoapHeader, each header's method begins with "setSoapHeader". + */ +$find->setSoapHeaderRequestServerVersion(new EwsRequestServerVersion(EwsExchangeVersionType::VALUE_EXCHANGE_2013_SP_1)); +/** + * Send the request, you can customize the request by modifiying the new \Ews\StructType\EwsGetServerTimeZonesType() instance + */ +$itemType = new EwsFindItemType(); +$itemShape = new EwsItemResponseShapeType(EwsDefaultShapeNamesType::VALUE_DEFAULT); +$itemType + ->setItemShape($itemShape) + ->setParentFolderIds(new EwsNonEmptyArrayOfBaseFolderIdsType(null, new EwsDistinguishedFolderIdType(EwsDistinguishedFolderIdNameType::VALUE_INBOX))) + ->setTraversal(EwsItemQueryTraversalType::VALUE_SHALLOW); +$result = $find->FindItem($itemType); + +/** + * Debug informations provided by the utility methods + */ +if (false) { + echo 'XML Request: ' . $find->getLastRequest() . "\r\n"; + echo 'Headers Request: ' . $find->getLastRequestHeaders() . "\r\n"; + echo 'XML Response: ' . $find->getLastResponse() . "\r\n"; + echo 'Headers Response: ' . $find->getLastResponseHeaders() . "\r\n"; +} + +/** + * Sample call for FindItem operation/method +*/ +if ($result !== false) { + /** + * Display the Inbox messages if there is at least one: + * + * Message from "{name} <{email}>" with subject "{subject}" sent at "2017-02-03T20:51:20Z" + * Message from "{name} <{email}>" with subject "{subject}" sent at "2017-02-02T17:48:25Z" + * ... etc + */ + foreach($result->getResponseMessages()->getFindItemResponseMessage() as $message) { + foreach($message->getRootFolder()->getItems()->getMessage() as $item) { + echo PHP_EOL . sprintf('Message from "%s <%s>" with subject "%s" sent at "%s"', + $item->getFrom()->getMailbox()->getName(), + $item->getFrom()->getMailbox()->getEmailAddress(), + $item->getSubject(), + $item->getDateTimeSent()); + } + echo PHP_EOL; + } +} else { + /** + * In this case, we get the \SoapFault object + */ + print_r($find->getLastErrorForMethod('\Ews\ServiceType\EwsFind::FindItem')); +} \ No newline at end of file From c76cbfd67f7458614e7d652575f79179d5936f4a Mon Sep 17 00:00:00 2001 From: Mikael DELSOL Date: Thu, 16 Mar 2017 22:42:54 +0100 Subject: [PATCH 04/31] update readme --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4f2d297..6ce5c3a 100755 --- a/README.md +++ b/README.md @@ -16,6 +16,7 @@ The complete list of operations is available at the [Office Dev Center](https:// - [Learn from the tutorial](#learn-from-the-tutorial) - [Start from the samples](#start-from-the-samples) - [GetServerTimeZones](samples/GetServerTimeZones.php) + - [FindInboxItems](samples/FindInboxItems.php) - [Need support or having a question?](#need-support-or-having-a-question) # Generating again the package From fa1b10943ac8ff50cf723821b912888cd9e9cdac Mon Sep 17 00:00:00 2001 From: Mikael DELSOL Date: Thu, 16 Mar 2017 22:49:17 +0100 Subject: [PATCH 05/31] include all message properties --- samples/FindInboxItems.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/FindInboxItems.php b/samples/FindInboxItems.php index 87ba362..96eed97 100644 --- a/samples/FindInboxItems.php +++ b/samples/FindInboxItems.php @@ -50,7 +50,7 @@ * Send the request, you can customize the request by modifiying the new \Ews\StructType\EwsGetServerTimeZonesType() instance */ $itemType = new EwsFindItemType(); -$itemShape = new EwsItemResponseShapeType(EwsDefaultShapeNamesType::VALUE_DEFAULT); +$itemShape = new EwsItemResponseShapeType(EwsDefaultShapeNamesType::VALUE_ALL_PROPERTIES); $itemType ->setItemShape($itemShape) ->setParentFolderIds(new EwsNonEmptyArrayOfBaseFolderIdsType(null, new EwsDistinguishedFolderIdType(EwsDistinguishedFolderIdNameType::VALUE_INBOX))) From 26ff49863eab737303daaca92a52140b92bb24ca Mon Sep 17 00:00:00 2001 From: Mikael DELSOL Date: Thu, 16 Mar 2017 23:07:53 +0100 Subject: [PATCH 06/31] add sanity check --- samples/FindInboxItems.php | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/samples/FindInboxItems.php b/samples/FindInboxItems.php index 96eed97..f99030e 100644 --- a/samples/FindInboxItems.php +++ b/samples/FindInboxItems.php @@ -79,12 +79,17 @@ * ... etc */ foreach($result->getResponseMessages()->getFindItemResponseMessage() as $message) { - foreach($message->getRootFolder()->getItems()->getMessage() as $item) { - echo PHP_EOL . sprintf('Message from "%s <%s>" with subject "%s" sent at "%s"', - $item->getFrom()->getMailbox()->getName(), - $item->getFrom()->getMailbox()->getEmailAddress(), - $item->getSubject(), - $item->getDateTimeSent()); + $messages = $message->getRootFolder()->getItems()->getMessage(); + if (is_array($messages)) { + foreach($messages as $item) { + echo PHP_EOL . sprintf('Message from "%s <%s>" with subject "%s" sent at "%s"', + $item->getFrom()->getMailbox()->getName(), + $item->getFrom()->getMailbox()->getEmailAddress(), + $item->getSubject(), + $item->getDateTimeSent()); + } + } else { + echo PHP_EOL . 'No message found'; } echo PHP_EOL; } From 5c081cbf9885aa08c4b325d68fb1ad5aca270e04 Mon Sep 17 00:00:00 2001 From: Mikael DELSOL Date: Thu, 16 Mar 2017 23:09:08 +0100 Subject: [PATCH 07/31] add sample for finding contact items --- README.md | 2 + samples/FindContactItems.php | 101 +++++++++++++++++++++++++++++++++++ 2 files changed, 103 insertions(+) create mode 100644 samples/FindContactItems.php diff --git a/README.md b/README.md index 6ce5c3a..e5b57a8 100755 --- a/README.md +++ b/README.md @@ -17,6 +17,7 @@ The complete list of operations is available at the [Office Dev Center](https:// - [Start from the samples](#start-from-the-samples) - [GetServerTimeZones](samples/GetServerTimeZones.php) - [FindInboxItems](samples/FindInboxItems.php) + - [FindContactItems](samples/FindContactItems.php) - [Need support or having a question?](#need-support-or-having-a-question) # Generating again the package @@ -45,6 +46,7 @@ Sample scripts are available under the [samples](samples) folder: - [GetServerTimeZones](samples/GetServerTimeZones.php) - [FindInboxItems](samples/FindInboxItems.php) +- [FindContactItems](samples/FindContactItems.php) # Need support or having a question? We can help you understand how to use it and how to customize it. Feel free to contact us at contact@wsdltophp.com. \ No newline at end of file diff --git a/samples/FindContactItems.php b/samples/FindContactItems.php new file mode 100644 index 0000000..5d3faab --- /dev/null +++ b/samples/FindContactItems.php @@ -0,0 +1,101 @@ + __DIR__ . '/../wsdl/services.wsdl', + AbstractSoapClientBase::WSDL_CLASSMAP => EwsClassMap::get(), + AbstractSoapClientBase::WSDL_LOGIN => EWS_WS_LOGIN, + AbstractSoapClientBase::WSDL_PASSWORD => EWS_WS_PASSWORD, +); + +/** + * Instanciation of the ServiceType get that gather all the operations beginnig with "get". + */ +$find = new \Ews\ServiceType\EwsFind($options); +/** + * Configure the SoapHeader, each header's method begins with "setSoapHeader". + */ +$find->setSoapHeaderRequestServerVersion(new EwsRequestServerVersion(EwsExchangeVersionType::VALUE_EXCHANGE_2013_SP_1)); +/** + * Send the request, you can customize the request by modifiying the new \Ews\StructType\EwsGetServerTimeZonesType() instance + */ +$itemType = new EwsFindItemType(); +$itemShape = new EwsItemResponseShapeType(EwsDefaultShapeNamesType::VALUE_ALL_PROPERTIES); +$itemType + ->setItemShape($itemShape) + ->setParentFolderIds(new EwsNonEmptyArrayOfBaseFolderIdsType(null, new EwsDistinguishedFolderIdType(EwsDistinguishedFolderIdNameType::VALUE_CONTACTS))) + ->setTraversal(EwsItemQueryTraversalType::VALUE_SHALLOW); +$result = $find->FindItem($itemType); + +/** + * Debug informations provided by the utility methods + */ +if (false) { + echo 'XML Request: ' . $find->getLastRequest() . "\r\n"; + echo 'Headers Request: ' . $find->getLastRequestHeaders() . "\r\n"; + echo 'XML Response: ' . $find->getLastResponse() . "\r\n"; + echo 'Headers Response: ' . $find->getLastResponseHeaders() . "\r\n"; +} + +/** + * Sample call for GetServerTimeZones operation/method +*/ +if ($result !== false) { + /** + * Display the Inbox messages if there is at least one: + * + * Contact "{firstName} {lastName} <{email}>" + * Contact "{firstName} {lastName} <{email}>" + * ... etc + */ + foreach($result->getResponseMessages()->getFindItemResponseMessage() as $message) { + $contacts = $message->getRootFolder()->getItems()->getContact(); + if(is_array($contacts)) { + foreach($contacts as $item) { + $addresses = $item->getEmailAddresses()->getEntry(); + echo PHP_EOL . sprintf('Contact "%s %s <%s>"', + $item->getCompleteName()->getFirstName(), + $item->getCompleteName()->getLastName(), + is_array($addresses) ? array_shift($addresses)->get_() : ''); + } + } else { + echo PHP_EOL . 'No contact found'; + } + echo PHP_EOL; + } +} else { + /** + * In this case, we get the \SoapFault object + */ + print_r($find->getLastErrorForMethod('\Ews\ServiceType\EwsFind::FindItem')); +} \ No newline at end of file From 662f336e586be28d1fd7dc3110e7363377695316 Mon Sep 17 00:00:00 2001 From: Mikael DELSOL Date: Thu, 16 Mar 2017 23:18:29 +0100 Subject: [PATCH 08/31] add sample for finding calendar items --- README.md | 2 + samples/FindCalendarItems.php | 101 ++++++++++++++++++++++++++++++++++ 2 files changed, 103 insertions(+) create mode 100644 samples/FindCalendarItems.php diff --git a/README.md b/README.md index e5b57a8..e874873 100755 --- a/README.md +++ b/README.md @@ -18,6 +18,7 @@ The complete list of operations is available at the [Office Dev Center](https:// - [GetServerTimeZones](samples/GetServerTimeZones.php) - [FindInboxItems](samples/FindInboxItems.php) - [FindContactItems](samples/FindContactItems.php) + - [FindCalendarItems](samples/FindCalendarItems.php) - [Need support or having a question?](#need-support-or-having-a-question) # Generating again the package @@ -47,6 +48,7 @@ Sample scripts are available under the [samples](samples) folder: - [GetServerTimeZones](samples/GetServerTimeZones.php) - [FindInboxItems](samples/FindInboxItems.php) - [FindContactItems](samples/FindContactItems.php) +- [FindCalendarItems](samples/FindCalendarItems.php) # Need support or having a question? We can help you understand how to use it and how to customize it. Feel free to contact us at contact@wsdltophp.com. \ No newline at end of file diff --git a/samples/FindCalendarItems.php b/samples/FindCalendarItems.php new file mode 100644 index 0000000..67d41f5 --- /dev/null +++ b/samples/FindCalendarItems.php @@ -0,0 +1,101 @@ + __DIR__ . '/../wsdl/services.wsdl', + AbstractSoapClientBase::WSDL_CLASSMAP => EwsClassMap::get(), + AbstractSoapClientBase::WSDL_LOGIN => EWS_WS_LOGIN, + AbstractSoapClientBase::WSDL_PASSWORD => EWS_WS_PASSWORD, +); + +/** + * Instanciation of the ServiceType get that gather all the operations beginnig with "get". + */ +$find = new \Ews\ServiceType\EwsFind($options); +/** + * Configure the SoapHeader, each header's method begins with "setSoapHeader". + */ +$find->setSoapHeaderRequestServerVersion(new EwsRequestServerVersion(EwsExchangeVersionType::VALUE_EXCHANGE_2013_SP_1)); +/** + * Send the request, you can customize the request by modifiying the new \Ews\StructType\EwsGetServerTimeZonesType() instance + */ +$itemType = new EwsFindItemType(); +$itemShape = new EwsItemResponseShapeType(EwsDefaultShapeNamesType::VALUE_ALL_PROPERTIES); +$itemType + ->setItemShape($itemShape) + ->setParentFolderIds(new EwsNonEmptyArrayOfBaseFolderIdsType(null, new EwsDistinguishedFolderIdType(EwsDistinguishedFolderIdNameType::VALUE_CALENDAR))) + ->setTraversal(EwsItemQueryTraversalType::VALUE_SHALLOW); +$result = $find->FindItem($itemType); + +/** + * Debug informations provided by the utility methods + */ +if (false) { + echo 'XML Request: ' . $find->getLastRequest() . "\r\n"; + echo 'Headers Request: ' . $find->getLastRequestHeaders() . "\r\n"; + echo 'XML Response: ' . $find->getLastResponse() . "\r\n"; + echo 'Headers Response: ' . $find->getLastResponseHeaders() . "\r\n"; +} + +/** + * Sample call for GetServerTimeZones operation/method +*/ +if ($result !== false) { + /** + * Display the Inbox messages if there is at least one: + * + * Event with subject "***" starts at "2017-03-15T08:00:00-06:00" and ends at "2017-03-15T08:30:00-06:00" with timezone "(UTC-07:00) Mountain Time (US & Canada)" + * Event with subject "***" starts at "2017-03-15T08:00:00-06:00" and ends at "2017-03-15T08:30:00-06:00" with timezone "(UTC-07:00) Mountain Time (US & Canada)" + * ... etc + */ + foreach($result->getResponseMessages()->getFindItemResponseMessage() as $message) { + $events = $message->getRootFolder()->getItems()->getCalendarItem(); + if(is_array($events)) { + foreach($events as $item) { + echo PHP_EOL . sprintf('Event with subject "%s" starts at "%s" and ends at "%s" with timezone "%s"', + $item->getSubject(), + $item->getStartWallClock(), + $item->getEndWallClock(), + $item->getTimeZone()); + } + } else { + echo PHP_EOL . 'No event found'; + } + echo PHP_EOL; + } +} else { + /** + * In this case, we get the \SoapFault object + */ + print_r($find->getLastErrorForMethod('\Ews\ServiceType\EwsFind::FindItem')); +} \ No newline at end of file From ce9ad88ea3cbbe234caddcdd08702a8ce604e20b Mon Sep 17 00:00:00 2001 From: Mikael DELSOL Date: Thu, 16 Mar 2017 23:29:06 +0100 Subject: [PATCH 09/31] add sample for finding task items --- README.md | 2 + samples/FindTaskItems.php | 100 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 102 insertions(+) create mode 100644 samples/FindTaskItems.php diff --git a/README.md b/README.md index e874873..a61a24c 100755 --- a/README.md +++ b/README.md @@ -19,6 +19,7 @@ The complete list of operations is available at the [Office Dev Center](https:// - [FindInboxItems](samples/FindInboxItems.php) - [FindContactItems](samples/FindContactItems.php) - [FindCalendarItems](samples/FindCalendarItems.php) + - [FindTaskItems](samples/FindTaskItems.php) - [Need support or having a question?](#need-support-or-having-a-question) # Generating again the package @@ -49,6 +50,7 @@ Sample scripts are available under the [samples](samples) folder: - [FindInboxItems](samples/FindInboxItems.php) - [FindContactItems](samples/FindContactItems.php) - [FindCalendarItems](samples/FindCalendarItems.php) +- [FindTaskItems](samples/FindTaskItems.php) # Need support or having a question? We can help you understand how to use it and how to customize it. Feel free to contact us at contact@wsdltophp.com. \ No newline at end of file diff --git a/samples/FindTaskItems.php b/samples/FindTaskItems.php new file mode 100644 index 0000000..a315cc9 --- /dev/null +++ b/samples/FindTaskItems.php @@ -0,0 +1,100 @@ + __DIR__ . '/../wsdl/services.wsdl', + AbstractSoapClientBase::WSDL_CLASSMAP => EwsClassMap::get(), + AbstractSoapClientBase::WSDL_LOGIN => EWS_WS_LOGIN, + AbstractSoapClientBase::WSDL_PASSWORD => EWS_WS_PASSWORD, +); + +/** + * Instanciation of the ServiceType get that gather all the operations beginnig with "get". + */ +$find = new \Ews\ServiceType\EwsFind($options); +/** + * Configure the SoapHeader, each header's method begins with "setSoapHeader". + */ +$find->setSoapHeaderRequestServerVersion(new EwsRequestServerVersion(EwsExchangeVersionType::VALUE_EXCHANGE_2013_SP_1)); +/** + * Send the request, you can customize the request by modifiying the new \Ews\StructType\EwsGetServerTimeZonesType() instance + */ +$itemType = new EwsFindItemType(); +$itemShape = new EwsItemResponseShapeType(EwsDefaultShapeNamesType::VALUE_ALL_PROPERTIES); +$itemType + ->setItemShape($itemShape) + ->setParentFolderIds(new EwsNonEmptyArrayOfBaseFolderIdsType(null, new EwsDistinguishedFolderIdType(EwsDistinguishedFolderIdNameType::VALUE_TASKS))) + ->setTraversal(EwsItemQueryTraversalType::VALUE_SHALLOW); +$result = $find->FindItem($itemType); + +/** + * Debug informations provided by the utility methods + */ +if (false) { + echo 'XML Request: ' . $find->getLastRequest() . "\r\n"; + echo 'Headers Request: ' . $find->getLastRequestHeaders() . "\r\n"; + echo 'XML Response: ' . $find->getLastResponse() . "\r\n"; + echo 'Headers Response: ' . $find->getLastResponseHeaders() . "\r\n"; +} + +/** + * Sample call for GetServerTimeZones operation/method +*/ +if ($result !== false) { + /** + * Display the Inbox messages if there is at least one: + * + * Task with subject "******************" that must be done at "2017-03-15T06:00:00Z" is "NotStarted" + * Task with subject "******************" that must be done at "2017-03-15T06:00:00Z" is "NotStarted" + * ... etc + */ + foreach($result->getResponseMessages()->getFindItemResponseMessage() as $message) { + $tasks = $message->getRootFolder()->getItems()->getTask(); + if(is_array($tasks)) { + foreach($tasks as $item) { + echo PHP_EOL . sprintf('Task with subject "%s" that must be done at "%s" is "%s"', + $item->getSubject(), + $item->getDueDate(), + $item->getStatus()); + } + } else { + echo PHP_EOL . 'No task found'; + } + echo PHP_EOL; + } +} else { + /** + * In this case, we get the \SoapFault object + */ + print_r($find->getLastErrorForMethod('\Ews\ServiceType\EwsFind::FindItem')); +} \ No newline at end of file From e85c4140b5f416e88c8807768fbec3d7a3a3e242 Mon Sep 17 00:00:00 2001 From: Mikael DELSOL Date: Sat, 18 Mar 2017 06:17:59 +0100 Subject: [PATCH 10/31] update samples location --- samples/{FindCalendarItems.php => calendar/FindItems.php} | 7 ++----- samples/{FindContactItems.php => contact/FindItems.php} | 7 ++----- samples/{FindInboxItems.php => inbox/FindItems.php} | 7 ++----- samples/{FindTaskItems.php => task/FindItems.php} | 7 ++----- 4 files changed, 8 insertions(+), 20 deletions(-) rename samples/{FindCalendarItems.php => calendar/FindItems.php} (93%) rename samples/{FindContactItems.php => contact/FindItems.php} (93%) rename samples/{FindInboxItems.php => inbox/FindItems.php} (93%) rename samples/{FindTaskItems.php => task/FindItems.php} (92%) diff --git a/samples/FindCalendarItems.php b/samples/calendar/FindItems.php similarity index 93% rename from samples/FindCalendarItems.php rename to samples/calendar/FindItems.php index 67d41f5..4f203be 100644 --- a/samples/FindCalendarItems.php +++ b/samples/calendar/FindItems.php @@ -47,7 +47,7 @@ */ $find->setSoapHeaderRequestServerVersion(new EwsRequestServerVersion(EwsExchangeVersionType::VALUE_EXCHANGE_2013_SP_1)); /** - * Send the request, you can customize the request by modifiying the new \Ews\StructType\EwsGetServerTimeZonesType() instance + * Send the request */ $itemType = new EwsFindItemType(); $itemShape = new EwsItemResponseShapeType(EwsDefaultShapeNamesType::VALUE_ALL_PROPERTIES); @@ -67,12 +67,9 @@ echo 'Headers Response: ' . $find->getLastResponseHeaders() . "\r\n"; } -/** - * Sample call for GetServerTimeZones operation/method -*/ if ($result !== false) { /** - * Display the Inbox messages if there is at least one: + * Display the Calendar items if there is at least one: * * Event with subject "***" starts at "2017-03-15T08:00:00-06:00" and ends at "2017-03-15T08:30:00-06:00" with timezone "(UTC-07:00) Mountain Time (US & Canada)" * Event with subject "***" starts at "2017-03-15T08:00:00-06:00" and ends at "2017-03-15T08:30:00-06:00" with timezone "(UTC-07:00) Mountain Time (US & Canada)" diff --git a/samples/FindContactItems.php b/samples/contact/FindItems.php similarity index 93% rename from samples/FindContactItems.php rename to samples/contact/FindItems.php index 5d3faab..eab5b7a 100644 --- a/samples/FindContactItems.php +++ b/samples/contact/FindItems.php @@ -47,7 +47,7 @@ */ $find->setSoapHeaderRequestServerVersion(new EwsRequestServerVersion(EwsExchangeVersionType::VALUE_EXCHANGE_2013_SP_1)); /** - * Send the request, you can customize the request by modifiying the new \Ews\StructType\EwsGetServerTimeZonesType() instance + * Send the request */ $itemType = new EwsFindItemType(); $itemShape = new EwsItemResponseShapeType(EwsDefaultShapeNamesType::VALUE_ALL_PROPERTIES); @@ -67,12 +67,9 @@ echo 'Headers Response: ' . $find->getLastResponseHeaders() . "\r\n"; } -/** - * Sample call for GetServerTimeZones operation/method -*/ if ($result !== false) { /** - * Display the Inbox messages if there is at least one: + * Display the Contact items if there is at least one: * * Contact "{firstName} {lastName} <{email}>" * Contact "{firstName} {lastName} <{email}>" diff --git a/samples/FindInboxItems.php b/samples/inbox/FindItems.php similarity index 93% rename from samples/FindInboxItems.php rename to samples/inbox/FindItems.php index f99030e..dc50594 100644 --- a/samples/FindInboxItems.php +++ b/samples/inbox/FindItems.php @@ -47,7 +47,7 @@ */ $find->setSoapHeaderRequestServerVersion(new EwsRequestServerVersion(EwsExchangeVersionType::VALUE_EXCHANGE_2013_SP_1)); /** - * Send the request, you can customize the request by modifiying the new \Ews\StructType\EwsGetServerTimeZonesType() instance + * Send the request */ $itemType = new EwsFindItemType(); $itemShape = new EwsItemResponseShapeType(EwsDefaultShapeNamesType::VALUE_ALL_PROPERTIES); @@ -67,12 +67,9 @@ echo 'Headers Response: ' . $find->getLastResponseHeaders() . "\r\n"; } -/** - * Sample call for FindItem operation/method -*/ if ($result !== false) { /** - * Display the Inbox messages if there is at least one: + * Display the Inbox items if there is at least one: * * Message from "{name} <{email}>" with subject "{subject}" sent at "2017-02-03T20:51:20Z" * Message from "{name} <{email}>" with subject "{subject}" sent at "2017-02-02T17:48:25Z" diff --git a/samples/FindTaskItems.php b/samples/task/FindItems.php similarity index 92% rename from samples/FindTaskItems.php rename to samples/task/FindItems.php index a315cc9..05c5e8e 100644 --- a/samples/FindTaskItems.php +++ b/samples/task/FindItems.php @@ -47,7 +47,7 @@ */ $find->setSoapHeaderRequestServerVersion(new EwsRequestServerVersion(EwsExchangeVersionType::VALUE_EXCHANGE_2013_SP_1)); /** - * Send the request, you can customize the request by modifiying the new \Ews\StructType\EwsGetServerTimeZonesType() instance + * Send the request */ $itemType = new EwsFindItemType(); $itemShape = new EwsItemResponseShapeType(EwsDefaultShapeNamesType::VALUE_ALL_PROPERTIES); @@ -67,12 +67,9 @@ echo 'Headers Response: ' . $find->getLastResponseHeaders() . "\r\n"; } -/** - * Sample call for GetServerTimeZones operation/method -*/ if ($result !== false) { /** - * Display the Inbox messages if there is at least one: + * Display the Tasks items if there is at least one: * * Task with subject "******************" that must be done at "2017-03-15T06:00:00Z" is "NotStarted" * Task with subject "******************" that must be done at "2017-03-15T06:00:00Z" is "NotStarted" From 04c9337da517605361047f09501a31204a95f4db Mon Sep 17 00:00:00 2001 From: Mikael DELSOL Date: Sat, 18 Mar 2017 06:18:28 +0100 Subject: [PATCH 11/31] update readme --- README.md | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index a61a24c..9555069 100755 --- a/README.md +++ b/README.md @@ -16,10 +16,14 @@ The complete list of operations is available at the [Office Dev Center](https:// - [Learn from the tutorial](#learn-from-the-tutorial) - [Start from the samples](#start-from-the-samples) - [GetServerTimeZones](samples/GetServerTimeZones.php) - - [FindInboxItems](samples/FindInboxItems.php) - - [FindContactItems](samples/FindContactItems.php) - - [FindCalendarItems](samples/FindCalendarItems.php) - - [FindTaskItems](samples/FindTaskItems.php) + - [Inbox](samples/inbox) + - [FindInboxItems](samples/inbox/FindItems.php) + - [Contact](samples/contact) + - [FindContactItems](samples/contact/FindItems.php) + - [Calendar](samples/calendar) + - [FindCalendarItems](samples/calendar/FindItems.php) + - [Task](samples/task) + - [FindTaskItems](samples/task/FindItems.php) - [Need support or having a question?](#need-support-or-having-a-question) # Generating again the package @@ -47,10 +51,14 @@ Start looking into the auto-generated [tutorial.php](tutorial.php) file. This fi Sample scripts are available under the [samples](samples) folder: - [GetServerTimeZones](samples/GetServerTimeZones.php) -- [FindInboxItems](samples/FindInboxItems.php) -- [FindContactItems](samples/FindContactItems.php) -- [FindCalendarItems](samples/FindCalendarItems.php) -- [FindTaskItems](samples/FindTaskItems.php) +- [Inbox](samples/inbox) + - [FindInboxItems](samples/inbox/FindItems.php) +- [Contact](samples/contact) + - [FindContactItems](samples/contact/FindItems.php) +- [Calendar](samples/calendar) + - [FindCalendarItems](samples/calendar/FindItems.php) +- [Task](samples/task) + - [FindTaskItems](samples/task/FindItems.php) # Need support or having a question? We can help you understand how to use it and how to customize it. Feel free to contact us at contact@wsdltophp.com. \ No newline at end of file From 2a464b87abc519a2d5ac9a1db40e70e8bce1764a Mon Sep 17 00:00:00 2001 From: Mikael DELSOL Date: Sat, 18 Mar 2017 06:19:16 +0100 Subject: [PATCH 12/31] review readme --- README.md | 9 --------- 1 file changed, 9 deletions(-) diff --git a/README.md b/README.md index 9555069..d54b8ca 100755 --- a/README.md +++ b/README.md @@ -15,15 +15,6 @@ The complete list of operations is available at the [Office Dev Center](https:// - [Install the project](#install-the-project) - [Learn from the tutorial](#learn-from-the-tutorial) - [Start from the samples](#start-from-the-samples) - - [GetServerTimeZones](samples/GetServerTimeZones.php) - - [Inbox](samples/inbox) - - [FindInboxItems](samples/inbox/FindItems.php) - - [Contact](samples/contact) - - [FindContactItems](samples/contact/FindItems.php) - - [Calendar](samples/calendar) - - [FindCalendarItems](samples/calendar/FindItems.php) - - [Task](samples/task) - - [FindTaskItems](samples/task/FindItems.php) - [Need support or having a question?](#need-support-or-having-a-question) # Generating again the package From 659a944ec4c4e1dadb656434c5c46130420d063b Mon Sep 17 00:00:00 2001 From: Mikael DELSOL Date: Sat, 18 Mar 2017 06:21:18 +0100 Subject: [PATCH 13/31] update paths --- README.md | 8 ++++---- samples/calendar/FindItems.php | 4 ++-- samples/contact/FindItems.php | 4 ++-- samples/inbox/FindItems.php | 4 ++-- samples/task/FindItems.php | 4 ++-- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index d54b8ca..1194976 100755 --- a/README.md +++ b/README.md @@ -43,13 +43,13 @@ Sample scripts are available under the [samples](samples) folder: - [GetServerTimeZones](samples/GetServerTimeZones.php) - [Inbox](samples/inbox) - - [FindInboxItems](samples/inbox/FindItems.php) + - [FindItems](samples/inbox/FindItems.php) - [Contact](samples/contact) - - [FindContactItems](samples/contact/FindItems.php) + - [FindItems](samples/contact/FindItems.php) - [Calendar](samples/calendar) - - [FindCalendarItems](samples/calendar/FindItems.php) + - [FindItems](samples/calendar/FindItems.php) - [Task](samples/task) - - [FindTaskItems](samples/task/FindItems.php) + - [FindItems](samples/task/FindItems.php) # Need support or having a question? We can help you understand how to use it and how to customize it. Feel free to contact us at contact@wsdltophp.com. \ No newline at end of file diff --git a/samples/calendar/FindItems.php b/samples/calendar/FindItems.php index 4f203be..621137d 100644 --- a/samples/calendar/FindItems.php +++ b/samples/calendar/FindItems.php @@ -2,7 +2,7 @@ /** * Composer autoload */ -require_once __DIR__ . '/../vendor/autoload.php'; +require_once __DIR__ . '/../../vendor/autoload.php'; /** * Used classes @@ -32,7 +32,7 @@ * Minimal options in order to instanciate the ServiceType named Get */ $options = array( - AbstractSoapClientBase::WSDL_URL => __DIR__ . '/../wsdl/services.wsdl', + AbstractSoapClientBase::WSDL_URL => __DIR__ . '/../../wsdl/services.wsdl', AbstractSoapClientBase::WSDL_CLASSMAP => EwsClassMap::get(), AbstractSoapClientBase::WSDL_LOGIN => EWS_WS_LOGIN, AbstractSoapClientBase::WSDL_PASSWORD => EWS_WS_PASSWORD, diff --git a/samples/contact/FindItems.php b/samples/contact/FindItems.php index eab5b7a..c99adfb 100644 --- a/samples/contact/FindItems.php +++ b/samples/contact/FindItems.php @@ -2,7 +2,7 @@ /** * Composer autoload */ -require_once __DIR__ . '/../vendor/autoload.php'; +require_once __DIR__ . '/../../vendor/autoload.php'; /** * Used classes @@ -32,7 +32,7 @@ * Minimal options in order to instanciate the ServiceType named Get */ $options = array( - AbstractSoapClientBase::WSDL_URL => __DIR__ . '/../wsdl/services.wsdl', + AbstractSoapClientBase::WSDL_URL => __DIR__ . '/../../wsdl/services.wsdl', AbstractSoapClientBase::WSDL_CLASSMAP => EwsClassMap::get(), AbstractSoapClientBase::WSDL_LOGIN => EWS_WS_LOGIN, AbstractSoapClientBase::WSDL_PASSWORD => EWS_WS_PASSWORD, diff --git a/samples/inbox/FindItems.php b/samples/inbox/FindItems.php index dc50594..f3aa234 100644 --- a/samples/inbox/FindItems.php +++ b/samples/inbox/FindItems.php @@ -2,7 +2,7 @@ /** * Composer autoload */ -require_once __DIR__ . '/../vendor/autoload.php'; +require_once __DIR__ . '/../../vendor/autoload.php'; /** * Used classes @@ -32,7 +32,7 @@ * Minimal options in order to instanciate the ServiceType named Get */ $options = array( - AbstractSoapClientBase::WSDL_URL => __DIR__ . '/../wsdl/services.wsdl', + AbstractSoapClientBase::WSDL_URL => __DIR__ . '/../../wsdl/services.wsdl', AbstractSoapClientBase::WSDL_CLASSMAP => EwsClassMap::get(), AbstractSoapClientBase::WSDL_LOGIN => EWS_WS_LOGIN, AbstractSoapClientBase::WSDL_PASSWORD => EWS_WS_PASSWORD, diff --git a/samples/task/FindItems.php b/samples/task/FindItems.php index 05c5e8e..e8dca56 100644 --- a/samples/task/FindItems.php +++ b/samples/task/FindItems.php @@ -2,7 +2,7 @@ /** * Composer autoload */ -require_once __DIR__ . '/../vendor/autoload.php'; +require_once __DIR__ . '/../../vendor/autoload.php'; /** * Used classes @@ -32,7 +32,7 @@ * Minimal options in order to instanciate the ServiceType named Get */ $options = array( - AbstractSoapClientBase::WSDL_URL => __DIR__ . '/../wsdl/services.wsdl', + AbstractSoapClientBase::WSDL_URL => __DIR__ . '/../../wsdl/services.wsdl', AbstractSoapClientBase::WSDL_CLASSMAP => EwsClassMap::get(), AbstractSoapClientBase::WSDL_LOGIN => EWS_WS_LOGIN, AbstractSoapClientBase::WSDL_PASSWORD => EWS_WS_PASSWORD, From 5505cc6598e894e2fb65b5c7dc968331332f41a4 Mon Sep 17 00:00:00 2001 From: Mikael DELSOL Date: Sat, 18 Mar 2017 06:26:12 +0100 Subject: [PATCH 14/31] add samples for GetItem operation --- README.md | 4 ++ samples/calendar/GetItem.php | 107 ++++++++++++++++++++++++++++++++++ samples/contact/GetItem.php | 110 +++++++++++++++++++++++++++++++++++ samples/inbox/GetItem.php | 109 ++++++++++++++++++++++++++++++++++ samples/task/GetItem.php | 108 ++++++++++++++++++++++++++++++++++ 5 files changed, 438 insertions(+) create mode 100644 samples/calendar/GetItem.php create mode 100644 samples/contact/GetItem.php create mode 100644 samples/inbox/GetItem.php create mode 100644 samples/task/GetItem.php diff --git a/README.md b/README.md index 1194976..0e79f82 100755 --- a/README.md +++ b/README.md @@ -44,12 +44,16 @@ Sample scripts are available under the [samples](samples) folder: - [GetServerTimeZones](samples/GetServerTimeZones.php) - [Inbox](samples/inbox) - [FindItems](samples/inbox/FindItems.php) + - [GetItem](samples/inbox/GetItem.php) - [Contact](samples/contact) - [FindItems](samples/contact/FindItems.php) + - [GetItem](samples/contact/GetItem.php) - [Calendar](samples/calendar) - [FindItems](samples/calendar/FindItems.php) + - [GetItem](samples/calendar/GetItem.php) - [Task](samples/task) - [FindItems](samples/task/FindItems.php) + - [GetItem](samples/task/GetItem.php) # Need support or having a question? We can help you understand how to use it and how to customize it. Feel free to contact us at contact@wsdltophp.com. \ No newline at end of file diff --git a/samples/calendar/GetItem.php b/samples/calendar/GetItem.php new file mode 100644 index 0000000..f408302 --- /dev/null +++ b/samples/calendar/GetItem.php @@ -0,0 +1,107 @@ + __DIR__ . '/../../wsdl/services.wsdl', + AbstractSoapClientBase::WSDL_CLASSMAP => EwsClassMap::get(), + AbstractSoapClientBase::WSDL_LOGIN => EWS_WS_LOGIN, + AbstractSoapClientBase::WSDL_PASSWORD => EWS_WS_PASSWORD, +); + +/** + * Instanciation of the ServiceType get that gather all the operations beginnig with "get". + */ +$get = new \Ews\ServiceType\EwsGet($options); +/** + * Configure the SoapHeader, each header's method begins with "setSoapHeader". + */ +$get->setSoapHeaderRequestServerVersion(new EwsRequestServerVersion(EwsExchangeVersionType::VALUE_EXCHANGE_2013_SP_1)); +/** + * Send the request with your actual ID + * inbox item id : AQMkADdmZTc2Y2EwLWM4QtNGNkYi1iOTZhLTI4ZTIzNjEwZGIzZgBGAAAD4a54IMUm0UC0Oie/nN4R4AcAHM3Rq81r8UGBMGXZ2QDPNOoAAAIBDAAAADSezQdp0a5Anuxdk9hQzRAAAAIFUQAAAA== + * calendar item id : AAMkADdmZTc2Y2EwL4YmQtNGNkYi1iOTZhLTI4ZTIzNjEwZGIzZgBGAAAAAADhrnggxSbRQLQ6J7+c3hHgBwAczdGrzWvxQYEwZdnZzzTqAAAAAAENAAA0ns0HadGuQJ7sXZPYUM0QAAAVnj3eAAA= + * taks item id : AAMkADdmZTc2Y2EwLWM4YtNGNkYi1iOTZhLTI4ZTIzNjEwZGIzZgBGAAAAAADhrnggxSbRQLQ6J7+c3hHgBwAczdGrzWvxQYEwZdnZzzTqAAAAAAESAAA0ns0HadGuQJ7sXZPYUM0QAAAVnkW1AAA= + * contac titme id : AAMkADdmZTc2Y2EwLWYmQtNGNkYi1iOTZhLTI4ZTIzNjEwZGIzZgBGAAAAAADhrnggxSbRQLQ6J7+c3hHgBwAczdGrzWvxQYEwZdnZzzTqAAAAAAEOAAA0ns0HadGuQJ7sXZPYUM0QAAAVnjYCAAA= + */ +$itemType = new EwsGetItemType(); +$shapeType = new EwsItemResponseShapeType(); +$shapeType + ->setBaseShape(EwsDefaultShapeNamesType::VALUE_ALL_PROPERTIES) + ->setBodyType(EwsBodyTypeResponseType::VALUE_BEST); +$itemType + ->setItemShape($shapeType) + ->setItemIds( + new EwsNonEmptyArrayOfBaseItemIdsType( + new EwsItemIdType('******************************************************************************************************************************************************') + ) + ); +$result = $get->GetItem($itemType); + +/** + * Debug informations provided by the utility methods + */ +if (false) { + echo 'XML Request: ' . $get->getLastRequest() . "\r\n"; + echo 'Headers Request: ' . $get->getLastRequestHeaders() . "\r\n"; + echo 'XML Response: ' . $get->getLastResponse() . "\r\n"; + echo 'Headers Response: ' . $get->getLastResponseHeaders() . "\r\n"; +} + +if ($result !== false) { + /** + * Display the item data depending on its type: + */ + foreach($result->getResponseMessages()->getGetItemResponseMessage() as $message) { + /** + * In case of a Calendar Item + */ + if (is_array($message->getItems()->getCalendarItem())) { + foreach($message->getItems()->getCalendarItem() as $item) { + if ($item instanceof EwsCalendarItemType) { + echo PHP_EOL . sprintf('Appointment named "%s" takes place at "%s"', + $item->getSubject(), + $item->getStartWallClock()); + } + } + } + echo PHP_EOL; + } +} else { + /** + * In this case, we get the \SoapFault object + */ + print_r($get->getLastErrorForMethod('\Ews\ServiceType\EwsGet::GetItem')); +} \ No newline at end of file diff --git a/samples/contact/GetItem.php b/samples/contact/GetItem.php new file mode 100644 index 0000000..0e19804 --- /dev/null +++ b/samples/contact/GetItem.php @@ -0,0 +1,110 @@ + __DIR__ . '/../../wsdl/services.wsdl', + AbstractSoapClientBase::WSDL_CLASSMAP => EwsClassMap::get(), + AbstractSoapClientBase::WSDL_LOGIN => EWS_WS_LOGIN, + AbstractSoapClientBase::WSDL_PASSWORD => EWS_WS_PASSWORD, +); + +/** + * Instanciation of the ServiceType get that gather all the operations beginnig with "get". + */ +$get = new \Ews\ServiceType\EwsGet($options); +/** + * Configure the SoapHeader, each header's method begins with "setSoapHeader". + */ +$get->setSoapHeaderRequestServerVersion(new EwsRequestServerVersion(EwsExchangeVersionType::VALUE_EXCHANGE_2013_SP_1)); +/** + * Send the request with your actual ID + * inbox item id : AQMkADdmZTc2Y2EwLWM4QtNGNkYi1iOTZhLTI4ZTIzNjEwZGIzZgBGAAAD4a54IMUm0UC0Oie/nN4R4AcAHM3Rq81r8UGBMGXZ2QDPNOoAAAIBDAAAADSezQdp0a5Anuxdk9hQzRAAAAIFUQAAAA== + * calendar item id : AAMkADdmZTc2Y2EwL4YmQtNGNkYi1iOTZhLTI4ZTIzNjEwZGIzZgBGAAAAAADhrnggxSbRQLQ6J7+c3hHgBwAczdGrzWvxQYEwZdnZzzTqAAAAAAENAAA0ns0HadGuQJ7sXZPYUM0QAAAVnj3eAAA= + * taks item id : AAMkADdmZTc2Y2EwLWM4YtNGNkYi1iOTZhLTI4ZTIzNjEwZGIzZgBGAAAAAADhrnggxSbRQLQ6J7+c3hHgBwAczdGrzWvxQYEwZdnZzzTqAAAAAAESAAA0ns0HadGuQJ7sXZPYUM0QAAAVnkW1AAA= + * contac titme id : AAMkADdmZTc2Y2EwLWYmQtNGNkYi1iOTZhLTI4ZTIzNjEwZGIzZgBGAAAAAADhrnggxSbRQLQ6J7+c3hHgBwAczdGrzWvxQYEwZdnZzzTqAAAAAAEOAAA0ns0HadGuQJ7sXZPYUM0QAAAVnjYCAAA= + */ +$itemType = new EwsGetItemType(); +$shapeType = new EwsItemResponseShapeType(); +$shapeType + ->setBaseShape(EwsDefaultShapeNamesType::VALUE_ALL_PROPERTIES) + ->setBodyType(EwsBodyTypeResponseType::VALUE_BEST); +$itemType + ->setItemShape($shapeType) + ->setItemIds( + new EwsNonEmptyArrayOfBaseItemIdsType( + new EwsItemIdType('******************************************************************************************************************************************************') + ) + ); +$result = $get->GetItem($itemType); + +/** + * Debug informations provided by the utility methods + */ +if (false) { + echo 'XML Request: ' . $get->getLastRequest() . "\r\n"; + echo 'Headers Request: ' . $get->getLastRequestHeaders() . "\r\n"; + echo 'XML Response: ' . $get->getLastResponse() . "\r\n"; + echo 'Headers Response: ' . $get->getLastResponseHeaders() . "\r\n"; +} + +if ($result !== false) { + /** + * Display the item data depending on its type: + */ + foreach($result->getResponseMessages()->getGetItemResponseMessage() as $message) { + /** + * In case of an Inbox Item + */ + if (is_array($message->getItems()->getMessage())) { + foreach($message->getItems()->getMessage() as $item) { + if ($item instanceof EwsMessageType) { + echo PHP_EOL . sprintf('Email sent by "%s <%s>" with subject "%s" sent at "%s" received at "%s"', + $item->getSender()->getMailbox()->getName(), + $item->getSender()->getMailbox()->getEmailAddress(), + $item->getSubject(), + $item->getDateTimeSent(), + $item->getDateTimeReceived()); + } + } + } + echo PHP_EOL; + } +} else { + /** + * In this case, we get the \SoapFault object + */ + print_r($get->getLastErrorForMethod('\Ews\ServiceType\EwsGet::GetItem')); +} \ No newline at end of file diff --git a/samples/inbox/GetItem.php b/samples/inbox/GetItem.php new file mode 100644 index 0000000..39cfd15 --- /dev/null +++ b/samples/inbox/GetItem.php @@ -0,0 +1,109 @@ + __DIR__ . '/../../wsdl/services.wsdl', + AbstractSoapClientBase::WSDL_CLASSMAP => EwsClassMap::get(), + AbstractSoapClientBase::WSDL_LOGIN => EWS_WS_LOGIN, + AbstractSoapClientBase::WSDL_PASSWORD => EWS_WS_PASSWORD, +); + +/** + * Instanciation of the ServiceType get that gather all the operations beginnig with "get". + */ +$get = new \Ews\ServiceType\EwsGet($options); +/** + * Configure the SoapHeader, each header's method begins with "setSoapHeader". + */ +$get->setSoapHeaderRequestServerVersion(new EwsRequestServerVersion(EwsExchangeVersionType::VALUE_EXCHANGE_2013_SP_1)); +/** + * Send the request with your actual ID + * inbox item id : AQMkADdmZTc2Y2EwLWM4QtNGNkYi1iOTZhLTI4ZTIzNjEwZGIzZgBGAAAD4a54IMUm0UC0Oie/nN4R4AcAHM3Rq81r8UGBMGXZ2QDPNOoAAAIBDAAAADSezQdp0a5Anuxdk9hQzRAAAAIFUQAAAA== + * calendar item id : AAMkADdmZTc2Y2EwL4YmQtNGNkYi1iOTZhLTI4ZTIzNjEwZGIzZgBGAAAAAADhrnggxSbRQLQ6J7+c3hHgBwAczdGrzWvxQYEwZdnZzzTqAAAAAAENAAA0ns0HadGuQJ7sXZPYUM0QAAAVnj3eAAA= + * taks item id : AAMkADdmZTc2Y2EwLWM4YtNGNkYi1iOTZhLTI4ZTIzNjEwZGIzZgBGAAAAAADhrnggxSbRQLQ6J7+c3hHgBwAczdGrzWvxQYEwZdnZzzTqAAAAAAESAAA0ns0HadGuQJ7sXZPYUM0QAAAVnkW1AAA= + * contac titme id : AAMkADdmZTc2Y2EwLWYmQtNGNkYi1iOTZhLTI4ZTIzNjEwZGIzZgBGAAAAAADhrnggxSbRQLQ6J7+c3hHgBwAczdGrzWvxQYEwZdnZzzTqAAAAAAEOAAA0ns0HadGuQJ7sXZPYUM0QAAAVnjYCAAA= + */ +$itemType = new EwsGetItemType(); +$shapeType = new EwsItemResponseShapeType(); +$shapeType + ->setBaseShape(EwsDefaultShapeNamesType::VALUE_ALL_PROPERTIES) + ->setBodyType(EwsBodyTypeResponseType::VALUE_BEST); +$itemType + ->setItemShape($shapeType) + ->setItemIds( + new EwsNonEmptyArrayOfBaseItemIdsType( + new EwsItemIdType('******************************************************************************************************************************************************') + ) + ); +$result = $get->GetItem($itemType); + +/** + * Debug informations provided by the utility methods + */ +if (false) { + echo 'XML Request: ' . $get->getLastRequest() . "\r\n"; + echo 'Headers Request: ' . $get->getLastRequestHeaders() . "\r\n"; + echo 'XML Response: ' . $get->getLastResponse() . "\r\n"; + echo 'Headers Response: ' . $get->getLastResponseHeaders() . "\r\n"; +} + +if ($result !== false) { + /** + * Display the item data depending on its type: + */ + foreach($result->getResponseMessages()->getGetItemResponseMessage() as $message) { + /** + * In case of a Contact Item + */ + if (is_array($message->getItems()->getContact())) { + foreach($message->getItems()->getContact() as $item) { + if ($item instanceof EwsContactItemType) { + $addresses = $item->getEmailAddresses()->getEntry(); + echo PHP_EOL . sprintf('Contact "%s %s <%s>"', + $item->getCompleteName()->getFirstName(), + $item->getCompleteName()->getLastName(), + is_array($addresses) ? array_shift($addresses)->get_() : ''); + } + } + } + echo PHP_EOL; + } +} else { + /** + * In this case, we get the \SoapFault object + */ + print_r($get->getLastErrorForMethod('\Ews\ServiceType\EwsGet::GetItem')); +} \ No newline at end of file diff --git a/samples/task/GetItem.php b/samples/task/GetItem.php new file mode 100644 index 0000000..7306434 --- /dev/null +++ b/samples/task/GetItem.php @@ -0,0 +1,108 @@ + __DIR__ . '/../../wsdl/services.wsdl', + AbstractSoapClientBase::WSDL_CLASSMAP => EwsClassMap::get(), + AbstractSoapClientBase::WSDL_LOGIN => EWS_WS_LOGIN, + AbstractSoapClientBase::WSDL_PASSWORD => EWS_WS_PASSWORD, +); + +/** + * Instanciation of the ServiceType get that gather all the operations beginnig with "get". + */ +$get = new \Ews\ServiceType\EwsGet($options); +/** + * Configure the SoapHeader, each header's method begins with "setSoapHeader". + */ +$get->setSoapHeaderRequestServerVersion(new EwsRequestServerVersion(EwsExchangeVersionType::VALUE_EXCHANGE_2013_SP_1)); +/** + * Send the request with your actual ID + * inbox item id : AQMkADdmZTc2Y2EwLWM4QtNGNkYi1iOTZhLTI4ZTIzNjEwZGIzZgBGAAAD4a54IMUm0UC0Oie/nN4R4AcAHM3Rq81r8UGBMGXZ2QDPNOoAAAIBDAAAADSezQdp0a5Anuxdk9hQzRAAAAIFUQAAAA== + * calendar item id : AAMkADdmZTc2Y2EwL4YmQtNGNkYi1iOTZhLTI4ZTIzNjEwZGIzZgBGAAAAAADhrnggxSbRQLQ6J7+c3hHgBwAczdGrzWvxQYEwZdnZzzTqAAAAAAENAAA0ns0HadGuQJ7sXZPYUM0QAAAVnj3eAAA= + * taks item id : AAMkADdmZTc2Y2EwLWM4YtNGNkYi1iOTZhLTI4ZTIzNjEwZGIzZgBGAAAAAADhrnggxSbRQLQ6J7+c3hHgBwAczdGrzWvxQYEwZdnZzzTqAAAAAAESAAA0ns0HadGuQJ7sXZPYUM0QAAAVnkW1AAA= + * contac titme id : AAMkADdmZTc2Y2EwLWYmQtNGNkYi1iOTZhLTI4ZTIzNjEwZGIzZgBGAAAAAADhrnggxSbRQLQ6J7+c3hHgBwAczdGrzWvxQYEwZdnZzzTqAAAAAAEOAAA0ns0HadGuQJ7sXZPYUM0QAAAVnjYCAAA= + */ +$itemType = new EwsGetItemType(); +$shapeType = new EwsItemResponseShapeType(); +$shapeType + ->setBaseShape(EwsDefaultShapeNamesType::VALUE_ALL_PROPERTIES) + ->setBodyType(EwsBodyTypeResponseType::VALUE_BEST); +$itemType + ->setItemShape($shapeType) + ->setItemIds( + new EwsNonEmptyArrayOfBaseItemIdsType( + new EwsItemIdType('******************************************************************************************************************************************************') + ) + ); +$result = $get->GetItem($itemType); + +/** + * Debug informations provided by the utility methods + */ +if (false) { + echo 'XML Request: ' . $get->getLastRequest() . "\r\n"; + echo 'Headers Request: ' . $get->getLastRequestHeaders() . "\r\n"; + echo 'XML Response: ' . $get->getLastResponse() . "\r\n"; + echo 'Headers Response: ' . $get->getLastResponseHeaders() . "\r\n"; +} + +if ($result !== false) { + /** + * Display the item data depending on its type: + */ + foreach($result->getResponseMessages()->getGetItemResponseMessage() as $message) { + /** + * In case of a Task Item + */ + if (is_array($message->getItems()->getTask())) { + foreach($message->getItems()->getTask() as $item) { + if ($item instanceof EwsTaskType) { + echo PHP_EOL . sprintf('Task with subject "%s" that must be done at "%s" is "%s"', + $item->getSubject(), + $item->getDueDate(), + $item->getStatus()); + } + } + } + echo PHP_EOL; + } +} else { + /** + * In this case, we get the \SoapFault object + */ + print_r($get->getLastErrorForMethod('\Ews\ServiceType\EwsGet::GetItem')); +} \ No newline at end of file From e2d101b9202a27b2702793b266067f3380c361fa Mon Sep 17 00:00:00 2001 From: Mikael DELSOL Date: Sat, 18 Mar 2017 06:47:04 +0100 Subject: [PATCH 15/31] remove unnecessary lines --- samples/calendar/GetItem.php | 3 --- samples/contact/GetItem.php | 3 --- samples/inbox/GetItem.php | 3 --- samples/task/GetItem.php | 3 --- 4 files changed, 12 deletions(-) diff --git a/samples/calendar/GetItem.php b/samples/calendar/GetItem.php index f408302..bae4460 100644 --- a/samples/calendar/GetItem.php +++ b/samples/calendar/GetItem.php @@ -1,7 +1,4 @@ Date: Tue, 21 Mar 2017 00:03:46 +0100 Subject: [PATCH 16/31] remove empty tags not handled by EWS --- SoapClient/SoapClient.php | 76 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/SoapClient/SoapClient.php b/SoapClient/SoapClient.php index eb7bb28..ed5133a 100755 --- a/SoapClient/SoapClient.php +++ b/SoapClient/SoapClient.php @@ -8,4 +8,80 @@ */ class SoapClient extends \SoapClient { + /** + * @var string + */ + protected $lastModifiedRequest; + /** + * @param string $request + * @param string $location + * @param string $action + * @param string $version + * @param number $one_way + * @return mixed + */ + public function __doRequest($request, $location, $action, $version, $one_way = 0) + { + $this->removeEmptyTags($request); + return parent::__doRequest($this->__getLastRequest(), $location, $action, $version, $one_way); + } + /** + * Returns last request + * @see SoapClient::__getLastRequest() + * @return string + */ + public function __getLastRequest() + { + return $this->lastModifiedRequest; + } + /** + * Sets last request values + * @param string $_lastRequest + * @return string + */ + public function __setLastRequest($lastRequest) + { + return ($this->lastModifiedRequest = $lastRequest); + } + /** + * Removes empty tags from XML + * @param string $xml + * @param array $exceptTags + * @return string + */ + private function removeEmptyTags($xml, $exceptTags = array()) + { + if (!empty($xml)) { + $dom = new \DOMDocument('1.0', 'UTF-8'); + $dom->formatOutput = true; + if ($dom->loadXML($xml) && $dom->hasChildNodes()) { + $mainNode = $dom->childNodes->item(0); + self::removeEmptyTagsFromDomNode($mainNode, $exceptTags); + $xml = $dom->saveXML($mainNode); + } + } + return $this->__setLastRequest($xml); + } + /** + * Removes empty tags from \DOMNode + * @uses RemoveEmptyRequestTags::removeEmptyTagsFromDomNode() + * @param \DOMNode $domNode + * @return void + */ + private static function removeEmptyTagsFromDomNode(\DOMNode &$domNode, $exceptTags = array()) + { + if ($domNode->hasChildNodes()) { + foreach ($domNode->childNodes as $childNode) { + self::removeEmptyTagsFromDomNode($childNode, $exceptTags); + } + } elseif (trim($domNode->nodeValue) === '' && !in_array($domNode->nodeName, $exceptTags) && $domNode->attributes->length === 0) { + /** + * As the parent might not have returned an empty value as it contained this child + * we go process back the parent to be sure that he validated as not empty + */ + $parentNode = $domNode->parentNode; + $domNode->parentNode->removeChild($domNode); + self::removeEmptyTagsFromDomNode($parentNode, $exceptTags); + } + } } From abe106983ec81061d528f2a57681e614b08819a0 Mon Sep 17 00:00:00 2001 From: Mikael DELSOL Date: Tue, 21 Mar 2017 00:04:08 +0100 Subject: [PATCH 17/31] add script to convert substitutionGroup --- substitutionGroup.php | 68 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 substitutionGroup.php diff --git a/substitutionGroup.php b/substitutionGroup.php new file mode 100644 index 0000000..626c065 --- /dev/null +++ b/substitutionGroup.php @@ -0,0 +1,68 @@ +ouputFormated = true; +$dom->formatedOutput = true; +$dom->load(__DIR__ . '/wsdl/services.wsdl'); +$generator = new Generator(GeneratorOptions::instance()->setOrigin(__DIR__ . '/wsdl/services.wsdl')); + +$wsdl = new Wsdl($dom, $generator); +$includeParser = new TagInclude($generator); +$importParser = new TagImport($generator); +$includeParser->parse(); +$importParser->parse(); + +echo $generator->getWsdl()->getContent()->getExternalSchemas()->count(); + +$substitionGroupNames = array('t:SearchExpression', 't:Path', 't:Transition'); +foreach($substitionGroupNames as $substitionGroupName) { + $substitionGroups = $generator->getWsdl()->getContent()->getElementsByNameAndAttributes('element', array( + 'substitutionGroup' => $substitionGroupName + ), null, true); + + echo PHP_EOL . sprintf(' %s subscription groups found for %s', count($substitionGroups), $substitionGroupName) . PHP_EOL; + + foreach($generator->getWsdl()->getContent()->getExternalSchemas() as $externalSchema) { + /** @var \WsdlToPhp\PackageGenerator\Container\Model\Schema $externalSchema */ + $searchExpressions = $externalSchema->getContent()->getElementsByNameAndAttributes('element', array( + 'ref' => $substitionGroupName + ), null, true); + + echo PHP_EOL . sprintf('%s %s found in %s', count($searchExpressions), $substitionGroupName, $externalSchema->getName()) . PHP_EOL; + + foreach($searchExpressions as $searchExpression) { + $parent = $searchExpression->getParent(); + $parent->getElement()->removeChild($searchExpression->getNode()); + $parent->getElement()->appendChild($parent->getDomDocumentHandler()->getRootElement()->getParent()->getNode()->createComment(' ### Subscription group ' . $substitionGroupName . ' is replaced by actual elements ### ')); + foreach($substitionGroups as $substitionGroup) { + echo PHP_EOL . $substitionGroup->getAttributeName(); + $node = $parent->getDomDocumentHandler()->getRootElement()->getParent()->getNode()->createElementNS('http://www.w3.org/2001/XMLSchema', 'element'); + $node->setAttribute('name', $substitionGroup->getAttributeName()); + $node->setAttribute('type', $substitionGroup->getAttribute('type')->getValue(true)); + $parent->getElement()->appendChild($node); + } + $parent->getDomDocumentHandler()->getRootElement()->getParent()->getNode()->formatOutput = true; + } + echo $externalSchema->getContent()->getRootElement()->getParent()->getNode()->save(str_replace('.xsd', '.updated.xsd', $externalSchema->getName())); + } +} + +echo PHP_EOL; From 88a62d64e0802dc73076bb6ac48d397fb41613d7 Mon Sep 17 00:00:00 2001 From: Mikael DELSOL Date: Tue, 21 Mar 2017 00:04:35 +0100 Subject: [PATCH 18/31] add updated wsdl/schema after running substitutionGroup.php script --- wsdl/messages.updated.xsd | 5978 +++++++++++++++++++++++ wsdl/services.updated.wsdl | 2776 +++++++++++ wsdl/types.updated.xsd | 9185 ++++++++++++++++++++++++++++++++++++ 3 files changed, 17939 insertions(+) create mode 100644 wsdl/messages.updated.xsd create mode 100644 wsdl/services.updated.wsdl create mode 100644 wsdl/types.updated.xsd diff --git a/wsdl/messages.updated.xsd b/wsdl/messages.updated.xsd new file mode 100644 index 0000000..b3e0879 --- /dev/null +++ b/wsdl/messages.updated.xsd @@ -0,0 +1,5978 @@ + + + + + + + + + Represents the message keys that can be returned by response error messages + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Converts the passed source ids into the destination format. Change keys are not returned. + + + + + + + + + + + + + + + Response type for the ConvertId web method + + + + + + + + + Response Message for a single id conversion in the ConvertId web method. Note that the AlternateId element will be missing in the case of an error. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Request type for the FindMailboxStatisticsByKeywords web method. + + + + + + + + + + + + + + + + + + + + + + + + Response type for the FindMailboxStatisticsByKeywords web method. + + + + + + + + + + Response message type for the FindMailboxStatisticsByKeywords web method. + + + + + + + + + + + + + + Request type for the GetSearchableMailboxes web method. + + + + + + + + + + + + + + + Response message type for the GetSearchableMailboxes web method. + + + + + + + + + + + + + + + + Request type for the SearchMailboxes web method. + + + + + + + + + + + + + + + + + + + + + + Response type for the SearchMailboxes web method. + + + + + + + + + + Response message type for the SearchMailboxes web method. + + + + + + + + + + + + + + Request type for the GetDiscoverySearchConfiguration web method. + + + + + + + + + + + + + + + + Response message type for the GetDiscoverySearchConfiguration web method. + + + + + + + + + + + + + + + Request type for the GetHoldOnMailboxes web method. + + + + + + + + + + + + + + Response message type for the GetHoldOnMailboxes web method. + + + + + + + + + + + + + + + Request type for the SetHoldOnMailboxes web method. + + + + + + + + + + + + + + + + + + + + + + Response message type for the SetHoldOnMailboxes web method. + + + + + + + + + + + + + + + Request type for the GetNonIndexableItemStatistics web method. + + + + + + + + + + + + + + + Response message type for the GetNonIndexableItemStatistics web method. + + + + + + + + + + + + + + + Request type for the GetNonIndexableItemDetails web method. + + + + + + + + + + + + + + + + + + Response message type for the GetNonIndexableItemDetails web method. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Request type for the GetUserRetentionPolicyTags web method. + + + + + + + + + + + Response message type for the GetUserRetentionPolicyTags web method. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wsdl/services.updated.wsdl b/wsdl/services.updated.wsdl new file mode 100644 index 0000000..f197565 --- /dev/null +++ b/wsdl/services.updated.wsdl @@ -0,0 +1,2776 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wsdl/types.updated.xsd b/wsdl/types.updated.xsd new file mode 100644 index 0000000..bcd1a74 --- /dev/null +++ b/wsdl/types.updated.xsd @@ -0,0 +1,9185 @@ + + + + + + + + + + Allow attributes in the soap namespace to be used here + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Allow attributes in the soap namespace to be used here + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Allow attributes in the soap namespace to be used here + + + + + + + Surfaces the various logon types that are supported for conversion + + + + + + + + + + + + + + + Allow attributes in the soap namespace to be used here + + + + + + + + + + + + + + + + + + + + + + + + + + Allow attributes in the soap namespace to be used here + + + + + + + + + + + + + + + + + + + + + + + + + Allow attributes in the soap namespace to be used here + + + + + + + + Precision for returned DateTime values + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Identifier for a fully resolved email address + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The regular expression captures the standard representation of a GUID + + + + + + + + + Defines the well known property set ids for extended properties. + + + + + + + + + + + + + + + + + + Includes all of the extended property types that we support. Note that Error, Null, Object and Object array can not be used in restrictions, or for setting/getting values. They are only there for error reporting purposes. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This type represents the property tag (MINUS the type part). There are two options for representation: 1. Hex ==> 0x3fa4 2. Decimal ==> 0-65535 + + + + + + + + + + + + + Represents an extended property. Note that there are only a couple of valid attribute combinations. Note that all occurances require the PropertyType attribute. 1. (DistinguishedPropertySetId || PropertySetId) + (PropertyName || Property Id) 2. PropertyTag + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents an extended property instance (both its path identifier along with its associated value). + + + + + + + + + + + + + + Types of compliance operation action + + + + + + + + + + + Types of sub-tree traversal for deletion and enumeration + + + + + + + + + + Types of sub-tree traversal for deletion and enumeration + + + + + + + + + Types of sub-tree traversal for deletion and enumeration + + + + + + + + + + Types of sub-tree traversal for conversations + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Type of conflict resolution to attempt during update + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Utility type which should never appear in user documents + + + + + + + + + URIs for the distinguished folders accessible from a mailbox + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Identifier for a distinguished folder + + + + + + + + + + + + + + Identifier for a fully resolved folder + + + + + + + + + + + Identifier for a address list + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Types of view filters for finding items/conversations + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Compound property for Managed Folder related information for Managed Folders. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Abstract base type for item identifiers. Should never be used in web service calls + + + + + + + + + Identifier for a fully resolved item + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Internal abstract base type for reply objects. Should not appear in client code + + + + + + + + + + + + + Abstract base type for reply objects + + + + + + The name of this reply object class as an English string. The client application is required to translate it if it's running in a different locale + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Allow attributes in the soap namespace to be used here + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This max/min evaluation is applied to the field specified within the group by instance for EACH item within that group. This determines which item from each group is to be selected as the representative for that group. + + + + + + + + + + Represents the field of each item to aggregate on and the qualifier to apply to that field in determining which item will represent the group. + + + + + + + + + + + + + + + + Allows consumers to specify arbitrary groupings for FindItem queries. + + + + + + + + + + + + + + + + + + + Represents standard groupings for GroupBy queries. + + + + + + + + + Allows consumers to access standard groupings for FindItem queries. This is in contrast to the arbitrary (custom) groupings available via the t:GroupByType + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Surfaces the various id types that are supported for conversion + + + + + + + + + + + + + Surfaces alternate representations of an item or folder id. No change key is included. + + + + + + + Represents an alternate mailbox folder or item Id. + + + + + + + + + + + + + Represents an alternate public folder Id. + + + + + + + + + + + Represents an alternate public folder item Id. + + + + + + + + + + + A non-empty array of alternate Ids. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A permission on a folder + + + + + + + + + + + + + + + A permission on a folder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The set of permissions on a folder + + + + + + + + + The set of permissions on a folder + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents the message keys that can be returned for invalid recipients + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Size range type used for the WithinSizeRange rule predicate. + + + + + + + + + Date range type used for the WithinDateRange rule predicate. + + + + + + + + + Flagged for action enumeration, currently used in FlaggedForAction rule predicate + + + + + + + + + + + + + + + + + + Rule predicates, used as rule conditions or exceptions + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Rule actions + + + + + + + + + + + + + + + + + + + + Rule type + + + + + + + + + + + + + + + + Array of rule objects + + + + + + + + Rule field URI enumerates all possible rule fields that could trigger validation error + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Rule validation error code describing what failed validation for each rule predicate or action. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a single validation error on a particular rule property value, predicate property value or action property value + + + + + + + + + + + Represents an array of rule validation errors + + + + + + + + Represents a rule operation to be performed + + + + + Represents an array of rule operations to be performed + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Array of search item kind enum. + + + + + + + + + User Mailbox. + + + + + + + + Array of user mailbox. + + + + + + + + + Searchable mailbox. + + + + + + + + + + + + + + + Array of searchable mailbox. + + + + + + + + + Keyword statistics search result. + + + + + + + + + + + Array of keyword statistics result. + + + + + + + + + Mailbox statistics search result. + + + + + + + + + + Extended attributes of a target mailbox. + + + + + + + + + + Array of extended attributes of a target mailbox + + + + + + + + + + + + + + + + Set of mailbox, search scope and its extended attributes. + + + + + + + + + + + Array of mailbox and its search scope. + + + + + + + + + Pair of query and a set of mailbox search scopes. + + + + + + + + + + Mailbox information for each preview item. + + + + + + + + + + Array of query and mailboxes. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Mailbox search preview item. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Array of search preview item. + + + + + + + + + Mailbox failed on search and its error message. + + + + + + + + + + + + Array of failed mailbox and error message. + + + + + + + + + Mailboxes search result. + + + + + + + + + + + + + + + + + + + Search refiner item. + + + + + + + + + + + + Array of search refiner item. + + + + + + + + + + + OneDrive search result item. + + + + + + + + + + + + + File search result item. + + + + + + + + + + + + + + + + + + + + + + + + + File context properties. + + + + + + + + + + Attachment file search result properties. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Mailbox statistics item. + + + + + + + + + + + + Array of mailbox statistics item. + + + + + + + + + + + + + + + + + + + + + + + + + Mailbox hold status. + + + + + + + + + + + Array of mailbox hold status. + + + + + + + + + Mailbox hold result. + + + + + + + + + + + + + + + + Non indexable item statistic. + + + + + + + + + + + Array of non indexable item statistics. + + + + + + + + + + + + + + + + + + + + + Non indexable item detail. + + + + + + + + + + + + + + + + + Array of non indexable item details. + + + + + + + + + Non indexable item details result. + + + + + + + + + + Discovery search configuration. + + + + + + + + + + + + + + Array of discovery search configuration. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Retention policy tag. + + + + + + + + + + + + + + + + + Array of retention policy tags. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A Group on the ImContactList, with one or more members + + + + + + + + + + + + + + + + + + + IM Contact List + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + List of possible reasons for disabling the client extension + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Identifier for a consumer calendar. This is reserved for a select number of server-2-server calls. + + + + + + + + + + + + Shared information about a consumer calendar. This is reserved for a select number of server-2-server calls. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents base unified group + + + + + + + + + + + + Represents a unified group with favorite state + + + + + + + + + + + + + + + + + + + + Represents a set of unified groups in a GetUserUnifiedGroup response + + + + + + + + + + + Represents an array of unified groups sets in a GetUserUnifiedGroups response + + + + + + + + + Represents a set of unified groups in a GetUserUnifiedGroup request + + + + + + + + + + + + Represents an array of unified groups sets in a GetUserUnifiedGroup request + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 1650f0814979df0f940ef7436a9fd07ff31902bd Mon Sep 17 00:00:00 2001 From: Mikael DELSOL Date: Tue, 21 Mar 2017 00:05:24 +0100 Subject: [PATCH 19/31] update paths to updated wsdl/schema --- composer.json | 4 ++-- generate.sh | 5 +++-- tutorial.php | 4 ++-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/composer.json b/composer.json index 95aa120..5190b72 100755 --- a/composer.json +++ b/composer.json @@ -1,6 +1,6 @@ { "name": "wsdltophp/package-ews365", - "description": "Package generated from wsdl/services.wsdl using wsdltophp/packagegenerator", + "description": "Package generated from wsdl/services.updated.wsdl using wsdltophp/packagegenerator", "require": { "php": ">=5.3.3", "ext-soap": "*", @@ -12,4 +12,4 @@ "SoapClient\\": "./SoapClient/" } } -} +} \ No newline at end of file diff --git a/generate.sh b/generate.sh index 5e6ef98..b581dd1 100755 --- a/generate.sh +++ b/generate.sh @@ -15,17 +15,18 @@ rm -rf $DEST/src/ \ # package informations php wsdltophp.phar generate:package \ - --urlorpath=$DEST"/wsdl/services.wsdl" \ + --urlorpath=$DEST"/wsdl/services.updated.wsdl" \ --destination=$DEST \ --composer-name="wsdltophp/package-ews365" \ --composer-settings="autoload.psr-4.SoapClient\:./SoapClient/" \ + --composer-settings="require-dev.wsdltophp/packagegenerator:~2.0" \ --addcomments="author:WsdlToPhp " \ --soapclient="\SoapClient\SoapClientBase" \ --prefix="Ews"; # generate package php wsdltophp.phar generate:package \ - --urlorpath=$DEST"/wsdl/services.wsdl" \ + --urlorpath=$DEST"/wsdl/services.updated.wsdl" \ --destination=$DEST \ --composer-name="wsdltophp/package-ews365" \ --composer-settings="autoload.psr-4.SoapClient\:./SoapClient/" \ diff --git a/tutorial.php b/tutorial.php index 67e551b..232ab5e 100755 --- a/tutorial.php +++ b/tutorial.php @@ -6,7 +6,7 @@ * - the key must be a constant beginning with WSDL_ from AbstractSoapClientbase class each generated ServiceType class extends this class * - the value must be the corresponding key value (each option matches a {@link http://www.php.net/manual/en/soapclient.soapclient.php} option) * $options = array( - * \WsdlToPhp\PackageBase\AbstractSoapClientBase::WSDL_URL => __DIR__ . '/wsdl/services.wsdl', + * \WsdlToPhp\PackageBase\AbstractSoapClientBase::WSDL_URL => __DIR__ . '/wsdl/services.updated.wsdl', * \WsdlToPhp\PackageBase\AbstractSoapClientBase::WSDL_TRACE => true, * \WsdlToPhp\PackageBase\AbstractSoapClientBase::WSDL_LOGIN => 'you_secret_login', * \WsdlToPhp\PackageBase\AbstractSoapClientBase::WSDL_PASSWORD => 'you_secret_password', @@ -18,7 +18,7 @@ * Minimal options */ $options = array( - \WsdlToPhp\PackageBase\AbstractSoapClientBase::WSDL_URL => __DIR__ . '/wsdl/services.wsdl', + \WsdlToPhp\PackageBase\AbstractSoapClientBase::WSDL_URL => __DIR__ . '/wsdl/services.updated.wsdl', \WsdlToPhp\PackageBase\AbstractSoapClientBase::WSDL_CLASSMAP => \Ews\EwsClassMap::get(), ); /** From 8d74c24af3295b68cdf08910e4d949f788ac915e Mon Sep 17 00:00:00 2001 From: Mikael DELSOL Date: Tue, 21 Mar 2017 00:05:48 +0100 Subject: [PATCH 20/31] update generated package classes based on new wsdl/schema --- .../EwsNonEmptyArrayOfPathsToElementType.php | 126 ------- src/EwsClassMap.php | 2 +- src/StructType/EwsArrayOfTransitionsType.php | 95 +++-- .../EwsAttachmentResponseShapeType.php | 12 +- src/StructType/EwsChangeDescriptionType.php | 84 ++++- src/StructType/EwsContainsExpressionType.php | 104 ++++-- .../EwsConversationResponseShapeType.php | 12 +- src/StructType/EwsExcludesType.php | 106 ++++-- src/StructType/EwsExistsType.php | 84 ++++- src/StructType/EwsFieldOrderType.php | 84 ++++- src/StructType/EwsFieldURIOrConstantType.php | 106 ++++-- src/StructType/EwsFolderResponseShapeType.php | 12 +- src/StructType/EwsItemResponseShapeType.php | 12 +- ...wsMultipleOperandBooleanExpressionType.php | 330 ++++++++++++++++-- .../EwsNonEmptyArrayOfPathsToElementType.php | 120 +++++++ src/StructType/EwsNotType.php | 318 ++++++++++++++++- src/StructType/EwsPersonResponseShapeType.php | 12 +- .../EwsPersonaResponseShapeType.php | 12 +- src/StructType/EwsRestrictionType.php | 318 ++++++++++++++++- .../EwsTwoOperandExpressionType.php | 106 ++++-- 20 files changed, 1627 insertions(+), 428 deletions(-) delete mode 100644 src/ArrayType/EwsNonEmptyArrayOfPathsToElementType.php create mode 100644 src/StructType/EwsNonEmptyArrayOfPathsToElementType.php diff --git a/src/ArrayType/EwsNonEmptyArrayOfPathsToElementType.php b/src/ArrayType/EwsNonEmptyArrayOfPathsToElementType.php deleted file mode 100644 index 4f056b4..0000000 --- a/src/ArrayType/EwsNonEmptyArrayOfPathsToElementType.php +++ /dev/null @@ -1,126 +0,0 @@ - - */ -class EwsNonEmptyArrayOfPathsToElementType extends AbstractStructArrayBase -{ - /** - * The Path - * Meta informations extracted from the WSDL - * - ref: t:Path - * @var \Ews\StructType\EwsBasePathToElementType - */ - public $Path; - /** - * Constructor method for NonEmptyArrayOfPathsToElementType - * @uses EwsNonEmptyArrayOfPathsToElementType::setPath() - * @param \Ews\StructType\EwsBasePathToElementType $path - */ - public function __construct(\Ews\StructType\EwsBasePathToElementType $path = null) - { - $this - ->setPath($path); - } - /** - * Get Path value - * @return \Ews\StructType\EwsBasePathToElementType|null - */ - public function getPath() - { - return $this->Path; - } - /** - * Set Path value - * @param \Ews\StructType\EwsBasePathToElementType $path - * @return \Ews\ArrayType\EwsNonEmptyArrayOfPathsToElementType - */ - public function setPath(\Ews\StructType\EwsBasePathToElementType $path = null) - { - $this->Path = $path; - return $this; - } - /** - * Returns the current element - * @see AbstractStructArrayBase::current() - * @return \Ews\StructType\EwsBasePathToElementType|null - */ - public function current() - { - return parent::current(); - } - /** - * Returns the indexed element - * @see AbstractStructArrayBase::item() - * @param int $index - * @return \Ews\StructType\EwsBasePathToElementType|null - */ - public function item($index) - { - return parent::item($index); - } - /** - * Returns the first element - * @see AbstractStructArrayBase::first() - * @return \Ews\StructType\EwsBasePathToElementType|null - */ - public function first() - { - return parent::first(); - } - /** - * Returns the last element - * @see AbstractStructArrayBase::last() - * @return \Ews\StructType\EwsBasePathToElementType|null - */ - public function last() - { - return parent::last(); - } - /** - * Returns the element at the offset - * @see AbstractStructArrayBase::offsetGet() - * @param int $offset - * @return \Ews\StructType\EwsBasePathToElementType|null - */ - public function offsetGet($offset) - { - return parent::offsetGet($offset); - } - /** - * Returns the attribute name - * @see AbstractStructArrayBase::getAttributeName() - * @return string Path - */ - public function getAttributeName() - { - return 'Path'; - } - /** - * Method called when an object has been exported with var_export() functions - * It allows to return an object instantiated with the values - * @see AbstractStructArrayBase::__set_state() - * @uses AbstractStructArrayBase::__set_state() - * @param array $array the exported values - * @return \Ews\ArrayType\EwsNonEmptyArrayOfPathsToElementType - */ - public static function __set_state(array $array) - { - return parent::__set_state($array); - } - /** - * Method returning the class name - * @return string __CLASS__ - */ - public function __toString() - { - return __CLASS__; - } -} diff --git a/src/EwsClassMap.php b/src/EwsClassMap.php index 010253e..443ba4e 100644 --- a/src/EwsClassMap.php +++ b/src/EwsClassMap.php @@ -64,7 +64,7 @@ final public static function get() 'PathToIndexedFieldType' => '\\Ews\\StructType\\EwsPathToIndexedFieldType', 'PathToExceptionFieldType' => '\\Ews\\StructType\\EwsPathToExceptionFieldType', 'PathToExtendedFieldType' => '\\Ews\\StructType\\EwsPathToExtendedFieldType', - 'NonEmptyArrayOfPathsToElementType' => '\\Ews\\ArrayType\\EwsNonEmptyArrayOfPathsToElementType', + 'NonEmptyArrayOfPathsToElementType' => '\\Ews\\StructType\\EwsNonEmptyArrayOfPathsToElementType', 'NonEmptyArrayOfPropertyValuesType' => '\\Ews\\ArrayType\\EwsNonEmptyArrayOfPropertyValuesType', 'NonEmptyArrayOfExtendedPropertyType' => '\\Ews\\ArrayType\\EwsNonEmptyArrayOfExtendedPropertyType', 'ExtendedPropertyType' => '\\Ews\\StructType\\EwsExtendedPropertyType', diff --git a/src/StructType/EwsArrayOfTransitionsType.php b/src/StructType/EwsArrayOfTransitionsType.php index 14a881f..aa76d30 100644 --- a/src/StructType/EwsArrayOfTransitionsType.php +++ b/src/StructType/EwsArrayOfTransitionsType.php @@ -13,13 +13,20 @@ class EwsArrayOfTransitionsType extends AbstractStructBase { /** - * The Transition - * Meta informations extracted from the WSDL - * - maxOccurs: unbounded - * - ref: t:Transition - * @var \Ews\StructType\EwsTransitionType[] + * The AbsoluteDateTransition + * @var \Ews\StructType\EwsAbsoluteDateTransitionType */ - public $Transition; + public $AbsoluteDateTransition; + /** + * The RecurringDayTransition + * @var \Ews\StructType\EwsRecurringDayTransitionType + */ + public $RecurringDayTransition; + /** + * The RecurringDateTransition + * @var \Ews\StructType\EwsRecurringDateTransitionType + */ + public $RecurringDateTransition; /** * The Id * @var string @@ -27,55 +34,75 @@ class EwsArrayOfTransitionsType extends AbstractStructBase public $Id; /** * Constructor method for ArrayOfTransitionsType - * @uses EwsArrayOfTransitionsType::setTransition() + * @uses EwsArrayOfTransitionsType::setAbsoluteDateTransition() + * @uses EwsArrayOfTransitionsType::setRecurringDayTransition() + * @uses EwsArrayOfTransitionsType::setRecurringDateTransition() * @uses EwsArrayOfTransitionsType::setId() - * @param \Ews\StructType\EwsTransitionType[] $transition + * @param \Ews\StructType\EwsAbsoluteDateTransitionType $absoluteDateTransition + * @param \Ews\StructType\EwsRecurringDayTransitionType $recurringDayTransition + * @param \Ews\StructType\EwsRecurringDateTransitionType $recurringDateTransition * @param string $id */ - public function __construct(array $transition = array(), $id = null) + public function __construct(\Ews\StructType\EwsAbsoluteDateTransitionType $absoluteDateTransition = null, \Ews\StructType\EwsRecurringDayTransitionType $recurringDayTransition = null, \Ews\StructType\EwsRecurringDateTransitionType $recurringDateTransition = null, $id = null) { $this - ->setTransition($transition) + ->setAbsoluteDateTransition($absoluteDateTransition) + ->setRecurringDayTransition($recurringDayTransition) + ->setRecurringDateTransition($recurringDateTransition) ->setId($id); } /** - * Get Transition value - * @return \Ews\StructType\EwsTransitionType[]|null + * Get AbsoluteDateTransition value + * @return \Ews\StructType\EwsAbsoluteDateTransitionType|null */ - public function getTransition() + public function getAbsoluteDateTransition() { - return $this->Transition; + return $this->AbsoluteDateTransition; } /** - * Set Transition value - * @throws \InvalidArgumentException - * @param \Ews\StructType\EwsTransitionType[] $transition + * Set AbsoluteDateTransition value + * @param \Ews\StructType\EwsAbsoluteDateTransitionType $absoluteDateTransition * @return \Ews\StructType\EwsArrayOfTransitionsType */ - public function setTransition(array $transition = array()) + public function setAbsoluteDateTransition(\Ews\StructType\EwsAbsoluteDateTransitionType $absoluteDateTransition = null) { - foreach ($transition as $arrayOfTransitionsTypeTransitionItem) { - // validation for constraint: itemType - if (!$arrayOfTransitionsTypeTransitionItem instanceof \Ews\StructType\EwsTransitionType) { - throw new \InvalidArgumentException(sprintf('The Transition property can only contain items of \Ews\StructType\EwsTransitionType, "%s" given', is_object($arrayOfTransitionsTypeTransitionItem) ? get_class($arrayOfTransitionsTypeTransitionItem) : gettype($arrayOfTransitionsTypeTransitionItem)), __LINE__); - } - } - $this->Transition = $transition; + $this->AbsoluteDateTransition = $absoluteDateTransition; return $this; } /** - * Add item to Transition value - * @throws \InvalidArgumentException - * @param \Ews\StructType\EwsTransitionType $item + * Get RecurringDayTransition value + * @return \Ews\StructType\EwsRecurringDayTransitionType|null + */ + public function getRecurringDayTransition() + { + return $this->RecurringDayTransition; + } + /** + * Set RecurringDayTransition value + * @param \Ews\StructType\EwsRecurringDayTransitionType $recurringDayTransition * @return \Ews\StructType\EwsArrayOfTransitionsType */ - public function addToTransition(\Ews\StructType\EwsTransitionType $item) + public function setRecurringDayTransition(\Ews\StructType\EwsRecurringDayTransitionType $recurringDayTransition = null) { - // validation for constraint: itemType - if (!$item instanceof \Ews\StructType\EwsTransitionType) { - throw new \InvalidArgumentException(sprintf('The Transition property can only contain items of \Ews\StructType\EwsTransitionType, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__); - } - $this->Transition[] = $item; + $this->RecurringDayTransition = $recurringDayTransition; + return $this; + } + /** + * Get RecurringDateTransition value + * @return \Ews\StructType\EwsRecurringDateTransitionType|null + */ + public function getRecurringDateTransition() + { + return $this->RecurringDateTransition; + } + /** + * Set RecurringDateTransition value + * @param \Ews\StructType\EwsRecurringDateTransitionType $recurringDateTransition + * @return \Ews\StructType\EwsArrayOfTransitionsType + */ + public function setRecurringDateTransition(\Ews\StructType\EwsRecurringDateTransitionType $recurringDateTransition = null) + { + $this->RecurringDateTransition = $recurringDateTransition; return $this; } /** diff --git a/src/StructType/EwsAttachmentResponseShapeType.php b/src/StructType/EwsAttachmentResponseShapeType.php index e8dda94..b4d1890 100644 --- a/src/StructType/EwsAttachmentResponseShapeType.php +++ b/src/StructType/EwsAttachmentResponseShapeType.php @@ -38,7 +38,7 @@ class EwsAttachmentResponseShapeType extends AbstractStructBase * The AdditionalProperties * Meta informations extracted from the WSDL * - minOccurs: 0 - * @var \Ews\ArrayType\EwsNonEmptyArrayOfPathsToElementType + * @var \Ews\StructType\EwsNonEmptyArrayOfPathsToElementType */ public $AdditionalProperties; /** @@ -50,9 +50,9 @@ class EwsAttachmentResponseShapeType extends AbstractStructBase * @param bool $includeMimeContent * @param string $bodyType * @param bool $filterHtmlContent - * @param \Ews\ArrayType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties + * @param \Ews\StructType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties */ - public function __construct($includeMimeContent = null, $bodyType = null, $filterHtmlContent = null, \Ews\ArrayType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties = null) + public function __construct($includeMimeContent = null, $bodyType = null, $filterHtmlContent = null, \Ews\StructType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties = null) { $this ->setIncludeMimeContent($includeMimeContent) @@ -123,7 +123,7 @@ public function setFilterHtmlContent($filterHtmlContent = null) } /** * Get AdditionalProperties value - * @return \Ews\ArrayType\EwsNonEmptyArrayOfPathsToElementType|null + * @return \Ews\StructType\EwsNonEmptyArrayOfPathsToElementType|null */ public function getAdditionalProperties() { @@ -131,10 +131,10 @@ public function getAdditionalProperties() } /** * Set AdditionalProperties value - * @param \Ews\ArrayType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties + * @param \Ews\StructType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties * @return \Ews\StructType\EwsAttachmentResponseShapeType */ - public function setAdditionalProperties(\Ews\ArrayType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties = null) + public function setAdditionalProperties(\Ews\StructType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties = null) { $this->AdditionalProperties = $additionalProperties; return $this; diff --git a/src/StructType/EwsChangeDescriptionType.php b/src/StructType/EwsChangeDescriptionType.php index 76ea6c2..2851724 100644 --- a/src/StructType/EwsChangeDescriptionType.php +++ b/src/StructType/EwsChangeDescriptionType.php @@ -13,38 +13,88 @@ abstract class EwsChangeDescriptionType extends AbstractStructBase { /** - * The Path - * Meta informations extracted from the WSDL - * - ref: t:Path - * @var \Ews\StructType\EwsBasePathToElementType + * The FieldURI + * @var \Ews\StructType\EwsPathToUnindexedFieldType */ - public $Path; + public $FieldURI; + /** + * The IndexedFieldURI + * @var \Ews\StructType\EwsPathToIndexedFieldType + */ + public $IndexedFieldURI; + /** + * The ExtendedFieldURI + * @var \Ews\StructType\EwsPathToExtendedFieldType + */ + public $ExtendedFieldURI; /** * Constructor method for ChangeDescriptionType - * @uses EwsChangeDescriptionType::setPath() - * @param \Ews\StructType\EwsBasePathToElementType $path + * @uses EwsChangeDescriptionType::setFieldURI() + * @uses EwsChangeDescriptionType::setIndexedFieldURI() + * @uses EwsChangeDescriptionType::setExtendedFieldURI() + * @param \Ews\StructType\EwsPathToUnindexedFieldType $fieldURI + * @param \Ews\StructType\EwsPathToIndexedFieldType $indexedFieldURI + * @param \Ews\StructType\EwsPathToExtendedFieldType $extendedFieldURI */ - public function __construct(\Ews\StructType\EwsBasePathToElementType $path = null) + public function __construct(\Ews\StructType\EwsPathToUnindexedFieldType $fieldURI = null, \Ews\StructType\EwsPathToIndexedFieldType $indexedFieldURI = null, \Ews\StructType\EwsPathToExtendedFieldType $extendedFieldURI = null) { $this - ->setPath($path); + ->setFieldURI($fieldURI) + ->setIndexedFieldURI($indexedFieldURI) + ->setExtendedFieldURI($extendedFieldURI); + } + /** + * Get FieldURI value + * @return \Ews\StructType\EwsPathToUnindexedFieldType|null + */ + public function getFieldURI() + { + return $this->FieldURI; + } + /** + * Set FieldURI value + * @param \Ews\StructType\EwsPathToUnindexedFieldType $fieldURI + * @return \Ews\StructType\EwsChangeDescriptionType + */ + public function setFieldURI(\Ews\StructType\EwsPathToUnindexedFieldType $fieldURI = null) + { + $this->FieldURI = $fieldURI; + return $this; + } + /** + * Get IndexedFieldURI value + * @return \Ews\StructType\EwsPathToIndexedFieldType|null + */ + public function getIndexedFieldURI() + { + return $this->IndexedFieldURI; + } + /** + * Set IndexedFieldURI value + * @param \Ews\StructType\EwsPathToIndexedFieldType $indexedFieldURI + * @return \Ews\StructType\EwsChangeDescriptionType + */ + public function setIndexedFieldURI(\Ews\StructType\EwsPathToIndexedFieldType $indexedFieldURI = null) + { + $this->IndexedFieldURI = $indexedFieldURI; + return $this; } /** - * Get Path value - * @return \Ews\StructType\EwsBasePathToElementType|null + * Get ExtendedFieldURI value + * @return \Ews\StructType\EwsPathToExtendedFieldType|null */ - public function getPath() + public function getExtendedFieldURI() { - return $this->Path; + return $this->ExtendedFieldURI; } /** - * Set Path value - * @param \Ews\StructType\EwsBasePathToElementType $path + * Set ExtendedFieldURI value + * @param \Ews\StructType\EwsPathToExtendedFieldType $extendedFieldURI * @return \Ews\StructType\EwsChangeDescriptionType */ - public function setPath(\Ews\StructType\EwsBasePathToElementType $path = null) + public function setExtendedFieldURI(\Ews\StructType\EwsPathToExtendedFieldType $extendedFieldURI = null) { - $this->Path = $path; + $this->ExtendedFieldURI = $extendedFieldURI; return $this; } /** diff --git a/src/StructType/EwsContainsExpressionType.php b/src/StructType/EwsContainsExpressionType.php index 44fb355..1d2a533 100644 --- a/src/StructType/EwsContainsExpressionType.php +++ b/src/StructType/EwsContainsExpressionType.php @@ -12,18 +12,26 @@ */ class EwsContainsExpressionType extends EwsSearchExpressionType { - /** - * The Path - * Meta informations extracted from the WSDL - * - ref: t:Path - * @var \Ews\StructType\EwsBasePathToElementType - */ - public $Path; /** * The Constant * @var \Ews\StructType\EwsConstantValueType */ public $Constant; + /** + * The FieldURI + * @var \Ews\StructType\EwsPathToUnindexedFieldType + */ + public $FieldURI; + /** + * The IndexedFieldURI + * @var \Ews\StructType\EwsPathToIndexedFieldType + */ + public $IndexedFieldURI; + /** + * The ExtendedFieldURI + * @var \Ews\StructType\EwsPathToExtendedFieldType + */ + public $ExtendedFieldURI; /** * The ContainmentMode * Meta informations extracted from the WSDL @@ -40,57 +48,99 @@ class EwsContainsExpressionType extends EwsSearchExpressionType public $ContainmentComparison; /** * Constructor method for ContainsExpressionType - * @uses EwsContainsExpressionType::setPath() * @uses EwsContainsExpressionType::setConstant() + * @uses EwsContainsExpressionType::setFieldURI() + * @uses EwsContainsExpressionType::setIndexedFieldURI() + * @uses EwsContainsExpressionType::setExtendedFieldURI() * @uses EwsContainsExpressionType::setContainmentMode() * @uses EwsContainsExpressionType::setContainmentComparison() - * @param \Ews\StructType\EwsBasePathToElementType $path * @param \Ews\StructType\EwsConstantValueType $constant + * @param \Ews\StructType\EwsPathToUnindexedFieldType $fieldURI + * @param \Ews\StructType\EwsPathToIndexedFieldType $indexedFieldURI + * @param \Ews\StructType\EwsPathToExtendedFieldType $extendedFieldURI * @param string $containmentMode * @param string $containmentComparison */ - public function __construct(\Ews\StructType\EwsBasePathToElementType $path = null, \Ews\StructType\EwsConstantValueType $constant = null, $containmentMode = null, $containmentComparison = null) + public function __construct(\Ews\StructType\EwsConstantValueType $constant = null, \Ews\StructType\EwsPathToUnindexedFieldType $fieldURI = null, \Ews\StructType\EwsPathToIndexedFieldType $indexedFieldURI = null, \Ews\StructType\EwsPathToExtendedFieldType $extendedFieldURI = null, $containmentMode = null, $containmentComparison = null) { $this - ->setPath($path) ->setConstant($constant) + ->setFieldURI($fieldURI) + ->setIndexedFieldURI($indexedFieldURI) + ->setExtendedFieldURI($extendedFieldURI) ->setContainmentMode($containmentMode) ->setContainmentComparison($containmentComparison); } /** - * Get Path value - * @return \Ews\StructType\EwsBasePathToElementType|null + * Get Constant value + * @return \Ews\StructType\EwsConstantValueType|null */ - public function getPath() + public function getConstant() { - return $this->Path; + return $this->Constant; } /** - * Set Path value - * @param \Ews\StructType\EwsBasePathToElementType $path + * Set Constant value + * @param \Ews\StructType\EwsConstantValueType $constant * @return \Ews\StructType\EwsContainsExpressionType */ - public function setPath(\Ews\StructType\EwsBasePathToElementType $path = null) + public function setConstant(\Ews\StructType\EwsConstantValueType $constant = null) { - $this->Path = $path; + $this->Constant = $constant; return $this; } /** - * Get Constant value - * @return \Ews\StructType\EwsConstantValueType|null + * Get FieldURI value + * @return \Ews\StructType\EwsPathToUnindexedFieldType|null */ - public function getConstant() + public function getFieldURI() { - return $this->Constant; + return $this->FieldURI; } /** - * Set Constant value - * @param \Ews\StructType\EwsConstantValueType $constant + * Set FieldURI value + * @param \Ews\StructType\EwsPathToUnindexedFieldType $fieldURI * @return \Ews\StructType\EwsContainsExpressionType */ - public function setConstant(\Ews\StructType\EwsConstantValueType $constant = null) + public function setFieldURI(\Ews\StructType\EwsPathToUnindexedFieldType $fieldURI = null) { - $this->Constant = $constant; + $this->FieldURI = $fieldURI; + return $this; + } + /** + * Get IndexedFieldURI value + * @return \Ews\StructType\EwsPathToIndexedFieldType|null + */ + public function getIndexedFieldURI() + { + return $this->IndexedFieldURI; + } + /** + * Set IndexedFieldURI value + * @param \Ews\StructType\EwsPathToIndexedFieldType $indexedFieldURI + * @return \Ews\StructType\EwsContainsExpressionType + */ + public function setIndexedFieldURI(\Ews\StructType\EwsPathToIndexedFieldType $indexedFieldURI = null) + { + $this->IndexedFieldURI = $indexedFieldURI; + return $this; + } + /** + * Get ExtendedFieldURI value + * @return \Ews\StructType\EwsPathToExtendedFieldType|null + */ + public function getExtendedFieldURI() + { + return $this->ExtendedFieldURI; + } + /** + * Set ExtendedFieldURI value + * @param \Ews\StructType\EwsPathToExtendedFieldType $extendedFieldURI + * @return \Ews\StructType\EwsContainsExpressionType + */ + public function setExtendedFieldURI(\Ews\StructType\EwsPathToExtendedFieldType $extendedFieldURI = null) + { + $this->ExtendedFieldURI = $extendedFieldURI; return $this; } /** diff --git a/src/StructType/EwsConversationResponseShapeType.php b/src/StructType/EwsConversationResponseShapeType.php index 30752ea..eb2f185 100644 --- a/src/StructType/EwsConversationResponseShapeType.php +++ b/src/StructType/EwsConversationResponseShapeType.php @@ -21,7 +21,7 @@ class EwsConversationResponseShapeType extends AbstractStructBase * The AdditionalProperties * Meta informations extracted from the WSDL * - minOccurs: 0 - * @var \Ews\ArrayType\EwsNonEmptyArrayOfPathsToElementType + * @var \Ews\StructType\EwsNonEmptyArrayOfPathsToElementType */ public $AdditionalProperties; /** @@ -29,9 +29,9 @@ class EwsConversationResponseShapeType extends AbstractStructBase * @uses EwsConversationResponseShapeType::setBaseShape() * @uses EwsConversationResponseShapeType::setAdditionalProperties() * @param string $baseShape - * @param \Ews\ArrayType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties + * @param \Ews\StructType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties */ - public function __construct($baseShape = null, \Ews\ArrayType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties = null) + public function __construct($baseShape = null, \Ews\StructType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties = null) { $this ->setBaseShape($baseShape) @@ -64,7 +64,7 @@ public function setBaseShape($baseShape = null) } /** * Get AdditionalProperties value - * @return \Ews\ArrayType\EwsNonEmptyArrayOfPathsToElementType|null + * @return \Ews\StructType\EwsNonEmptyArrayOfPathsToElementType|null */ public function getAdditionalProperties() { @@ -72,10 +72,10 @@ public function getAdditionalProperties() } /** * Set AdditionalProperties value - * @param \Ews\ArrayType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties + * @param \Ews\StructType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties * @return \Ews\StructType\EwsConversationResponseShapeType */ - public function setAdditionalProperties(\Ews\ArrayType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties = null) + public function setAdditionalProperties(\Ews\StructType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties = null) { $this->AdditionalProperties = $additionalProperties; return $this; diff --git a/src/StructType/EwsExcludesType.php b/src/StructType/EwsExcludesType.php index 34f0984..281aa53 100644 --- a/src/StructType/EwsExcludesType.php +++ b/src/StructType/EwsExcludesType.php @@ -12,65 +12,115 @@ */ class EwsExcludesType extends EwsSearchExpressionType { - /** - * The Path - * Meta informations extracted from the WSDL - * - ref: t:Path - * @var \Ews\StructType\EwsBasePathToElementType - */ - public $Path; /** * The Bitmask * @var \Ews\StructType\EwsExcludesValueType */ public $Bitmask; + /** + * The FieldURI + * @var \Ews\StructType\EwsPathToUnindexedFieldType + */ + public $FieldURI; + /** + * The IndexedFieldURI + * @var \Ews\StructType\EwsPathToIndexedFieldType + */ + public $IndexedFieldURI; + /** + * The ExtendedFieldURI + * @var \Ews\StructType\EwsPathToExtendedFieldType + */ + public $ExtendedFieldURI; /** * Constructor method for ExcludesType - * @uses EwsExcludesType::setPath() * @uses EwsExcludesType::setBitmask() - * @param \Ews\StructType\EwsBasePathToElementType $path + * @uses EwsExcludesType::setFieldURI() + * @uses EwsExcludesType::setIndexedFieldURI() + * @uses EwsExcludesType::setExtendedFieldURI() * @param \Ews\StructType\EwsExcludesValueType $bitmask + * @param \Ews\StructType\EwsPathToUnindexedFieldType $fieldURI + * @param \Ews\StructType\EwsPathToIndexedFieldType $indexedFieldURI + * @param \Ews\StructType\EwsPathToExtendedFieldType $extendedFieldURI */ - public function __construct(\Ews\StructType\EwsBasePathToElementType $path = null, \Ews\StructType\EwsExcludesValueType $bitmask = null) + public function __construct(\Ews\StructType\EwsExcludesValueType $bitmask = null, \Ews\StructType\EwsPathToUnindexedFieldType $fieldURI = null, \Ews\StructType\EwsPathToIndexedFieldType $indexedFieldURI = null, \Ews\StructType\EwsPathToExtendedFieldType $extendedFieldURI = null) { $this - ->setPath($path) - ->setBitmask($bitmask); + ->setBitmask($bitmask) + ->setFieldURI($fieldURI) + ->setIndexedFieldURI($indexedFieldURI) + ->setExtendedFieldURI($extendedFieldURI); } /** - * Get Path value - * @return \Ews\StructType\EwsBasePathToElementType|null + * Get Bitmask value + * @return \Ews\StructType\EwsExcludesValueType|null */ - public function getPath() + public function getBitmask() { - return $this->Path; + return $this->Bitmask; } /** - * Set Path value - * @param \Ews\StructType\EwsBasePathToElementType $path + * Set Bitmask value + * @param \Ews\StructType\EwsExcludesValueType $bitmask * @return \Ews\StructType\EwsExcludesType */ - public function setPath(\Ews\StructType\EwsBasePathToElementType $path = null) + public function setBitmask(\Ews\StructType\EwsExcludesValueType $bitmask = null) { - $this->Path = $path; + $this->Bitmask = $bitmask; return $this; } /** - * Get Bitmask value - * @return \Ews\StructType\EwsExcludesValueType|null + * Get FieldURI value + * @return \Ews\StructType\EwsPathToUnindexedFieldType|null */ - public function getBitmask() + public function getFieldURI() { - return $this->Bitmask; + return $this->FieldURI; } /** - * Set Bitmask value - * @param \Ews\StructType\EwsExcludesValueType $bitmask + * Set FieldURI value + * @param \Ews\StructType\EwsPathToUnindexedFieldType $fieldURI * @return \Ews\StructType\EwsExcludesType */ - public function setBitmask(\Ews\StructType\EwsExcludesValueType $bitmask = null) + public function setFieldURI(\Ews\StructType\EwsPathToUnindexedFieldType $fieldURI = null) { - $this->Bitmask = $bitmask; + $this->FieldURI = $fieldURI; + return $this; + } + /** + * Get IndexedFieldURI value + * @return \Ews\StructType\EwsPathToIndexedFieldType|null + */ + public function getIndexedFieldURI() + { + return $this->IndexedFieldURI; + } + /** + * Set IndexedFieldURI value + * @param \Ews\StructType\EwsPathToIndexedFieldType $indexedFieldURI + * @return \Ews\StructType\EwsExcludesType + */ + public function setIndexedFieldURI(\Ews\StructType\EwsPathToIndexedFieldType $indexedFieldURI = null) + { + $this->IndexedFieldURI = $indexedFieldURI; + return $this; + } + /** + * Get ExtendedFieldURI value + * @return \Ews\StructType\EwsPathToExtendedFieldType|null + */ + public function getExtendedFieldURI() + { + return $this->ExtendedFieldURI; + } + /** + * Set ExtendedFieldURI value + * @param \Ews\StructType\EwsPathToExtendedFieldType $extendedFieldURI + * @return \Ews\StructType\EwsExcludesType + */ + public function setExtendedFieldURI(\Ews\StructType\EwsPathToExtendedFieldType $extendedFieldURI = null) + { + $this->ExtendedFieldURI = $extendedFieldURI; return $this; } /** diff --git a/src/StructType/EwsExistsType.php b/src/StructType/EwsExistsType.php index 1f432f4..53fd35d 100644 --- a/src/StructType/EwsExistsType.php +++ b/src/StructType/EwsExistsType.php @@ -13,38 +13,88 @@ class EwsExistsType extends EwsSearchExpressionType { /** - * The Path - * Meta informations extracted from the WSDL - * - ref: t:Path - * @var \Ews\StructType\EwsBasePathToElementType + * The FieldURI + * @var \Ews\StructType\EwsPathToUnindexedFieldType */ - public $Path; + public $FieldURI; + /** + * The IndexedFieldURI + * @var \Ews\StructType\EwsPathToIndexedFieldType + */ + public $IndexedFieldURI; + /** + * The ExtendedFieldURI + * @var \Ews\StructType\EwsPathToExtendedFieldType + */ + public $ExtendedFieldURI; /** * Constructor method for ExistsType - * @uses EwsExistsType::setPath() - * @param \Ews\StructType\EwsBasePathToElementType $path + * @uses EwsExistsType::setFieldURI() + * @uses EwsExistsType::setIndexedFieldURI() + * @uses EwsExistsType::setExtendedFieldURI() + * @param \Ews\StructType\EwsPathToUnindexedFieldType $fieldURI + * @param \Ews\StructType\EwsPathToIndexedFieldType $indexedFieldURI + * @param \Ews\StructType\EwsPathToExtendedFieldType $extendedFieldURI */ - public function __construct(\Ews\StructType\EwsBasePathToElementType $path = null) + public function __construct(\Ews\StructType\EwsPathToUnindexedFieldType $fieldURI = null, \Ews\StructType\EwsPathToIndexedFieldType $indexedFieldURI = null, \Ews\StructType\EwsPathToExtendedFieldType $extendedFieldURI = null) { $this - ->setPath($path); + ->setFieldURI($fieldURI) + ->setIndexedFieldURI($indexedFieldURI) + ->setExtendedFieldURI($extendedFieldURI); + } + /** + * Get FieldURI value + * @return \Ews\StructType\EwsPathToUnindexedFieldType|null + */ + public function getFieldURI() + { + return $this->FieldURI; + } + /** + * Set FieldURI value + * @param \Ews\StructType\EwsPathToUnindexedFieldType $fieldURI + * @return \Ews\StructType\EwsExistsType + */ + public function setFieldURI(\Ews\StructType\EwsPathToUnindexedFieldType $fieldURI = null) + { + $this->FieldURI = $fieldURI; + return $this; + } + /** + * Get IndexedFieldURI value + * @return \Ews\StructType\EwsPathToIndexedFieldType|null + */ + public function getIndexedFieldURI() + { + return $this->IndexedFieldURI; + } + /** + * Set IndexedFieldURI value + * @param \Ews\StructType\EwsPathToIndexedFieldType $indexedFieldURI + * @return \Ews\StructType\EwsExistsType + */ + public function setIndexedFieldURI(\Ews\StructType\EwsPathToIndexedFieldType $indexedFieldURI = null) + { + $this->IndexedFieldURI = $indexedFieldURI; + return $this; } /** - * Get Path value - * @return \Ews\StructType\EwsBasePathToElementType|null + * Get ExtendedFieldURI value + * @return \Ews\StructType\EwsPathToExtendedFieldType|null */ - public function getPath() + public function getExtendedFieldURI() { - return $this->Path; + return $this->ExtendedFieldURI; } /** - * Set Path value - * @param \Ews\StructType\EwsBasePathToElementType $path + * Set ExtendedFieldURI value + * @param \Ews\StructType\EwsPathToExtendedFieldType $extendedFieldURI * @return \Ews\StructType\EwsExistsType */ - public function setPath(\Ews\StructType\EwsBasePathToElementType $path = null) + public function setExtendedFieldURI(\Ews\StructType\EwsPathToExtendedFieldType $extendedFieldURI = null) { - $this->Path = $path; + $this->ExtendedFieldURI = $extendedFieldURI; return $this; } /** diff --git a/src/StructType/EwsFieldOrderType.php b/src/StructType/EwsFieldOrderType.php index 0002bb9..18413c1 100644 --- a/src/StructType/EwsFieldOrderType.php +++ b/src/StructType/EwsFieldOrderType.php @@ -20,24 +20,38 @@ class EwsFieldOrderType extends AbstractStructBase */ public $Order; /** - * The Path - * Meta informations extracted from the WSDL - * - ref: t:Path - * @var \Ews\StructType\EwsBasePathToElementType + * The FieldURI + * @var \Ews\StructType\EwsPathToUnindexedFieldType + */ + public $FieldURI; + /** + * The IndexedFieldURI + * @var \Ews\StructType\EwsPathToIndexedFieldType */ - public $Path; + public $IndexedFieldURI; + /** + * The ExtendedFieldURI + * @var \Ews\StructType\EwsPathToExtendedFieldType + */ + public $ExtendedFieldURI; /** * Constructor method for FieldOrderType * @uses EwsFieldOrderType::setOrder() - * @uses EwsFieldOrderType::setPath() + * @uses EwsFieldOrderType::setFieldURI() + * @uses EwsFieldOrderType::setIndexedFieldURI() + * @uses EwsFieldOrderType::setExtendedFieldURI() * @param string $order - * @param \Ews\StructType\EwsBasePathToElementType $path + * @param \Ews\StructType\EwsPathToUnindexedFieldType $fieldURI + * @param \Ews\StructType\EwsPathToIndexedFieldType $indexedFieldURI + * @param \Ews\StructType\EwsPathToExtendedFieldType $extendedFieldURI */ - public function __construct($order = null, \Ews\StructType\EwsBasePathToElementType $path = null) + public function __construct($order = null, \Ews\StructType\EwsPathToUnindexedFieldType $fieldURI = null, \Ews\StructType\EwsPathToIndexedFieldType $indexedFieldURI = null, \Ews\StructType\EwsPathToExtendedFieldType $extendedFieldURI = null) { $this ->setOrder($order) - ->setPath($path); + ->setFieldURI($fieldURI) + ->setIndexedFieldURI($indexedFieldURI) + ->setExtendedFieldURI($extendedFieldURI); } /** * Get Order value @@ -65,21 +79,57 @@ public function setOrder($order = null) return $this; } /** - * Get Path value - * @return \Ews\StructType\EwsBasePathToElementType|null + * Get FieldURI value + * @return \Ews\StructType\EwsPathToUnindexedFieldType|null + */ + public function getFieldURI() + { + return $this->FieldURI; + } + /** + * Set FieldURI value + * @param \Ews\StructType\EwsPathToUnindexedFieldType $fieldURI + * @return \Ews\StructType\EwsFieldOrderType + */ + public function setFieldURI(\Ews\StructType\EwsPathToUnindexedFieldType $fieldURI = null) + { + $this->FieldURI = $fieldURI; + return $this; + } + /** + * Get IndexedFieldURI value + * @return \Ews\StructType\EwsPathToIndexedFieldType|null + */ + public function getIndexedFieldURI() + { + return $this->IndexedFieldURI; + } + /** + * Set IndexedFieldURI value + * @param \Ews\StructType\EwsPathToIndexedFieldType $indexedFieldURI + * @return \Ews\StructType\EwsFieldOrderType + */ + public function setIndexedFieldURI(\Ews\StructType\EwsPathToIndexedFieldType $indexedFieldURI = null) + { + $this->IndexedFieldURI = $indexedFieldURI; + return $this; + } + /** + * Get ExtendedFieldURI value + * @return \Ews\StructType\EwsPathToExtendedFieldType|null */ - public function getPath() + public function getExtendedFieldURI() { - return $this->Path; + return $this->ExtendedFieldURI; } /** - * Set Path value - * @param \Ews\StructType\EwsBasePathToElementType $path + * Set ExtendedFieldURI value + * @param \Ews\StructType\EwsPathToExtendedFieldType $extendedFieldURI * @return \Ews\StructType\EwsFieldOrderType */ - public function setPath(\Ews\StructType\EwsBasePathToElementType $path = null) + public function setExtendedFieldURI(\Ews\StructType\EwsPathToExtendedFieldType $extendedFieldURI = null) { - $this->Path = $path; + $this->ExtendedFieldURI = $extendedFieldURI; return $this; } /** diff --git a/src/StructType/EwsFieldURIOrConstantType.php b/src/StructType/EwsFieldURIOrConstantType.php index 9245009..1256117 100644 --- a/src/StructType/EwsFieldURIOrConstantType.php +++ b/src/StructType/EwsFieldURIOrConstantType.php @@ -12,65 +12,115 @@ */ class EwsFieldURIOrConstantType extends AbstractStructBase { - /** - * The Path - * Meta informations extracted from the WSDL - * - ref: t:Path - * @var \Ews\StructType\EwsBasePathToElementType - */ - public $Path; /** * The Constant * @var \Ews\StructType\EwsConstantValueType */ public $Constant; + /** + * The FieldURI + * @var \Ews\StructType\EwsPathToUnindexedFieldType + */ + public $FieldURI; + /** + * The IndexedFieldURI + * @var \Ews\StructType\EwsPathToIndexedFieldType + */ + public $IndexedFieldURI; + /** + * The ExtendedFieldURI + * @var \Ews\StructType\EwsPathToExtendedFieldType + */ + public $ExtendedFieldURI; /** * Constructor method for FieldURIOrConstantType - * @uses EwsFieldURIOrConstantType::setPath() * @uses EwsFieldURIOrConstantType::setConstant() - * @param \Ews\StructType\EwsBasePathToElementType $path + * @uses EwsFieldURIOrConstantType::setFieldURI() + * @uses EwsFieldURIOrConstantType::setIndexedFieldURI() + * @uses EwsFieldURIOrConstantType::setExtendedFieldURI() * @param \Ews\StructType\EwsConstantValueType $constant + * @param \Ews\StructType\EwsPathToUnindexedFieldType $fieldURI + * @param \Ews\StructType\EwsPathToIndexedFieldType $indexedFieldURI + * @param \Ews\StructType\EwsPathToExtendedFieldType $extendedFieldURI */ - public function __construct(\Ews\StructType\EwsBasePathToElementType $path = null, \Ews\StructType\EwsConstantValueType $constant = null) + public function __construct(\Ews\StructType\EwsConstantValueType $constant = null, \Ews\StructType\EwsPathToUnindexedFieldType $fieldURI = null, \Ews\StructType\EwsPathToIndexedFieldType $indexedFieldURI = null, \Ews\StructType\EwsPathToExtendedFieldType $extendedFieldURI = null) { $this - ->setPath($path) - ->setConstant($constant); + ->setConstant($constant) + ->setFieldURI($fieldURI) + ->setIndexedFieldURI($indexedFieldURI) + ->setExtendedFieldURI($extendedFieldURI); } /** - * Get Path value - * @return \Ews\StructType\EwsBasePathToElementType|null + * Get Constant value + * @return \Ews\StructType\EwsConstantValueType|null */ - public function getPath() + public function getConstant() { - return $this->Path; + return $this->Constant; } /** - * Set Path value - * @param \Ews\StructType\EwsBasePathToElementType $path + * Set Constant value + * @param \Ews\StructType\EwsConstantValueType $constant * @return \Ews\StructType\EwsFieldURIOrConstantType */ - public function setPath(\Ews\StructType\EwsBasePathToElementType $path = null) + public function setConstant(\Ews\StructType\EwsConstantValueType $constant = null) { - $this->Path = $path; + $this->Constant = $constant; return $this; } /** - * Get Constant value - * @return \Ews\StructType\EwsConstantValueType|null + * Get FieldURI value + * @return \Ews\StructType\EwsPathToUnindexedFieldType|null */ - public function getConstant() + public function getFieldURI() { - return $this->Constant; + return $this->FieldURI; } /** - * Set Constant value - * @param \Ews\StructType\EwsConstantValueType $constant + * Set FieldURI value + * @param \Ews\StructType\EwsPathToUnindexedFieldType $fieldURI * @return \Ews\StructType\EwsFieldURIOrConstantType */ - public function setConstant(\Ews\StructType\EwsConstantValueType $constant = null) + public function setFieldURI(\Ews\StructType\EwsPathToUnindexedFieldType $fieldURI = null) { - $this->Constant = $constant; + $this->FieldURI = $fieldURI; + return $this; + } + /** + * Get IndexedFieldURI value + * @return \Ews\StructType\EwsPathToIndexedFieldType|null + */ + public function getIndexedFieldURI() + { + return $this->IndexedFieldURI; + } + /** + * Set IndexedFieldURI value + * @param \Ews\StructType\EwsPathToIndexedFieldType $indexedFieldURI + * @return \Ews\StructType\EwsFieldURIOrConstantType + */ + public function setIndexedFieldURI(\Ews\StructType\EwsPathToIndexedFieldType $indexedFieldURI = null) + { + $this->IndexedFieldURI = $indexedFieldURI; + return $this; + } + /** + * Get ExtendedFieldURI value + * @return \Ews\StructType\EwsPathToExtendedFieldType|null + */ + public function getExtendedFieldURI() + { + return $this->ExtendedFieldURI; + } + /** + * Set ExtendedFieldURI value + * @param \Ews\StructType\EwsPathToExtendedFieldType $extendedFieldURI + * @return \Ews\StructType\EwsFieldURIOrConstantType + */ + public function setExtendedFieldURI(\Ews\StructType\EwsPathToExtendedFieldType $extendedFieldURI = null) + { + $this->ExtendedFieldURI = $extendedFieldURI; return $this; } /** diff --git a/src/StructType/EwsFolderResponseShapeType.php b/src/StructType/EwsFolderResponseShapeType.php index d3fd94d..fddf682 100644 --- a/src/StructType/EwsFolderResponseShapeType.php +++ b/src/StructType/EwsFolderResponseShapeType.php @@ -21,7 +21,7 @@ class EwsFolderResponseShapeType extends AbstractStructBase * The AdditionalProperties * Meta informations extracted from the WSDL * - minOccurs: 0 - * @var \Ews\ArrayType\EwsNonEmptyArrayOfPathsToElementType + * @var \Ews\StructType\EwsNonEmptyArrayOfPathsToElementType */ public $AdditionalProperties; /** @@ -29,9 +29,9 @@ class EwsFolderResponseShapeType extends AbstractStructBase * @uses EwsFolderResponseShapeType::setBaseShape() * @uses EwsFolderResponseShapeType::setAdditionalProperties() * @param string $baseShape - * @param \Ews\ArrayType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties + * @param \Ews\StructType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties */ - public function __construct($baseShape = null, \Ews\ArrayType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties = null) + public function __construct($baseShape = null, \Ews\StructType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties = null) { $this ->setBaseShape($baseShape) @@ -64,7 +64,7 @@ public function setBaseShape($baseShape = null) } /** * Get AdditionalProperties value - * @return \Ews\ArrayType\EwsNonEmptyArrayOfPathsToElementType|null + * @return \Ews\StructType\EwsNonEmptyArrayOfPathsToElementType|null */ public function getAdditionalProperties() { @@ -72,10 +72,10 @@ public function getAdditionalProperties() } /** * Set AdditionalProperties value - * @param \Ews\ArrayType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties + * @param \Ews\StructType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties * @return \Ews\StructType\EwsFolderResponseShapeType */ - public function setAdditionalProperties(\Ews\ArrayType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties = null) + public function setAdditionalProperties(\Ews\StructType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties = null) { $this->AdditionalProperties = $additionalProperties; return $this; diff --git a/src/StructType/EwsItemResponseShapeType.php b/src/StructType/EwsItemResponseShapeType.php index 6b0da81..0bfc0ed 100644 --- a/src/StructType/EwsItemResponseShapeType.php +++ b/src/StructType/EwsItemResponseShapeType.php @@ -97,7 +97,7 @@ class EwsItemResponseShapeType extends AbstractStructBase * The AdditionalProperties * Meta informations extracted from the WSDL * - minOccurs: 0 - * @var \Ews\ArrayType\EwsNonEmptyArrayOfPathsToElementType + * @var \Ews\StructType\EwsNonEmptyArrayOfPathsToElementType */ public $AdditionalProperties; /** @@ -125,9 +125,9 @@ class EwsItemResponseShapeType extends AbstractStructBase * @param bool $blockExternalImages * @param bool $addBlankTargetToLinks * @param int $maximumBodySize - * @param \Ews\ArrayType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties + * @param \Ews\StructType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties */ - public function __construct($baseShape = null, $includeMimeContent = null, $bodyType = null, $uniqueBodyType = null, $normalizedBodyType = null, $filterHtmlContent = null, $convertHtmlCodePageToUTF8 = null, $inlineImageUrlTemplate = null, $blockExternalImages = null, $addBlankTargetToLinks = null, $maximumBodySize = null, \Ews\ArrayType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties = null) + public function __construct($baseShape = null, $includeMimeContent = null, $bodyType = null, $uniqueBodyType = null, $normalizedBodyType = null, $filterHtmlContent = null, $convertHtmlCodePageToUTF8 = null, $inlineImageUrlTemplate = null, $blockExternalImages = null, $addBlankTargetToLinks = null, $maximumBodySize = null, \Ews\StructType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties = null) { $this ->setBaseShape($baseShape) @@ -379,7 +379,7 @@ public function setMaximumBodySize($maximumBodySize = null) } /** * Get AdditionalProperties value - * @return \Ews\ArrayType\EwsNonEmptyArrayOfPathsToElementType|null + * @return \Ews\StructType\EwsNonEmptyArrayOfPathsToElementType|null */ public function getAdditionalProperties() { @@ -387,10 +387,10 @@ public function getAdditionalProperties() } /** * Set AdditionalProperties value - * @param \Ews\ArrayType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties + * @param \Ews\StructType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties * @return \Ews\StructType\EwsItemResponseShapeType */ - public function setAdditionalProperties(\Ews\ArrayType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties = null) + public function setAdditionalProperties(\Ews\StructType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties = null) { $this->AdditionalProperties = $additionalProperties; return $this; diff --git a/src/StructType/EwsMultipleOperandBooleanExpressionType.php b/src/StructType/EwsMultipleOperandBooleanExpressionType.php index 395fe52..04a4f07 100644 --- a/src/StructType/EwsMultipleOperandBooleanExpressionType.php +++ b/src/StructType/EwsMultipleOperandBooleanExpressionType.php @@ -13,62 +13,322 @@ abstract class EwsMultipleOperandBooleanExpressionType extends EwsSearchExpressionType { /** - * The SearchExpression - * Meta informations extracted from the WSDL - * - maxOccurs: unbounded - * - minOccurs: 1 - * - ref: t:SearchExpression - * @var \Ews\StructType\EwsSearchExpressionType[] + * The Exists + * @var \Ews\StructType\EwsExistsType */ - public $SearchExpression; + public $Exists; + /** + * The Excludes + * @var \Ews\StructType\EwsExcludesType + */ + public $Excludes; + /** + * The IsEqualTo + * @var \Ews\StructType\EwsIsEqualToType + */ + public $IsEqualTo; + /** + * The IsNotEqualTo + * @var \Ews\StructType\EwsIsNotEqualToType + */ + public $IsNotEqualTo; + /** + * The IsGreaterThan + * @var \Ews\StructType\EwsIsGreaterThanType + */ + public $IsGreaterThan; + /** + * The IsGreaterThanOrEqualTo + * @var \Ews\StructType\EwsIsGreaterThanOrEqualToType + */ + public $IsGreaterThanOrEqualTo; + /** + * The IsLessThan + * @var \Ews\StructType\EwsIsLessThanType + */ + public $IsLessThan; + /** + * The IsLessThanOrEqualTo + * @var \Ews\StructType\EwsIsLessThanOrEqualToType + */ + public $IsLessThanOrEqualTo; + /** + * The Contains + * @var \Ews\StructType\EwsContainsExpressionType + */ + public $Contains; + /** + * The Not + * @var \Ews\StructType\EwsNotType + */ + public $Not; + /** + * The And + * @var \Ews\StructType\EwsAndType + */ + public $And; + /** + * The Or + * @var \Ews\StructType\EwsOrType + */ + public $Or; /** * Constructor method for MultipleOperandBooleanExpressionType - * @uses EwsMultipleOperandBooleanExpressionType::setSearchExpression() - * @param \Ews\StructType\EwsSearchExpressionType[] $searchExpression + * @uses EwsMultipleOperandBooleanExpressionType::setExists() + * @uses EwsMultipleOperandBooleanExpressionType::setExcludes() + * @uses EwsMultipleOperandBooleanExpressionType::setIsEqualTo() + * @uses EwsMultipleOperandBooleanExpressionType::setIsNotEqualTo() + * @uses EwsMultipleOperandBooleanExpressionType::setIsGreaterThan() + * @uses EwsMultipleOperandBooleanExpressionType::setIsGreaterThanOrEqualTo() + * @uses EwsMultipleOperandBooleanExpressionType::setIsLessThan() + * @uses EwsMultipleOperandBooleanExpressionType::setIsLessThanOrEqualTo() + * @uses EwsMultipleOperandBooleanExpressionType::setContains() + * @uses EwsMultipleOperandBooleanExpressionType::setNot() + * @uses EwsMultipleOperandBooleanExpressionType::setAnd() + * @uses EwsMultipleOperandBooleanExpressionType::setOr() + * @param \Ews\StructType\EwsExistsType $exists + * @param \Ews\StructType\EwsExcludesType $excludes + * @param \Ews\StructType\EwsIsEqualToType $isEqualTo + * @param \Ews\StructType\EwsIsNotEqualToType $isNotEqualTo + * @param \Ews\StructType\EwsIsGreaterThanType $isGreaterThan + * @param \Ews\StructType\EwsIsGreaterThanOrEqualToType $isGreaterThanOrEqualTo + * @param \Ews\StructType\EwsIsLessThanType $isLessThan + * @param \Ews\StructType\EwsIsLessThanOrEqualToType $isLessThanOrEqualTo + * @param \Ews\StructType\EwsContainsExpressionType $contains + * @param \Ews\StructType\EwsNotType $not + * @param \Ews\StructType\EwsAndType $and + * @param \Ews\StructType\EwsOrType $or */ - public function __construct(array $searchExpression = array()) + public function __construct(\Ews\StructType\EwsExistsType $exists = null, \Ews\StructType\EwsExcludesType $excludes = null, \Ews\StructType\EwsIsEqualToType $isEqualTo = null, \Ews\StructType\EwsIsNotEqualToType $isNotEqualTo = null, \Ews\StructType\EwsIsGreaterThanType $isGreaterThan = null, \Ews\StructType\EwsIsGreaterThanOrEqualToType $isGreaterThanOrEqualTo = null, \Ews\StructType\EwsIsLessThanType $isLessThan = null, \Ews\StructType\EwsIsLessThanOrEqualToType $isLessThanOrEqualTo = null, \Ews\StructType\EwsContainsExpressionType $contains = null, \Ews\StructType\EwsNotType $not = null, \Ews\StructType\EwsAndType $and = null, \Ews\StructType\EwsOrType $or = null) { $this - ->setSearchExpression($searchExpression); + ->setExists($exists) + ->setExcludes($excludes) + ->setIsEqualTo($isEqualTo) + ->setIsNotEqualTo($isNotEqualTo) + ->setIsGreaterThan($isGreaterThan) + ->setIsGreaterThanOrEqualTo($isGreaterThanOrEqualTo) + ->setIsLessThan($isLessThan) + ->setIsLessThanOrEqualTo($isLessThanOrEqualTo) + ->setContains($contains) + ->setNot($not) + ->setAnd($and) + ->setOr($or); + } + /** + * Get Exists value + * @return \Ews\StructType\EwsExistsType|null + */ + public function getExists() + { + return $this->Exists; + } + /** + * Set Exists value + * @param \Ews\StructType\EwsExistsType $exists + * @return \Ews\StructType\EwsMultipleOperandBooleanExpressionType + */ + public function setExists(\Ews\StructType\EwsExistsType $exists = null) + { + $this->Exists = $exists; + return $this; + } + /** + * Get Excludes value + * @return \Ews\StructType\EwsExcludesType|null + */ + public function getExcludes() + { + return $this->Excludes; + } + /** + * Set Excludes value + * @param \Ews\StructType\EwsExcludesType $excludes + * @return \Ews\StructType\EwsMultipleOperandBooleanExpressionType + */ + public function setExcludes(\Ews\StructType\EwsExcludesType $excludes = null) + { + $this->Excludes = $excludes; + return $this; + } + /** + * Get IsEqualTo value + * @return \Ews\StructType\EwsIsEqualToType|null + */ + public function getIsEqualTo() + { + return $this->IsEqualTo; + } + /** + * Set IsEqualTo value + * @param \Ews\StructType\EwsIsEqualToType $isEqualTo + * @return \Ews\StructType\EwsMultipleOperandBooleanExpressionType + */ + public function setIsEqualTo(\Ews\StructType\EwsIsEqualToType $isEqualTo = null) + { + $this->IsEqualTo = $isEqualTo; + return $this; + } + /** + * Get IsNotEqualTo value + * @return \Ews\StructType\EwsIsNotEqualToType|null + */ + public function getIsNotEqualTo() + { + return $this->IsNotEqualTo; + } + /** + * Set IsNotEqualTo value + * @param \Ews\StructType\EwsIsNotEqualToType $isNotEqualTo + * @return \Ews\StructType\EwsMultipleOperandBooleanExpressionType + */ + public function setIsNotEqualTo(\Ews\StructType\EwsIsNotEqualToType $isNotEqualTo = null) + { + $this->IsNotEqualTo = $isNotEqualTo; + return $this; + } + /** + * Get IsGreaterThan value + * @return \Ews\StructType\EwsIsGreaterThanType|null + */ + public function getIsGreaterThan() + { + return $this->IsGreaterThan; + } + /** + * Set IsGreaterThan value + * @param \Ews\StructType\EwsIsGreaterThanType $isGreaterThan + * @return \Ews\StructType\EwsMultipleOperandBooleanExpressionType + */ + public function setIsGreaterThan(\Ews\StructType\EwsIsGreaterThanType $isGreaterThan = null) + { + $this->IsGreaterThan = $isGreaterThan; + return $this; + } + /** + * Get IsGreaterThanOrEqualTo value + * @return \Ews\StructType\EwsIsGreaterThanOrEqualToType|null + */ + public function getIsGreaterThanOrEqualTo() + { + return $this->IsGreaterThanOrEqualTo; + } + /** + * Set IsGreaterThanOrEqualTo value + * @param \Ews\StructType\EwsIsGreaterThanOrEqualToType $isGreaterThanOrEqualTo + * @return \Ews\StructType\EwsMultipleOperandBooleanExpressionType + */ + public function setIsGreaterThanOrEqualTo(\Ews\StructType\EwsIsGreaterThanOrEqualToType $isGreaterThanOrEqualTo = null) + { + $this->IsGreaterThanOrEqualTo = $isGreaterThanOrEqualTo; + return $this; + } + /** + * Get IsLessThan value + * @return \Ews\StructType\EwsIsLessThanType|null + */ + public function getIsLessThan() + { + return $this->IsLessThan; + } + /** + * Set IsLessThan value + * @param \Ews\StructType\EwsIsLessThanType $isLessThan + * @return \Ews\StructType\EwsMultipleOperandBooleanExpressionType + */ + public function setIsLessThan(\Ews\StructType\EwsIsLessThanType $isLessThan = null) + { + $this->IsLessThan = $isLessThan; + return $this; } /** - * Get SearchExpression value - * @return \Ews\StructType\EwsSearchExpressionType[] + * Get IsLessThanOrEqualTo value + * @return \Ews\StructType\EwsIsLessThanOrEqualToType|null */ - public function getSearchExpression() + public function getIsLessThanOrEqualTo() { - return $this->SearchExpression; + return $this->IsLessThanOrEqualTo; } /** - * Set SearchExpression value - * @throws \InvalidArgumentException - * @param \Ews\StructType\EwsSearchExpressionType[] $searchExpression + * Set IsLessThanOrEqualTo value + * @param \Ews\StructType\EwsIsLessThanOrEqualToType $isLessThanOrEqualTo * @return \Ews\StructType\EwsMultipleOperandBooleanExpressionType */ - public function setSearchExpression(array $searchExpression = array()) + public function setIsLessThanOrEqualTo(\Ews\StructType\EwsIsLessThanOrEqualToType $isLessThanOrEqualTo = null) { - foreach ($searchExpression as $multipleOperandBooleanExpressionTypeSearchExpressionItem) { - // validation for constraint: itemType - if (!$multipleOperandBooleanExpressionTypeSearchExpressionItem instanceof \Ews\StructType\EwsSearchExpressionType) { - throw new \InvalidArgumentException(sprintf('The SearchExpression property can only contain items of \Ews\StructType\EwsSearchExpressionType, "%s" given', is_object($multipleOperandBooleanExpressionTypeSearchExpressionItem) ? get_class($multipleOperandBooleanExpressionTypeSearchExpressionItem) : gettype($multipleOperandBooleanExpressionTypeSearchExpressionItem)), __LINE__); - } - } - $this->SearchExpression = $searchExpression; + $this->IsLessThanOrEqualTo = $isLessThanOrEqualTo; return $this; } /** - * Add item to SearchExpression value - * @throws \InvalidArgumentException - * @param \Ews\StructType\EwsSearchExpressionType $item + * Get Contains value + * @return \Ews\StructType\EwsContainsExpressionType|null + */ + public function getContains() + { + return $this->Contains; + } + /** + * Set Contains value + * @param \Ews\StructType\EwsContainsExpressionType $contains + * @return \Ews\StructType\EwsMultipleOperandBooleanExpressionType + */ + public function setContains(\Ews\StructType\EwsContainsExpressionType $contains = null) + { + $this->Contains = $contains; + return $this; + } + /** + * Get Not value + * @return \Ews\StructType\EwsNotType|null + */ + public function getNot() + { + return $this->Not; + } + /** + * Set Not value + * @param \Ews\StructType\EwsNotType $not + * @return \Ews\StructType\EwsMultipleOperandBooleanExpressionType + */ + public function setNot(\Ews\StructType\EwsNotType $not = null) + { + $this->Not = $not; + return $this; + } + /** + * Get And value + * @return \Ews\StructType\EwsAndType|null + */ + public function getAnd() + { + return $this->And; + } + /** + * Set And value + * @param \Ews\StructType\EwsAndType $and + * @return \Ews\StructType\EwsMultipleOperandBooleanExpressionType + */ + public function setAnd(\Ews\StructType\EwsAndType $and = null) + { + $this->And = $and; + return $this; + } + /** + * Get Or value + * @return \Ews\StructType\EwsOrType|null + */ + public function getOr() + { + return $this->Or; + } + /** + * Set Or value + * @param \Ews\StructType\EwsOrType $or * @return \Ews\StructType\EwsMultipleOperandBooleanExpressionType */ - public function addToSearchExpression(\Ews\StructType\EwsSearchExpressionType $item) + public function setOr(\Ews\StructType\EwsOrType $or = null) { - // validation for constraint: itemType - if (!$item instanceof \Ews\StructType\EwsSearchExpressionType) { - throw new \InvalidArgumentException(sprintf('The SearchExpression property can only contain items of \Ews\StructType\EwsSearchExpressionType, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__); - } - $this->SearchExpression[] = $item; + $this->Or = $or; return $this; } /** diff --git a/src/StructType/EwsNonEmptyArrayOfPathsToElementType.php b/src/StructType/EwsNonEmptyArrayOfPathsToElementType.php new file mode 100644 index 0000000..31844ab --- /dev/null +++ b/src/StructType/EwsNonEmptyArrayOfPathsToElementType.php @@ -0,0 +1,120 @@ + + */ +class EwsNonEmptyArrayOfPathsToElementType extends AbstractStructBase +{ + /** + * The FieldURI + * @var \Ews\StructType\EwsPathToUnindexedFieldType + */ + public $FieldURI; + /** + * The IndexedFieldURI + * @var \Ews\StructType\EwsPathToIndexedFieldType + */ + public $IndexedFieldURI; + /** + * The ExtendedFieldURI + * @var \Ews\StructType\EwsPathToExtendedFieldType + */ + public $ExtendedFieldURI; + /** + * Constructor method for NonEmptyArrayOfPathsToElementType + * @uses EwsNonEmptyArrayOfPathsToElementType::setFieldURI() + * @uses EwsNonEmptyArrayOfPathsToElementType::setIndexedFieldURI() + * @uses EwsNonEmptyArrayOfPathsToElementType::setExtendedFieldURI() + * @param \Ews\StructType\EwsPathToUnindexedFieldType $fieldURI + * @param \Ews\StructType\EwsPathToIndexedFieldType $indexedFieldURI + * @param \Ews\StructType\EwsPathToExtendedFieldType $extendedFieldURI + */ + public function __construct(\Ews\StructType\EwsPathToUnindexedFieldType $fieldURI = null, \Ews\StructType\EwsPathToIndexedFieldType $indexedFieldURI = null, \Ews\StructType\EwsPathToExtendedFieldType $extendedFieldURI = null) + { + $this + ->setFieldURI($fieldURI) + ->setIndexedFieldURI($indexedFieldURI) + ->setExtendedFieldURI($extendedFieldURI); + } + /** + * Get FieldURI value + * @return \Ews\StructType\EwsPathToUnindexedFieldType|null + */ + public function getFieldURI() + { + return $this->FieldURI; + } + /** + * Set FieldURI value + * @param \Ews\StructType\EwsPathToUnindexedFieldType $fieldURI + * @return \Ews\StructType\EwsNonEmptyArrayOfPathsToElementType + */ + public function setFieldURI(\Ews\StructType\EwsPathToUnindexedFieldType $fieldURI = null) + { + $this->FieldURI = $fieldURI; + return $this; + } + /** + * Get IndexedFieldURI value + * @return \Ews\StructType\EwsPathToIndexedFieldType|null + */ + public function getIndexedFieldURI() + { + return $this->IndexedFieldURI; + } + /** + * Set IndexedFieldURI value + * @param \Ews\StructType\EwsPathToIndexedFieldType $indexedFieldURI + * @return \Ews\StructType\EwsNonEmptyArrayOfPathsToElementType + */ + public function setIndexedFieldURI(\Ews\StructType\EwsPathToIndexedFieldType $indexedFieldURI = null) + { + $this->IndexedFieldURI = $indexedFieldURI; + return $this; + } + /** + * Get ExtendedFieldURI value + * @return \Ews\StructType\EwsPathToExtendedFieldType|null + */ + public function getExtendedFieldURI() + { + return $this->ExtendedFieldURI; + } + /** + * Set ExtendedFieldURI value + * @param \Ews\StructType\EwsPathToExtendedFieldType $extendedFieldURI + * @return \Ews\StructType\EwsNonEmptyArrayOfPathsToElementType + */ + public function setExtendedFieldURI(\Ews\StructType\EwsPathToExtendedFieldType $extendedFieldURI = null) + { + $this->ExtendedFieldURI = $extendedFieldURI; + return $this; + } + /** + * Method called when an object has been exported with var_export() functions + * It allows to return an object instantiated with the values + * @see AbstractStructBase::__set_state() + * @uses AbstractStructBase::__set_state() + * @param array $array the exported values + * @return \Ews\StructType\EwsNonEmptyArrayOfPathsToElementType + */ + public static function __set_state(array $array) + { + return parent::__set_state($array); + } + /** + * Method returning the class name + * @return string __CLASS__ + */ + public function __toString() + { + return __CLASS__; + } +} diff --git a/src/StructType/EwsNotType.php b/src/StructType/EwsNotType.php index 1d07c4d..9c24413 100644 --- a/src/StructType/EwsNotType.php +++ b/src/StructType/EwsNotType.php @@ -13,38 +13,322 @@ class EwsNotType extends EwsSearchExpressionType { /** - * The SearchExpression - * Meta informations extracted from the WSDL - * - ref: t:SearchExpression - * @var \Ews\StructType\EwsSearchExpressionType + * The Exists + * @var \Ews\StructType\EwsExistsType */ - public $SearchExpression; + public $Exists; + /** + * The Excludes + * @var \Ews\StructType\EwsExcludesType + */ + public $Excludes; + /** + * The IsEqualTo + * @var \Ews\StructType\EwsIsEqualToType + */ + public $IsEqualTo; + /** + * The IsNotEqualTo + * @var \Ews\StructType\EwsIsNotEqualToType + */ + public $IsNotEqualTo; + /** + * The IsGreaterThan + * @var \Ews\StructType\EwsIsGreaterThanType + */ + public $IsGreaterThan; + /** + * The IsGreaterThanOrEqualTo + * @var \Ews\StructType\EwsIsGreaterThanOrEqualToType + */ + public $IsGreaterThanOrEqualTo; + /** + * The IsLessThan + * @var \Ews\StructType\EwsIsLessThanType + */ + public $IsLessThan; + /** + * The IsLessThanOrEqualTo + * @var \Ews\StructType\EwsIsLessThanOrEqualToType + */ + public $IsLessThanOrEqualTo; + /** + * The Contains + * @var \Ews\StructType\EwsContainsExpressionType + */ + public $Contains; + /** + * The Not + * @var \Ews\StructType\EwsNotType + */ + public $Not; + /** + * The And + * @var \Ews\StructType\EwsAndType + */ + public $And; + /** + * The Or + * @var \Ews\StructType\EwsOrType + */ + public $Or; /** * Constructor method for NotType - * @uses EwsNotType::setSearchExpression() - * @param \Ews\StructType\EwsSearchExpressionType $searchExpression + * @uses EwsNotType::setExists() + * @uses EwsNotType::setExcludes() + * @uses EwsNotType::setIsEqualTo() + * @uses EwsNotType::setIsNotEqualTo() + * @uses EwsNotType::setIsGreaterThan() + * @uses EwsNotType::setIsGreaterThanOrEqualTo() + * @uses EwsNotType::setIsLessThan() + * @uses EwsNotType::setIsLessThanOrEqualTo() + * @uses EwsNotType::setContains() + * @uses EwsNotType::setNot() + * @uses EwsNotType::setAnd() + * @uses EwsNotType::setOr() + * @param \Ews\StructType\EwsExistsType $exists + * @param \Ews\StructType\EwsExcludesType $excludes + * @param \Ews\StructType\EwsIsEqualToType $isEqualTo + * @param \Ews\StructType\EwsIsNotEqualToType $isNotEqualTo + * @param \Ews\StructType\EwsIsGreaterThanType $isGreaterThan + * @param \Ews\StructType\EwsIsGreaterThanOrEqualToType $isGreaterThanOrEqualTo + * @param \Ews\StructType\EwsIsLessThanType $isLessThan + * @param \Ews\StructType\EwsIsLessThanOrEqualToType $isLessThanOrEqualTo + * @param \Ews\StructType\EwsContainsExpressionType $contains + * @param \Ews\StructType\EwsNotType $not + * @param \Ews\StructType\EwsAndType $and + * @param \Ews\StructType\EwsOrType $or */ - public function __construct(\Ews\StructType\EwsSearchExpressionType $searchExpression = null) + public function __construct(\Ews\StructType\EwsExistsType $exists = null, \Ews\StructType\EwsExcludesType $excludes = null, \Ews\StructType\EwsIsEqualToType $isEqualTo = null, \Ews\StructType\EwsIsNotEqualToType $isNotEqualTo = null, \Ews\StructType\EwsIsGreaterThanType $isGreaterThan = null, \Ews\StructType\EwsIsGreaterThanOrEqualToType $isGreaterThanOrEqualTo = null, \Ews\StructType\EwsIsLessThanType $isLessThan = null, \Ews\StructType\EwsIsLessThanOrEqualToType $isLessThanOrEqualTo = null, \Ews\StructType\EwsContainsExpressionType $contains = null, \Ews\StructType\EwsNotType $not = null, \Ews\StructType\EwsAndType $and = null, \Ews\StructType\EwsOrType $or = null) { $this - ->setSearchExpression($searchExpression); + ->setExists($exists) + ->setExcludes($excludes) + ->setIsEqualTo($isEqualTo) + ->setIsNotEqualTo($isNotEqualTo) + ->setIsGreaterThan($isGreaterThan) + ->setIsGreaterThanOrEqualTo($isGreaterThanOrEqualTo) + ->setIsLessThan($isLessThan) + ->setIsLessThanOrEqualTo($isLessThanOrEqualTo) + ->setContains($contains) + ->setNot($not) + ->setAnd($and) + ->setOr($or); + } + /** + * Get Exists value + * @return \Ews\StructType\EwsExistsType|null + */ + public function getExists() + { + return $this->Exists; + } + /** + * Set Exists value + * @param \Ews\StructType\EwsExistsType $exists + * @return \Ews\StructType\EwsNotType + */ + public function setExists(\Ews\StructType\EwsExistsType $exists = null) + { + $this->Exists = $exists; + return $this; + } + /** + * Get Excludes value + * @return \Ews\StructType\EwsExcludesType|null + */ + public function getExcludes() + { + return $this->Excludes; + } + /** + * Set Excludes value + * @param \Ews\StructType\EwsExcludesType $excludes + * @return \Ews\StructType\EwsNotType + */ + public function setExcludes(\Ews\StructType\EwsExcludesType $excludes = null) + { + $this->Excludes = $excludes; + return $this; + } + /** + * Get IsEqualTo value + * @return \Ews\StructType\EwsIsEqualToType|null + */ + public function getIsEqualTo() + { + return $this->IsEqualTo; + } + /** + * Set IsEqualTo value + * @param \Ews\StructType\EwsIsEqualToType $isEqualTo + * @return \Ews\StructType\EwsNotType + */ + public function setIsEqualTo(\Ews\StructType\EwsIsEqualToType $isEqualTo = null) + { + $this->IsEqualTo = $isEqualTo; + return $this; + } + /** + * Get IsNotEqualTo value + * @return \Ews\StructType\EwsIsNotEqualToType|null + */ + public function getIsNotEqualTo() + { + return $this->IsNotEqualTo; + } + /** + * Set IsNotEqualTo value + * @param \Ews\StructType\EwsIsNotEqualToType $isNotEqualTo + * @return \Ews\StructType\EwsNotType + */ + public function setIsNotEqualTo(\Ews\StructType\EwsIsNotEqualToType $isNotEqualTo = null) + { + $this->IsNotEqualTo = $isNotEqualTo; + return $this; + } + /** + * Get IsGreaterThan value + * @return \Ews\StructType\EwsIsGreaterThanType|null + */ + public function getIsGreaterThan() + { + return $this->IsGreaterThan; + } + /** + * Set IsGreaterThan value + * @param \Ews\StructType\EwsIsGreaterThanType $isGreaterThan + * @return \Ews\StructType\EwsNotType + */ + public function setIsGreaterThan(\Ews\StructType\EwsIsGreaterThanType $isGreaterThan = null) + { + $this->IsGreaterThan = $isGreaterThan; + return $this; + } + /** + * Get IsGreaterThanOrEqualTo value + * @return \Ews\StructType\EwsIsGreaterThanOrEqualToType|null + */ + public function getIsGreaterThanOrEqualTo() + { + return $this->IsGreaterThanOrEqualTo; + } + /** + * Set IsGreaterThanOrEqualTo value + * @param \Ews\StructType\EwsIsGreaterThanOrEqualToType $isGreaterThanOrEqualTo + * @return \Ews\StructType\EwsNotType + */ + public function setIsGreaterThanOrEqualTo(\Ews\StructType\EwsIsGreaterThanOrEqualToType $isGreaterThanOrEqualTo = null) + { + $this->IsGreaterThanOrEqualTo = $isGreaterThanOrEqualTo; + return $this; + } + /** + * Get IsLessThan value + * @return \Ews\StructType\EwsIsLessThanType|null + */ + public function getIsLessThan() + { + return $this->IsLessThan; + } + /** + * Set IsLessThan value + * @param \Ews\StructType\EwsIsLessThanType $isLessThan + * @return \Ews\StructType\EwsNotType + */ + public function setIsLessThan(\Ews\StructType\EwsIsLessThanType $isLessThan = null) + { + $this->IsLessThan = $isLessThan; + return $this; + } + /** + * Get IsLessThanOrEqualTo value + * @return \Ews\StructType\EwsIsLessThanOrEqualToType|null + */ + public function getIsLessThanOrEqualTo() + { + return $this->IsLessThanOrEqualTo; + } + /** + * Set IsLessThanOrEqualTo value + * @param \Ews\StructType\EwsIsLessThanOrEqualToType $isLessThanOrEqualTo + * @return \Ews\StructType\EwsNotType + */ + public function setIsLessThanOrEqualTo(\Ews\StructType\EwsIsLessThanOrEqualToType $isLessThanOrEqualTo = null) + { + $this->IsLessThanOrEqualTo = $isLessThanOrEqualTo; + return $this; + } + /** + * Get Contains value + * @return \Ews\StructType\EwsContainsExpressionType|null + */ + public function getContains() + { + return $this->Contains; + } + /** + * Set Contains value + * @param \Ews\StructType\EwsContainsExpressionType $contains + * @return \Ews\StructType\EwsNotType + */ + public function setContains(\Ews\StructType\EwsContainsExpressionType $contains = null) + { + $this->Contains = $contains; + return $this; + } + /** + * Get Not value + * @return \Ews\StructType\EwsNotType|null + */ + public function getNot() + { + return $this->Not; + } + /** + * Set Not value + * @param \Ews\StructType\EwsNotType $not + * @return \Ews\StructType\EwsNotType + */ + public function setNot(\Ews\StructType\EwsNotType $not = null) + { + $this->Not = $not; + return $this; + } + /** + * Get And value + * @return \Ews\StructType\EwsAndType|null + */ + public function getAnd() + { + return $this->And; + } + /** + * Set And value + * @param \Ews\StructType\EwsAndType $and + * @return \Ews\StructType\EwsNotType + */ + public function setAnd(\Ews\StructType\EwsAndType $and = null) + { + $this->And = $and; + return $this; } /** - * Get SearchExpression value - * @return \Ews\StructType\EwsSearchExpressionType|null + * Get Or value + * @return \Ews\StructType\EwsOrType|null */ - public function getSearchExpression() + public function getOr() { - return $this->SearchExpression; + return $this->Or; } /** - * Set SearchExpression value - * @param \Ews\StructType\EwsSearchExpressionType $searchExpression + * Set Or value + * @param \Ews\StructType\EwsOrType $or * @return \Ews\StructType\EwsNotType */ - public function setSearchExpression(\Ews\StructType\EwsSearchExpressionType $searchExpression = null) + public function setOr(\Ews\StructType\EwsOrType $or = null) { - $this->SearchExpression = $searchExpression; + $this->Or = $or; return $this; } /** diff --git a/src/StructType/EwsPersonResponseShapeType.php b/src/StructType/EwsPersonResponseShapeType.php index a040798..19b56f7 100644 --- a/src/StructType/EwsPersonResponseShapeType.php +++ b/src/StructType/EwsPersonResponseShapeType.php @@ -21,7 +21,7 @@ class EwsPersonResponseShapeType extends AbstractStructBase * The AdditionalProperties * Meta informations extracted from the WSDL * - minOccurs: 0 - * @var \Ews\ArrayType\EwsNonEmptyArrayOfPathsToElementType + * @var \Ews\StructType\EwsNonEmptyArrayOfPathsToElementType */ public $AdditionalProperties; /** @@ -29,9 +29,9 @@ class EwsPersonResponseShapeType extends AbstractStructBase * @uses EwsPersonResponseShapeType::setBaseShape() * @uses EwsPersonResponseShapeType::setAdditionalProperties() * @param string $baseShape - * @param \Ews\ArrayType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties + * @param \Ews\StructType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties */ - public function __construct($baseShape = null, \Ews\ArrayType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties = null) + public function __construct($baseShape = null, \Ews\StructType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties = null) { $this ->setBaseShape($baseShape) @@ -64,7 +64,7 @@ public function setBaseShape($baseShape = null) } /** * Get AdditionalProperties value - * @return \Ews\ArrayType\EwsNonEmptyArrayOfPathsToElementType|null + * @return \Ews\StructType\EwsNonEmptyArrayOfPathsToElementType|null */ public function getAdditionalProperties() { @@ -72,10 +72,10 @@ public function getAdditionalProperties() } /** * Set AdditionalProperties value - * @param \Ews\ArrayType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties + * @param \Ews\StructType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties * @return \Ews\StructType\EwsPersonResponseShapeType */ - public function setAdditionalProperties(\Ews\ArrayType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties = null) + public function setAdditionalProperties(\Ews\StructType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties = null) { $this->AdditionalProperties = $additionalProperties; return $this; diff --git a/src/StructType/EwsPersonaResponseShapeType.php b/src/StructType/EwsPersonaResponseShapeType.php index cc58451..0ed46ba 100644 --- a/src/StructType/EwsPersonaResponseShapeType.php +++ b/src/StructType/EwsPersonaResponseShapeType.php @@ -21,7 +21,7 @@ class EwsPersonaResponseShapeType extends AbstractStructBase * The AdditionalProperties * Meta informations extracted from the WSDL * - minOccurs: 0 - * @var \Ews\ArrayType\EwsNonEmptyArrayOfPathsToElementType + * @var \Ews\StructType\EwsNonEmptyArrayOfPathsToElementType */ public $AdditionalProperties; /** @@ -29,9 +29,9 @@ class EwsPersonaResponseShapeType extends AbstractStructBase * @uses EwsPersonaResponseShapeType::setBaseShape() * @uses EwsPersonaResponseShapeType::setAdditionalProperties() * @param string $baseShape - * @param \Ews\ArrayType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties + * @param \Ews\StructType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties */ - public function __construct($baseShape = null, \Ews\ArrayType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties = null) + public function __construct($baseShape = null, \Ews\StructType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties = null) { $this ->setBaseShape($baseShape) @@ -64,7 +64,7 @@ public function setBaseShape($baseShape = null) } /** * Get AdditionalProperties value - * @return \Ews\ArrayType\EwsNonEmptyArrayOfPathsToElementType|null + * @return \Ews\StructType\EwsNonEmptyArrayOfPathsToElementType|null */ public function getAdditionalProperties() { @@ -72,10 +72,10 @@ public function getAdditionalProperties() } /** * Set AdditionalProperties value - * @param \Ews\ArrayType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties + * @param \Ews\StructType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties * @return \Ews\StructType\EwsPersonaResponseShapeType */ - public function setAdditionalProperties(\Ews\ArrayType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties = null) + public function setAdditionalProperties(\Ews\StructType\EwsNonEmptyArrayOfPathsToElementType $additionalProperties = null) { $this->AdditionalProperties = $additionalProperties; return $this; diff --git a/src/StructType/EwsRestrictionType.php b/src/StructType/EwsRestrictionType.php index dc47ea3..d6ff6d9 100644 --- a/src/StructType/EwsRestrictionType.php +++ b/src/StructType/EwsRestrictionType.php @@ -13,38 +13,322 @@ class EwsRestrictionType extends AbstractStructBase { /** - * The SearchExpression - * Meta informations extracted from the WSDL - * - ref: t:SearchExpression - * @var \Ews\StructType\EwsSearchExpressionType + * The Exists + * @var \Ews\StructType\EwsExistsType */ - public $SearchExpression; + public $Exists; + /** + * The Excludes + * @var \Ews\StructType\EwsExcludesType + */ + public $Excludes; + /** + * The IsEqualTo + * @var \Ews\StructType\EwsIsEqualToType + */ + public $IsEqualTo; + /** + * The IsNotEqualTo + * @var \Ews\StructType\EwsIsNotEqualToType + */ + public $IsNotEqualTo; + /** + * The IsGreaterThan + * @var \Ews\StructType\EwsIsGreaterThanType + */ + public $IsGreaterThan; + /** + * The IsGreaterThanOrEqualTo + * @var \Ews\StructType\EwsIsGreaterThanOrEqualToType + */ + public $IsGreaterThanOrEqualTo; + /** + * The IsLessThan + * @var \Ews\StructType\EwsIsLessThanType + */ + public $IsLessThan; + /** + * The IsLessThanOrEqualTo + * @var \Ews\StructType\EwsIsLessThanOrEqualToType + */ + public $IsLessThanOrEqualTo; + /** + * The Contains + * @var \Ews\StructType\EwsContainsExpressionType + */ + public $Contains; + /** + * The Not + * @var \Ews\StructType\EwsNotType + */ + public $Not; + /** + * The And + * @var \Ews\StructType\EwsAndType + */ + public $And; + /** + * The Or + * @var \Ews\StructType\EwsOrType + */ + public $Or; /** * Constructor method for RestrictionType - * @uses EwsRestrictionType::setSearchExpression() - * @param \Ews\StructType\EwsSearchExpressionType $searchExpression + * @uses EwsRestrictionType::setExists() + * @uses EwsRestrictionType::setExcludes() + * @uses EwsRestrictionType::setIsEqualTo() + * @uses EwsRestrictionType::setIsNotEqualTo() + * @uses EwsRestrictionType::setIsGreaterThan() + * @uses EwsRestrictionType::setIsGreaterThanOrEqualTo() + * @uses EwsRestrictionType::setIsLessThan() + * @uses EwsRestrictionType::setIsLessThanOrEqualTo() + * @uses EwsRestrictionType::setContains() + * @uses EwsRestrictionType::setNot() + * @uses EwsRestrictionType::setAnd() + * @uses EwsRestrictionType::setOr() + * @param \Ews\StructType\EwsExistsType $exists + * @param \Ews\StructType\EwsExcludesType $excludes + * @param \Ews\StructType\EwsIsEqualToType $isEqualTo + * @param \Ews\StructType\EwsIsNotEqualToType $isNotEqualTo + * @param \Ews\StructType\EwsIsGreaterThanType $isGreaterThan + * @param \Ews\StructType\EwsIsGreaterThanOrEqualToType $isGreaterThanOrEqualTo + * @param \Ews\StructType\EwsIsLessThanType $isLessThan + * @param \Ews\StructType\EwsIsLessThanOrEqualToType $isLessThanOrEqualTo + * @param \Ews\StructType\EwsContainsExpressionType $contains + * @param \Ews\StructType\EwsNotType $not + * @param \Ews\StructType\EwsAndType $and + * @param \Ews\StructType\EwsOrType $or */ - public function __construct(\Ews\StructType\EwsSearchExpressionType $searchExpression = null) + public function __construct(\Ews\StructType\EwsExistsType $exists = null, \Ews\StructType\EwsExcludesType $excludes = null, \Ews\StructType\EwsIsEqualToType $isEqualTo = null, \Ews\StructType\EwsIsNotEqualToType $isNotEqualTo = null, \Ews\StructType\EwsIsGreaterThanType $isGreaterThan = null, \Ews\StructType\EwsIsGreaterThanOrEqualToType $isGreaterThanOrEqualTo = null, \Ews\StructType\EwsIsLessThanType $isLessThan = null, \Ews\StructType\EwsIsLessThanOrEqualToType $isLessThanOrEqualTo = null, \Ews\StructType\EwsContainsExpressionType $contains = null, \Ews\StructType\EwsNotType $not = null, \Ews\StructType\EwsAndType $and = null, \Ews\StructType\EwsOrType $or = null) { $this - ->setSearchExpression($searchExpression); + ->setExists($exists) + ->setExcludes($excludes) + ->setIsEqualTo($isEqualTo) + ->setIsNotEqualTo($isNotEqualTo) + ->setIsGreaterThan($isGreaterThan) + ->setIsGreaterThanOrEqualTo($isGreaterThanOrEqualTo) + ->setIsLessThan($isLessThan) + ->setIsLessThanOrEqualTo($isLessThanOrEqualTo) + ->setContains($contains) + ->setNot($not) + ->setAnd($and) + ->setOr($or); + } + /** + * Get Exists value + * @return \Ews\StructType\EwsExistsType|null + */ + public function getExists() + { + return $this->Exists; + } + /** + * Set Exists value + * @param \Ews\StructType\EwsExistsType $exists + * @return \Ews\StructType\EwsRestrictionType + */ + public function setExists(\Ews\StructType\EwsExistsType $exists = null) + { + $this->Exists = $exists; + return $this; + } + /** + * Get Excludes value + * @return \Ews\StructType\EwsExcludesType|null + */ + public function getExcludes() + { + return $this->Excludes; + } + /** + * Set Excludes value + * @param \Ews\StructType\EwsExcludesType $excludes + * @return \Ews\StructType\EwsRestrictionType + */ + public function setExcludes(\Ews\StructType\EwsExcludesType $excludes = null) + { + $this->Excludes = $excludes; + return $this; + } + /** + * Get IsEqualTo value + * @return \Ews\StructType\EwsIsEqualToType|null + */ + public function getIsEqualTo() + { + return $this->IsEqualTo; + } + /** + * Set IsEqualTo value + * @param \Ews\StructType\EwsIsEqualToType $isEqualTo + * @return \Ews\StructType\EwsRestrictionType + */ + public function setIsEqualTo(\Ews\StructType\EwsIsEqualToType $isEqualTo = null) + { + $this->IsEqualTo = $isEqualTo; + return $this; + } + /** + * Get IsNotEqualTo value + * @return \Ews\StructType\EwsIsNotEqualToType|null + */ + public function getIsNotEqualTo() + { + return $this->IsNotEqualTo; + } + /** + * Set IsNotEqualTo value + * @param \Ews\StructType\EwsIsNotEqualToType $isNotEqualTo + * @return \Ews\StructType\EwsRestrictionType + */ + public function setIsNotEqualTo(\Ews\StructType\EwsIsNotEqualToType $isNotEqualTo = null) + { + $this->IsNotEqualTo = $isNotEqualTo; + return $this; + } + /** + * Get IsGreaterThan value + * @return \Ews\StructType\EwsIsGreaterThanType|null + */ + public function getIsGreaterThan() + { + return $this->IsGreaterThan; + } + /** + * Set IsGreaterThan value + * @param \Ews\StructType\EwsIsGreaterThanType $isGreaterThan + * @return \Ews\StructType\EwsRestrictionType + */ + public function setIsGreaterThan(\Ews\StructType\EwsIsGreaterThanType $isGreaterThan = null) + { + $this->IsGreaterThan = $isGreaterThan; + return $this; + } + /** + * Get IsGreaterThanOrEqualTo value + * @return \Ews\StructType\EwsIsGreaterThanOrEqualToType|null + */ + public function getIsGreaterThanOrEqualTo() + { + return $this->IsGreaterThanOrEqualTo; + } + /** + * Set IsGreaterThanOrEqualTo value + * @param \Ews\StructType\EwsIsGreaterThanOrEqualToType $isGreaterThanOrEqualTo + * @return \Ews\StructType\EwsRestrictionType + */ + public function setIsGreaterThanOrEqualTo(\Ews\StructType\EwsIsGreaterThanOrEqualToType $isGreaterThanOrEqualTo = null) + { + $this->IsGreaterThanOrEqualTo = $isGreaterThanOrEqualTo; + return $this; + } + /** + * Get IsLessThan value + * @return \Ews\StructType\EwsIsLessThanType|null + */ + public function getIsLessThan() + { + return $this->IsLessThan; + } + /** + * Set IsLessThan value + * @param \Ews\StructType\EwsIsLessThanType $isLessThan + * @return \Ews\StructType\EwsRestrictionType + */ + public function setIsLessThan(\Ews\StructType\EwsIsLessThanType $isLessThan = null) + { + $this->IsLessThan = $isLessThan; + return $this; + } + /** + * Get IsLessThanOrEqualTo value + * @return \Ews\StructType\EwsIsLessThanOrEqualToType|null + */ + public function getIsLessThanOrEqualTo() + { + return $this->IsLessThanOrEqualTo; + } + /** + * Set IsLessThanOrEqualTo value + * @param \Ews\StructType\EwsIsLessThanOrEqualToType $isLessThanOrEqualTo + * @return \Ews\StructType\EwsRestrictionType + */ + public function setIsLessThanOrEqualTo(\Ews\StructType\EwsIsLessThanOrEqualToType $isLessThanOrEqualTo = null) + { + $this->IsLessThanOrEqualTo = $isLessThanOrEqualTo; + return $this; + } + /** + * Get Contains value + * @return \Ews\StructType\EwsContainsExpressionType|null + */ + public function getContains() + { + return $this->Contains; + } + /** + * Set Contains value + * @param \Ews\StructType\EwsContainsExpressionType $contains + * @return \Ews\StructType\EwsRestrictionType + */ + public function setContains(\Ews\StructType\EwsContainsExpressionType $contains = null) + { + $this->Contains = $contains; + return $this; + } + /** + * Get Not value + * @return \Ews\StructType\EwsNotType|null + */ + public function getNot() + { + return $this->Not; + } + /** + * Set Not value + * @param \Ews\StructType\EwsNotType $not + * @return \Ews\StructType\EwsRestrictionType + */ + public function setNot(\Ews\StructType\EwsNotType $not = null) + { + $this->Not = $not; + return $this; + } + /** + * Get And value + * @return \Ews\StructType\EwsAndType|null + */ + public function getAnd() + { + return $this->And; + } + /** + * Set And value + * @param \Ews\StructType\EwsAndType $and + * @return \Ews\StructType\EwsRestrictionType + */ + public function setAnd(\Ews\StructType\EwsAndType $and = null) + { + $this->And = $and; + return $this; } /** - * Get SearchExpression value - * @return \Ews\StructType\EwsSearchExpressionType|null + * Get Or value + * @return \Ews\StructType\EwsOrType|null */ - public function getSearchExpression() + public function getOr() { - return $this->SearchExpression; + return $this->Or; } /** - * Set SearchExpression value - * @param \Ews\StructType\EwsSearchExpressionType $searchExpression + * Set Or value + * @param \Ews\StructType\EwsOrType $or * @return \Ews\StructType\EwsRestrictionType */ - public function setSearchExpression(\Ews\StructType\EwsSearchExpressionType $searchExpression = null) + public function setOr(\Ews\StructType\EwsOrType $or = null) { - $this->SearchExpression = $searchExpression; + $this->Or = $or; return $this; } /** diff --git a/src/StructType/EwsTwoOperandExpressionType.php b/src/StructType/EwsTwoOperandExpressionType.php index 19c46e6..f534a13 100644 --- a/src/StructType/EwsTwoOperandExpressionType.php +++ b/src/StructType/EwsTwoOperandExpressionType.php @@ -12,65 +12,115 @@ */ abstract class EwsTwoOperandExpressionType extends EwsSearchExpressionType { - /** - * The Path - * Meta informations extracted from the WSDL - * - ref: t:Path - * @var \Ews\StructType\EwsBasePathToElementType - */ - public $Path; /** * The FieldURIOrConstant * @var \Ews\StructType\EwsFieldURIOrConstantType */ public $FieldURIOrConstant; + /** + * The FieldURI + * @var \Ews\StructType\EwsPathToUnindexedFieldType + */ + public $FieldURI; + /** + * The IndexedFieldURI + * @var \Ews\StructType\EwsPathToIndexedFieldType + */ + public $IndexedFieldURI; + /** + * The ExtendedFieldURI + * @var \Ews\StructType\EwsPathToExtendedFieldType + */ + public $ExtendedFieldURI; /** * Constructor method for TwoOperandExpressionType - * @uses EwsTwoOperandExpressionType::setPath() * @uses EwsTwoOperandExpressionType::setFieldURIOrConstant() - * @param \Ews\StructType\EwsBasePathToElementType $path + * @uses EwsTwoOperandExpressionType::setFieldURI() + * @uses EwsTwoOperandExpressionType::setIndexedFieldURI() + * @uses EwsTwoOperandExpressionType::setExtendedFieldURI() * @param \Ews\StructType\EwsFieldURIOrConstantType $fieldURIOrConstant + * @param \Ews\StructType\EwsPathToUnindexedFieldType $fieldURI + * @param \Ews\StructType\EwsPathToIndexedFieldType $indexedFieldURI + * @param \Ews\StructType\EwsPathToExtendedFieldType $extendedFieldURI */ - public function __construct(\Ews\StructType\EwsBasePathToElementType $path = null, \Ews\StructType\EwsFieldURIOrConstantType $fieldURIOrConstant = null) + public function __construct(\Ews\StructType\EwsFieldURIOrConstantType $fieldURIOrConstant = null, \Ews\StructType\EwsPathToUnindexedFieldType $fieldURI = null, \Ews\StructType\EwsPathToIndexedFieldType $indexedFieldURI = null, \Ews\StructType\EwsPathToExtendedFieldType $extendedFieldURI = null) { $this - ->setPath($path) - ->setFieldURIOrConstant($fieldURIOrConstant); + ->setFieldURIOrConstant($fieldURIOrConstant) + ->setFieldURI($fieldURI) + ->setIndexedFieldURI($indexedFieldURI) + ->setExtendedFieldURI($extendedFieldURI); } /** - * Get Path value - * @return \Ews\StructType\EwsBasePathToElementType|null + * Get FieldURIOrConstant value + * @return \Ews\StructType\EwsFieldURIOrConstantType|null */ - public function getPath() + public function getFieldURIOrConstant() { - return $this->Path; + return $this->FieldURIOrConstant; } /** - * Set Path value - * @param \Ews\StructType\EwsBasePathToElementType $path + * Set FieldURIOrConstant value + * @param \Ews\StructType\EwsFieldURIOrConstantType $fieldURIOrConstant * @return \Ews\StructType\EwsTwoOperandExpressionType */ - public function setPath(\Ews\StructType\EwsBasePathToElementType $path = null) + public function setFieldURIOrConstant(\Ews\StructType\EwsFieldURIOrConstantType $fieldURIOrConstant = null) { - $this->Path = $path; + $this->FieldURIOrConstant = $fieldURIOrConstant; return $this; } /** - * Get FieldURIOrConstant value - * @return \Ews\StructType\EwsFieldURIOrConstantType|null + * Get FieldURI value + * @return \Ews\StructType\EwsPathToUnindexedFieldType|null */ - public function getFieldURIOrConstant() + public function getFieldURI() { - return $this->FieldURIOrConstant; + return $this->FieldURI; } /** - * Set FieldURIOrConstant value - * @param \Ews\StructType\EwsFieldURIOrConstantType $fieldURIOrConstant + * Set FieldURI value + * @param \Ews\StructType\EwsPathToUnindexedFieldType $fieldURI * @return \Ews\StructType\EwsTwoOperandExpressionType */ - public function setFieldURIOrConstant(\Ews\StructType\EwsFieldURIOrConstantType $fieldURIOrConstant = null) + public function setFieldURI(\Ews\StructType\EwsPathToUnindexedFieldType $fieldURI = null) { - $this->FieldURIOrConstant = $fieldURIOrConstant; + $this->FieldURI = $fieldURI; + return $this; + } + /** + * Get IndexedFieldURI value + * @return \Ews\StructType\EwsPathToIndexedFieldType|null + */ + public function getIndexedFieldURI() + { + return $this->IndexedFieldURI; + } + /** + * Set IndexedFieldURI value + * @param \Ews\StructType\EwsPathToIndexedFieldType $indexedFieldURI + * @return \Ews\StructType\EwsTwoOperandExpressionType + */ + public function setIndexedFieldURI(\Ews\StructType\EwsPathToIndexedFieldType $indexedFieldURI = null) + { + $this->IndexedFieldURI = $indexedFieldURI; + return $this; + } + /** + * Get ExtendedFieldURI value + * @return \Ews\StructType\EwsPathToExtendedFieldType|null + */ + public function getExtendedFieldURI() + { + return $this->ExtendedFieldURI; + } + /** + * Set ExtendedFieldURI value + * @param \Ews\StructType\EwsPathToExtendedFieldType $extendedFieldURI + * @return \Ews\StructType\EwsTwoOperandExpressionType + */ + public function setExtendedFieldURI(\Ews\StructType\EwsPathToExtendedFieldType $extendedFieldURI = null) + { + $this->ExtendedFieldURI = $extendedFieldURI; return $this; } /** From ea2d65b09745066b83f823a2a4d93671a3c8edc1 Mon Sep 17 00:00:00 2001 From: Mikael DELSOL Date: Tue, 21 Mar 2017 00:08:45 +0100 Subject: [PATCH 21/31] add sample to retrieve unread inbox messages --- samples/inbox/FindUnreadItems.php | 112 ++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 samples/inbox/FindUnreadItems.php diff --git a/samples/inbox/FindUnreadItems.php b/samples/inbox/FindUnreadItems.php new file mode 100644 index 0000000..d888541 --- /dev/null +++ b/samples/inbox/FindUnreadItems.php @@ -0,0 +1,112 @@ + __DIR__ . '/../wsdl/services.updated.wsdl', + AbstractSoapClientBase::WSDL_CLASSMAP => EwsClassMap::get(), + AbstractSoapClientBase::WSDL_LOGIN => EWS_WS_LOGIN, + AbstractSoapClientBase::WSDL_PASSWORD => EWS_WS_PASSWORD, + AbstractSoapClientBase::WSDL_CACHE_WSDL => WSDL_CACHE_NONE, +); + +/** + * Instanciation of the ServiceType get that gather all the operations beginnig with "get". + */ +$find = new \Ews\ServiceType\EwsFind($options); +/** + * Configure the SoapHeader, each header's method begins with "setSoapHeader". + */ +$find->setSoapHeaderRequestServerVersion(new EwsRequestServerVersion(EwsExchangeVersionType::VALUE_EXCHANGE_2013_SP_1)); +/** + * Send the request + */ +$itemType = new EwsFindItemType(); +$itemShape = new EwsItemResponseShapeType(EwsDefaultShapeNamesType::VALUE_ALL_PROPERTIES); +$isEqualTo = new EwsIsEqualToType(); +$isEqualTo + ->setFieldURIOrConstant(new EwsFieldURIOrConstantType(new EwsConstantValueType('0'))) + ->setFieldURI(new EwsPathToUnindexedFieldType(EwsUnindexedFieldURIType::VALUE_MESSAGE_IS_READ)); +$restriction = new EwsRestrictionType(); +$restriction->setIsEqualTo($isEqualTo); +$itemType + ->setItemShape($itemShape) + ->setParentFolderIds(new EwsNonEmptyArrayOfBaseFolderIdsType(null, new EwsDistinguishedFolderIdType(EwsDistinguishedFolderIdNameType::VALUE_INBOX))) + ->setTraversal(EwsItemQueryTraversalType::VALUE_SHALLOW) + ->setRestriction($restriction); +$result = $find->FindItem($itemType); + +/** + * Debug informations provided by the utility methods + */ +if (false) { + echo 'XML Request: ' . $find->getLastRequest() . "\r\n"; + echo 'Headers Request: ' . $find->getLastRequestHeaders() . "\r\n"; + echo 'XML Response: ' . $find->getLastResponse() . "\r\n"; + echo 'Headers Response: ' . $find->getLastResponseHeaders() . "\r\n"; +} + +if ($result !== false) { + /** + * Display the Inbox items if there is at least one: + * + * Message from "{name} <{email}>" with subject "{subject}" sent at "2017-02-03T20:51:20Z" + * Message from "{name} <{email}>" with subject "{subject}" sent at "2017-02-02T17:48:25Z" + * ... etc + */ + foreach($result->getResponseMessages()->getFindItemResponseMessage() as $message) { + $messages = $message->getRootFolder()->getItems()->getMessage(); + if (is_array($messages)) { + foreach($messages as $item) { + echo PHP_EOL . sprintf('Message from "%s <%s>" with subject "%s" sent at "%s"', + $item->getFrom()->getMailbox()->getName(), + $item->getFrom()->getMailbox()->getEmailAddress(), + $item->getSubject(), + $item->getDateTimeSent()); + } + } else { + echo PHP_EOL . 'No message found'; + } + echo PHP_EOL; + } +} else { + /** + * In this case, we get the \SoapFault object + */ + print_r($find->getLastErrorForMethod('\Ews\ServiceType\EwsFind::FindItem')); +} \ No newline at end of file From 8fe618e2828669742950f9a8543ae119f1ff1a48 Mon Sep 17 00:00:00 2001 From: Mikael DELSOL Date: Wed, 22 Mar 2017 22:56:55 +0100 Subject: [PATCH 22/31] update readme in order to add link to find unread inbox items sample script --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0e79f82..3e8a2de 100755 --- a/README.md +++ b/README.md @@ -44,6 +44,7 @@ Sample scripts are available under the [samples](samples) folder: - [GetServerTimeZones](samples/GetServerTimeZones.php) - [Inbox](samples/inbox) - [FindItems](samples/inbox/FindItems.php) + - [FindUnreadItems](samples/inbox/FindUnreadItems.php) - [GetItem](samples/inbox/GetItem.php) - [Contact](samples/contact) - [FindItems](samples/contact/FindItems.php) From 58a320f89bdce90493cbed2c3bb3887fa2707c82 Mon Sep 17 00:00:00 2001 From: Mikael DELSOL Date: Wed, 22 Mar 2017 23:23:13 +0100 Subject: [PATCH 23/31] add sample in order to create a task item --- README.md | 1 + samples/task/CreateItem.php | 92 +++++++++++++++++++++++++++++++++++++ 2 files changed, 93 insertions(+) create mode 100644 samples/task/CreateItem.php diff --git a/README.md b/README.md index 3e8a2de..1ddcdf5 100755 --- a/README.md +++ b/README.md @@ -53,6 +53,7 @@ Sample scripts are available under the [samples](samples) folder: - [FindItems](samples/calendar/FindItems.php) - [GetItem](samples/calendar/GetItem.php) - [Task](samples/task) + - [CreateItem](samples/task/CreateItem.php) - [FindItems](samples/task/FindItems.php) - [GetItem](samples/task/GetItem.php) diff --git a/samples/task/CreateItem.php b/samples/task/CreateItem.php new file mode 100644 index 0000000..f83b07f --- /dev/null +++ b/samples/task/CreateItem.php @@ -0,0 +1,92 @@ + __DIR__ . '/../wsdl/services.wsdl', + AbstractSoapClientBase::WSDL_CLASSMAP => EwsClassMap::get(), + AbstractSoapClientBase::WSDL_LOGIN => EWS_WS_LOGIN, + AbstractSoapClientBase::WSDL_PASSWORD => EWS_WS_PASSWORD +); +/** + * Instanciation of the ServiceType get that gather all the operations beginnig with "get". + */ +$create = new \Ews\ServiceType\EwsCreate($options); +/** + * Configure the SoapHeader, each header's method begins with "setSoapHeader". + */ +$create->setSoapHeaderRequestServerVersion(new EwsRequestServerVersion(EwsExchangeVersionType::VALUE_EXCHANGE_2013_SP_1)); +/** + * Send the request, you can customize the request by modifiying the new \Ews\StructType\EwsGetServerTimeZonesType() instance + */ +$items = new EwsNonEmptyArrayOfAllItemsType(); +$task = new EwsTaskType(); +$dueDate = new \DateTime('today + 5 day'); +$task->setDueDate($dueDate->format('Y-m-d\TH:i:s\Z')) + ->setSubject('Sample task created with EWS') + ->setReminderDueBy($dueDate->sub(new \DateInterval('PT1H')) + ->format('Y-m-d\TH:i:s\Z')) + ->setReminderIsSet(true); +$items->setTask($task); +$itemType = new EwsCreateItemType(new EwsTargetFolderIdType(null, new EwsDistinguishedFolderIdType(EwsDistinguishedFolderIdNameType::VALUE_TASKS)), $items); +$result = $create->CreateItem($itemType); +/** + * Debug informations provided by the utility methods + */ +if (true) { + echo 'XML Request: ' . $create->getLastRequest() . "\r\n"; + echo 'Headers Request: ' . $create->getLastRequestHeaders() . "\r\n"; + echo 'XML Response: ' . $create->getLastResponse() . "\r\n"; + echo 'Headers Response: ' . $create->getLastResponseHeaders() . "\r\n"; +} +/** + * Sample call for CreateItem operation/method + */ +if ($result !== false) { + /** + * Display the message + */ + foreach ($result->getResponseMessages()->getCreateItemResponseMessage() as $message) { + $responseCode = $message->getResponseCode(); + echo PHP_EOL . sprintf('Response code: %s', $responseCode); + $itemsCreated = $message->getItems()->getTask(); + if (is_array($itemsCreated)) { + foreach ($itemsCreated as $itemCreated) { + echo PHP_EOL . sprintf('Task created with id %s', $itemCreated->getItemId()->getId()); + } + } else { + echo PHP_EOL . 'No message found'; + } + echo PHP_EOL; + } +} else { + /** + * In this case, we get the \SoapFault object + */ + print_r($create->getLastErrorForMethod('\Ews\ServiceType\EwsCreate::CreateItem')); +} \ No newline at end of file From 80cab09c4cbaf2824748ad3202d09ee758ffc479 Mon Sep 17 00:00:00 2001 From: Mikael DELSOL Date: Wed, 22 Mar 2017 23:32:11 +0100 Subject: [PATCH 24/31] add task description --- samples/task/CreateItem.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/samples/task/CreateItem.php b/samples/task/CreateItem.php index f83b07f..ee17829 100644 --- a/samples/task/CreateItem.php +++ b/samples/task/CreateItem.php @@ -16,6 +16,7 @@ use Ews\StructType\EwsNonEmptyArrayOfAllItemsType; use Ews\StructType\EwsTaskType; use Ews\EwsClassMap; +use Ews\StructType\EwsBodyType; /** * Your Office 365 login, like {id}@{id}.onmicrosoft.com */ @@ -48,6 +49,7 @@ $task = new EwsTaskType(); $dueDate = new \DateTime('today + 5 day'); $task->setDueDate($dueDate->format('Y-m-d\TH:i:s\Z')) + ->setBody(new EwsBodyType(EwsBodyTypeType::VALUE_TEXT, 'This task is very important, please do it as soon as possible')) ->setSubject('Sample task created with EWS') ->setReminderDueBy($dueDate->sub(new \DateInterval('PT1H')) ->format('Y-m-d\TH:i:s\Z')) From d17b86f8428f7ab142d18c38b3039d717f8f39f1 Mon Sep 17 00:00:00 2001 From: Mikael DELSOL Date: Wed, 22 Mar 2017 23:44:51 +0100 Subject: [PATCH 25/31] fix typo --- substitutionGroup.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/substitutionGroup.php b/substitutionGroup.php index 626c065..9e51a8c 100644 --- a/substitutionGroup.php +++ b/substitutionGroup.php @@ -6,8 +6,8 @@ * Then run: php substitutionGroup.php * Then regenerate the package: ./generate.sh * - * This script show the usage of the classes contained by the packagegenerator project which are very useful. - * In addition, it shows that we can pretty easeily manipulate an update any schema. + * This script shows the usage of the very useful classes contained by the PackageGenerator project. + * In addition, it shows that we can easily manipulate and update any schema. */ require_once 'vendor/autoload.php'; From 6ca244093ae6ce7e1f8caf0d34714a6325dea634 Mon Sep 17 00:00:00 2001 From: Mikael DELSOL Date: Wed, 22 Mar 2017 23:45:06 +0100 Subject: [PATCH 26/31] fix type hint thanks to PackageGenerator fix See https://github.com/WsdlToPhp/PackageGenerator/issues/76 --- src/StructType/EwsReplyBody.php | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/StructType/EwsReplyBody.php b/src/StructType/EwsReplyBody.php index 9807def..b30e5a3 100644 --- a/src/StructType/EwsReplyBody.php +++ b/src/StructType/EwsReplyBody.php @@ -25,7 +25,7 @@ class EwsReplyBody extends AbstractStructBase * Meta informations extracted from the WSDL * - ref: xml:lang * - use: optional - * @var UNKNOWN + * @var string */ public $lang; /** @@ -33,9 +33,9 @@ class EwsReplyBody extends AbstractStructBase * @uses EwsReplyBody::setMessage() * @uses EwsReplyBody::setLang() * @param string $message - * @param UNKNOWN $lang + * @param string $lang */ - public function __construct($message = null, UNKNOWN $lang = null) + public function __construct($message = null, $lang = null) { $this ->setMessage($message) @@ -65,7 +65,7 @@ public function setMessage($message = null) } /** * Get lang value - * @return UNKNOWN|null + * @return string|null */ public function getLang() { @@ -73,11 +73,15 @@ public function getLang() } /** * Set lang value - * @param UNKNOWN $lang + * @param string $lang * @return \Ews\StructType\EwsReplyBody */ - public function setLang(UNKNOWN $lang = null) + public function setLang($lang = null) { + // validation for constraint: string + if (!is_null($lang) && !is_string($lang)) { + throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($lang)), __LINE__); + } $this->lang = $lang; return $this; } From da2e0a59498dec6bdee292166652dca11b75b164 Mon Sep 17 00:00:00 2001 From: Mikael DELSOL Date: Wed, 22 Mar 2017 23:46:41 +0100 Subject: [PATCH 27/31] fix class thanks to recent PackageGenerator fix See https://github.com/WsdlToPhp/PackageGenerator/issues/77 --- src/ArrayType/EwsArrayOfSenderAddInsType.php | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/ArrayType/EwsArrayOfSenderAddInsType.php b/src/ArrayType/EwsArrayOfSenderAddInsType.php index ab852fc..af517d6 100644 --- a/src/ArrayType/EwsArrayOfSenderAddInsType.php +++ b/src/ArrayType/EwsArrayOfSenderAddInsType.php @@ -14,6 +14,10 @@ class EwsArrayOfSenderAddInsType extends AbstractStructArrayBase { /** * The Microsoft_OutlookServices_SenderApp + * Meta informations extracted from the WSDL + * - maxOccurs: unbounded + * - minOccurs: 0 + * @var \Ews\StructType\EwsSenderAddInEntityType[] */ public $Microsoft_OutlookServices_SenderApp; /** @@ -27,16 +31,17 @@ public function __construct(array $microsoft_OutlookServices_SenderApp = array() ->setMicrosoft_OutlookServices_SenderApp($microsoft_OutlookServices_SenderApp); } /** - * Get microsoft_OutlookServices_SenderApp value - * @return microsoft_OutlookServices_SenderApp + * Get Microsoft_OutlookServices_SenderApp value + * @return \Ews\StructType\EwsSenderAddInEntityType[]|null */ public function getMicrosoft_OutlookServices_SenderApp() { return $this->{'Microsoft.OutlookServices.SenderApp'}; } /** - * Set microsoft_OutlookServices_SenderApp value - * @param microsoft_OutlookServices_SenderApp $microsoft_OutlookServices_SenderApp + * Set Microsoft_OutlookServices_SenderApp value + * @throws \InvalidArgumentException + * @param \Ews\StructType\EwsSenderAddInEntityType[] $microsoft_OutlookServices_SenderApp * @return \Ews\ArrayType\EwsArrayOfSenderAddInsType */ public function setMicrosoft_OutlookServices_SenderApp(array $microsoft_OutlookServices_SenderApp = array()) From 4d1a1516e7c5df7488aed4e79d5ae28efe756cbc Mon Sep 17 00:00:00 2001 From: Mikael DELSOL Date: Thu, 23 Mar 2017 09:36:28 +0100 Subject: [PATCH 28/31] improve documentation and samples --- README.md | 12 ++++++++++++ samples/GetServerTimeZones.php | 2 +- samples/calendar/FindItems.php | 5 +++-- samples/calendar/GetItem.php | 5 +++-- samples/contact/FindItems.php | 5 +++-- samples/contact/GetItem.php | 5 +++-- samples/inbox/FindItems.php | 5 +++-- samples/inbox/FindUnreadItems.php | 3 ++- samples/inbox/GetItem.php | 5 +++-- samples/task/CreateItem.php | 2 +- samples/task/FindItems.php | 5 +++-- samples/task/GetItem.php | 5 +++-- 12 files changed, 40 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 1ddcdf5..28b7f2c 100755 --- a/README.md +++ b/README.md @@ -38,6 +38,18 @@ $ composer update ## Learn from the tutorial Start looking into the auto-generated [tutorial.php](tutorial.php) file. This file contains the starting code to use this package. In addition it contains all the operations provided by the Exchange Web Services and the way to call them. +## Determine your Office 365 endpoint action location +Determining the Office 365 endpoint action location can be tricky so below is indicated 2 ways to do it. This location must be defined in the `setLocation` call into the sample files. +The default location has been defined so it might work fine with you too. If not, you should try determining it. If you don't understand, don't hesitate to contact me at contact@wsdltophp.com. + +### Manually from the endpoint itself +You should be able to get the endpoint action location from the services.wsdl by opening your browser and browsing to [outlook.office365.com/EWS/Exchange.asmx](https://outlook.office365.com/EWS/Exchange.asmx). +You must enter your Office 365 credentials then it should display a page where it indicates something such as `svcutil.exe https://**.outlook.com/EWS/Services.wsdl`. +This is in the `https://**.outlook.com/EWS/Services.wsdl` that you can find at the end the endpoint action location such as ``. + +### From your Office 365 account +Following this [Tech Blog article](http://blog.skysoft-is.com/?p=78), I simply used the endpoint location action indicated in the article as https://pod51036.outlook.com/ews/services.wsdl and it worked :). + ## Start from the samples Sample scripts are available under the [samples](samples) folder: diff --git a/samples/GetServerTimeZones.php b/samples/GetServerTimeZones.php index 90f2cca..82c58fe 100755 --- a/samples/GetServerTimeZones.php +++ b/samples/GetServerTimeZones.php @@ -14,7 +14,7 @@ use Ews\StructType\EwsGetServerTimeZonesType; /** - * Your Office 365 login, like {id}@{id}.onmicrosoft.com + * Your Office 365 login */ define('EWS_WS_LOGIN', ''); /** diff --git a/samples/calendar/FindItems.php b/samples/calendar/FindItems.php index 621137d..3063f16 100644 --- a/samples/calendar/FindItems.php +++ b/samples/calendar/FindItems.php @@ -20,7 +20,7 @@ use Ews\StructType\EwsRequestServerVersion; /** - * Your Office 365 login, like {id}@{id}.onmicrosoft.com + * Your Office 365 login */ define('EWS_WS_LOGIN', '***************************'); /** @@ -32,7 +32,7 @@ * Minimal options in order to instanciate the ServiceType named Get */ $options = array( - AbstractSoapClientBase::WSDL_URL => __DIR__ . '/../../wsdl/services.wsdl', + AbstractSoapClientBase::WSDL_URL => __DIR__ . '/../../wsdl/services.updated.wsdl', AbstractSoapClientBase::WSDL_CLASSMAP => EwsClassMap::get(), AbstractSoapClientBase::WSDL_LOGIN => EWS_WS_LOGIN, AbstractSoapClientBase::WSDL_PASSWORD => EWS_WS_PASSWORD, @@ -42,6 +42,7 @@ * Instanciation of the ServiceType get that gather all the operations beginnig with "get". */ $find = new \Ews\ServiceType\EwsFind($options); +$find->setLocation('https://pod51036.outlook.com/ews/Exchange.asmx'); /** * Configure the SoapHeader, each header's method begins with "setSoapHeader". */ diff --git a/samples/calendar/GetItem.php b/samples/calendar/GetItem.php index bae4460..854f81f 100644 --- a/samples/calendar/GetItem.php +++ b/samples/calendar/GetItem.php @@ -20,7 +20,7 @@ use Ews\StructType\EwsCalendarItemType; /** - * Your Office 365 login, like {id}@{id}.onmicrosoft.com + * Your Office 365 login */ define('EWS_WS_LOGIN', '***************************'); /** @@ -32,7 +32,7 @@ * Minimal options in order to instanciate the ServiceType named Get */ $options = array( - AbstractSoapClientBase::WSDL_URL => __DIR__ . '/../../wsdl/services.wsdl', + AbstractSoapClientBase::WSDL_URL => __DIR__ . '/../../wsdl/services.updated.wsdl', AbstractSoapClientBase::WSDL_CLASSMAP => EwsClassMap::get(), AbstractSoapClientBase::WSDL_LOGIN => EWS_WS_LOGIN, AbstractSoapClientBase::WSDL_PASSWORD => EWS_WS_PASSWORD, @@ -42,6 +42,7 @@ * Instanciation of the ServiceType get that gather all the operations beginnig with "get". */ $get = new \Ews\ServiceType\EwsGet($options); +$get->setLocation('https://pod51036.outlook.com/ews/Exchange.asmx'); /** * Configure the SoapHeader, each header's method begins with "setSoapHeader". */ diff --git a/samples/contact/FindItems.php b/samples/contact/FindItems.php index c99adfb..fe034d2 100644 --- a/samples/contact/FindItems.php +++ b/samples/contact/FindItems.php @@ -20,7 +20,7 @@ use Ews\StructType\EwsRequestServerVersion; /** - * Your Office 365 login, like {id}@{id}.onmicrosoft.com + * Your Office 365 login */ define('EWS_WS_LOGIN', '***************************'); /** @@ -32,7 +32,7 @@ * Minimal options in order to instanciate the ServiceType named Get */ $options = array( - AbstractSoapClientBase::WSDL_URL => __DIR__ . '/../../wsdl/services.wsdl', + AbstractSoapClientBase::WSDL_URL => __DIR__ . '/../../wsdl/services.updated.wsdl', AbstractSoapClientBase::WSDL_CLASSMAP => EwsClassMap::get(), AbstractSoapClientBase::WSDL_LOGIN => EWS_WS_LOGIN, AbstractSoapClientBase::WSDL_PASSWORD => EWS_WS_PASSWORD, @@ -42,6 +42,7 @@ * Instanciation of the ServiceType get that gather all the operations beginnig with "get". */ $find = new \Ews\ServiceType\EwsFind($options); +$find->setLocation('https://pod51036.outlook.com/ews/Exchange.asmx'); /** * Configure the SoapHeader, each header's method begins with "setSoapHeader". */ diff --git a/samples/contact/GetItem.php b/samples/contact/GetItem.php index ccabbff..ee8efcc 100644 --- a/samples/contact/GetItem.php +++ b/samples/contact/GetItem.php @@ -20,7 +20,7 @@ use Ews\StructType\EwsMessageType; /** - * Your Office 365 login, like {id}@{id}.onmicrosoft.com + * Your Office 365 login */ define('EWS_WS_LOGIN', '***************************'); /** @@ -32,7 +32,7 @@ * Minimal options in order to instanciate the ServiceType named Get */ $options = array( - AbstractSoapClientBase::WSDL_URL => __DIR__ . '/../../wsdl/services.wsdl', + AbstractSoapClientBase::WSDL_URL => __DIR__ . '/../../wsdl/services.updated.wsdl', AbstractSoapClientBase::WSDL_CLASSMAP => EwsClassMap::get(), AbstractSoapClientBase::WSDL_LOGIN => EWS_WS_LOGIN, AbstractSoapClientBase::WSDL_PASSWORD => EWS_WS_PASSWORD, @@ -42,6 +42,7 @@ * Instanciation of the ServiceType get that gather all the operations beginnig with "get". */ $get = new \Ews\ServiceType\EwsGet($options); +$get->setLocation('https://pod51036.outlook.com/ews/Exchange.asmx'); /** * Configure the SoapHeader, each header's method begins with "setSoapHeader". */ diff --git a/samples/inbox/FindItems.php b/samples/inbox/FindItems.php index f3aa234..a1372a5 100644 --- a/samples/inbox/FindItems.php +++ b/samples/inbox/FindItems.php @@ -20,7 +20,7 @@ use Ews\StructType\EwsRequestServerVersion; /** - * Your Office 365 login, like {id}@{id}.onmicrosoft.com + * Your Office 365 login */ define('EWS_WS_LOGIN', '***************************'); /** @@ -32,7 +32,7 @@ * Minimal options in order to instanciate the ServiceType named Get */ $options = array( - AbstractSoapClientBase::WSDL_URL => __DIR__ . '/../../wsdl/services.wsdl', + AbstractSoapClientBase::WSDL_URL => __DIR__ . '/../../wsdl/services.updated.wsdl', AbstractSoapClientBase::WSDL_CLASSMAP => EwsClassMap::get(), AbstractSoapClientBase::WSDL_LOGIN => EWS_WS_LOGIN, AbstractSoapClientBase::WSDL_PASSWORD => EWS_WS_PASSWORD, @@ -42,6 +42,7 @@ * Instanciation of the ServiceType get that gather all the operations beginnig with "get". */ $find = new \Ews\ServiceType\EwsFind($options); +$find->setLocation('https://pod51036.outlook.com/ews/Exchange.asmx'); /** * Configure the SoapHeader, each header's method begins with "setSoapHeader". */ diff --git a/samples/inbox/FindUnreadItems.php b/samples/inbox/FindUnreadItems.php index d888541..a90c3cd 100644 --- a/samples/inbox/FindUnreadItems.php +++ b/samples/inbox/FindUnreadItems.php @@ -26,7 +26,7 @@ use Ews\EnumType\EwsUnindexedFieldURIType; /** - * Your Office 365 login, like {id}@{id}.onmicrosoft.com + * Your Office 365 login */ define('EWS_WS_LOGIN', '***************************'); /** @@ -49,6 +49,7 @@ * Instanciation of the ServiceType get that gather all the operations beginnig with "get". */ $find = new \Ews\ServiceType\EwsFind($options); +$find->setLocation('https://pod51036.outlook.com/ews/Exchange.asmx'); /** * Configure the SoapHeader, each header's method begins with "setSoapHeader". */ diff --git a/samples/inbox/GetItem.php b/samples/inbox/GetItem.php index c699eaa..22eff70 100644 --- a/samples/inbox/GetItem.php +++ b/samples/inbox/GetItem.php @@ -20,7 +20,7 @@ use Ews\StructType\EwsContactItemType; /** - * Your Office 365 login, like {id}@{id}.onmicrosoft.com + * Your Office 365 login */ define('EWS_WS_LOGIN', '***************************'); /** @@ -32,7 +32,7 @@ * Minimal options in order to instanciate the ServiceType named Get */ $options = array( - AbstractSoapClientBase::WSDL_URL => __DIR__ . '/../../wsdl/services.wsdl', + AbstractSoapClientBase::WSDL_URL => __DIR__ . '/../../wsdl/services.updated.wsdl', AbstractSoapClientBase::WSDL_CLASSMAP => EwsClassMap::get(), AbstractSoapClientBase::WSDL_LOGIN => EWS_WS_LOGIN, AbstractSoapClientBase::WSDL_PASSWORD => EWS_WS_PASSWORD, @@ -42,6 +42,7 @@ * Instanciation of the ServiceType get that gather all the operations beginnig with "get". */ $get = new \Ews\ServiceType\EwsGet($options); +$get->setLocation('https://pod51036.outlook.com/ews/Exchange.asmx'); /** * Configure the SoapHeader, each header's method begins with "setSoapHeader". */ diff --git a/samples/task/CreateItem.php b/samples/task/CreateItem.php index ee17829..6732f46 100644 --- a/samples/task/CreateItem.php +++ b/samples/task/CreateItem.php @@ -18,7 +18,7 @@ use Ews\EwsClassMap; use Ews\StructType\EwsBodyType; /** - * Your Office 365 login, like {id}@{id}.onmicrosoft.com + * Your Office 365 login */ define('EWS_WS_LOGIN', '***************************'); /** diff --git a/samples/task/FindItems.php b/samples/task/FindItems.php index e8dca56..875d485 100644 --- a/samples/task/FindItems.php +++ b/samples/task/FindItems.php @@ -20,7 +20,7 @@ use Ews\StructType\EwsRequestServerVersion; /** - * Your Office 365 login, like {id}@{id}.onmicrosoft.com + * Your Office 365 login */ define('EWS_WS_LOGIN', '***************************'); /** @@ -32,7 +32,7 @@ * Minimal options in order to instanciate the ServiceType named Get */ $options = array( - AbstractSoapClientBase::WSDL_URL => __DIR__ . '/../../wsdl/services.wsdl', + AbstractSoapClientBase::WSDL_URL => __DIR__ . '/../../wsdl/services.updated.wsdl', AbstractSoapClientBase::WSDL_CLASSMAP => EwsClassMap::get(), AbstractSoapClientBase::WSDL_LOGIN => EWS_WS_LOGIN, AbstractSoapClientBase::WSDL_PASSWORD => EWS_WS_PASSWORD, @@ -42,6 +42,7 @@ * Instanciation of the ServiceType get that gather all the operations beginnig with "get". */ $find = new \Ews\ServiceType\EwsFind($options); +$find->setLocation('https://pod51036.outlook.com/ews/Exchange.asmx'); /** * Configure the SoapHeader, each header's method begins with "setSoapHeader". */ diff --git a/samples/task/GetItem.php b/samples/task/GetItem.php index 37d326c..baf35de 100644 --- a/samples/task/GetItem.php +++ b/samples/task/GetItem.php @@ -20,7 +20,7 @@ use Ews\StructType\EwsTaskType; /** - * Your Office 365 login, like {id}@{id}.onmicrosoft.com + * Your Office 365 login */ define('EWS_WS_LOGIN', '***************************'); /** @@ -32,7 +32,7 @@ * Minimal options in order to instanciate the ServiceType named Get */ $options = array( - AbstractSoapClientBase::WSDL_URL => __DIR__ . '/../../wsdl/services.wsdl', + AbstractSoapClientBase::WSDL_URL => __DIR__ . '/../../wsdl/services.updated.wsdl', AbstractSoapClientBase::WSDL_CLASSMAP => EwsClassMap::get(), AbstractSoapClientBase::WSDL_LOGIN => EWS_WS_LOGIN, AbstractSoapClientBase::WSDL_PASSWORD => EWS_WS_PASSWORD, @@ -42,6 +42,7 @@ * Instanciation of the ServiceType get that gather all the operations beginnig with "get". */ $get = new \Ews\ServiceType\EwsGet($options); +$get->setLocation('https://pod51036.outlook.com/ews/Exchange.asmx'); /** * Configure the SoapHeader, each header's method begins with "setSoapHeader". */ From 6f77d6a478d9457065f6bee475dcb737b3e11e57 Mon Sep 17 00:00:00 2001 From: Mikael DELSOL Date: Thu, 23 Mar 2017 09:41:52 +0100 Subject: [PATCH 29/31] update sample --- samples/task/CreateItem.php | 1 + 1 file changed, 1 insertion(+) diff --git a/samples/task/CreateItem.php b/samples/task/CreateItem.php index 6732f46..1e87c59 100644 --- a/samples/task/CreateItem.php +++ b/samples/task/CreateItem.php @@ -38,6 +38,7 @@ * Instanciation of the ServiceType get that gather all the operations beginnig with "get". */ $create = new \Ews\ServiceType\EwsCreate($options); +$create->setLocation('https://pod51036.outlook.com/ews/Exchange.asmx'); /** * Configure the SoapHeader, each header's method begins with "setSoapHeader". */ From 6a54f75e961cd3f8ffc20a07e6b925a0cfd397d4 Mon Sep 17 00:00:00 2001 From: Mikael DELSOL Date: Thu, 23 Mar 2017 09:51:29 +0100 Subject: [PATCH 30/31] add missing use statement --- samples/task/CreateItem.php | 1 + 1 file changed, 1 insertion(+) diff --git a/samples/task/CreateItem.php b/samples/task/CreateItem.php index 1e87c59..1d4e27d 100644 --- a/samples/task/CreateItem.php +++ b/samples/task/CreateItem.php @@ -17,6 +17,7 @@ use Ews\StructType\EwsTaskType; use Ews\EwsClassMap; use Ews\StructType\EwsBodyType; +use Ews\EnumType\EwsBodyTypeType; /** * Your Office 365 login */ From 7239144168f912b1d9c8741f0f22dc4c1264d7e5 Mon Sep 17 00:00:00 2001 From: Mikael DELSOL Date: Thu, 23 Mar 2017 22:53:16 +0100 Subject: [PATCH 31/31] update changelog --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 61f76f5..5c68815 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # CHANGELOG +## 1.0.0 +- Create update schema as substitutionGroup attribute is not handled by the native PHP SoapClient class +- Update generated classes thanks to PackageGenerator fixed issues +- Working samples have been added +- Implement a method into the SoapClient class in order to remove useless empty request tags + ## 0.0.8 - Minor readme update