jamesiarmes / php-ews

PHP Exchange Web Services
http://jamesarmes.com/php-ews/
MIT License
567 stars 302 forks source link

Help Required: Changing Message FlagStatus #547

Closed justbaron closed 5 years ago

justbaron commented 5 years ago

Version (e.g. 1.0, dev-master): 1.0, dev-master PHP version: 7.3.1 Microsoft Exchange version: VERSION_2013_SP1

Is it possible to update/change the FlagStatus of a message/item either to

I know there is an UpdateItemType() class/method, but there doesn't seem to be many examples or documentation on how to alter specifics.

This is what I have so far..

    $ChangeRequest = new UpdateItemType();
    $ChangeRequest->ConflictResolution = ConflictResolutionType::ALWAYS_OVERWRITE;
    $ChangeRequest->MessageDisposition = MessageDispositionType::SAVE_ONLY;

    $Change = new ItemChangeType();
    $Change->ItemId = new ItemIdType();
    $Change->ItemId->Id = $item->id;
    $Change->ItemId->ChangeKey = $item->ChangeKey;

    $Flag->Flag = new FlagStatusType();
    $Flag->Flag->FlagStatus = "Flagged";        
    $Flag->Flag->StartDate = "2019-01-30T0:00-05:00";
    $Flag->Flag->DueDate = "2019-02-01T0:00-05:00";     

    $Change->Updates->FlagStatusType[] = $Flag;

    $ChangeRequest->ItemChanges[] = $Change;

    $ChangeResponse = $client->UpdateItem($ChangeRequest);

    $ChangeResponseMessages = $ChangeResponse->ResponseMessages->UpdateItemResponseMessage;
    foreach ($ChangeResponseMessages as $ChangeResponseMessage) {
        echo "<pre>".$ChangeResponseMessage->ResponseCode."</pre>";
    } 

Example response:

  jamesiarmes\PhpEws\Request\UpdateItemType::__set_state(array(
       'ConflictResolution' => 'AlwaysOverwrite',
       'ItemChanges' => 
      array (
        0 => 
        jamesiarmes\PhpEws\Type\ItemChangeType::__set_state(array(
           'ItemId' => 
          jamesiarmes\PhpEws\Type\ItemIdType::__set_state(array(
             'ChangeKey' => '[ChangeKey]',
             'Id' => '[ItemId]',
          )),
           'OccurrenceItemId' => NULL,
           'RecurringMasterItemId' => NULL,
           'Updates' => 
          (object) array(
             'FlagStatusType' => 
            array (
              0 => 
              (object) array(
                 'Flag' => 
                jamesiarmes\PhpEws\Enumeration\FlagStatusType::__set_state(array(
                   '_' => NULL,
                   'FlagStatus' => 'Flagged',
                   'StartDate' => '2019-01-30T0:00-05:00',
                   'DueDate' => '2019-02-01T0:00-05:00',
                )),
              ),
            ),
          ),
        )),
      ),
       'MessageDisposition' => 'SaveOnly',
       'SavedItemFolderId' => NULL,
       'SendMeetingInvitationsOrCancellations' => NULL,
       'SuppressReadReceipts' => NULL,
    ))
    NoError