Skip to content

Conversation

@gshutler
Copy link
Member

CalendarItem#update_item! did not support the full range of options available via the EwsBuilder#build_xml! method as :text was the only reserved attribute preserved and a nested structure was not supported at all.

This commit makes :sub_elements and :xmlns_attribute reserved too and ensures that any nested structures are also escaped as necessary.

CalendarItem#update_item! did not support the full range of options
available via the EwsBuilder#build_xml! method as :text was the only
reserved attribute preserved and a nested structure was not supported at
all.

This commit makes :sub_elements and :xmlns_attribute reserved too and
ensures that any nested structures are also escaped as necessary.
@gshutler
Copy link
Member Author

I think I have a %i{} in here, didn't realise tests ran against 1.9.3, will fix.

@GeorgeDewar
Copy link

Hi @gshutler, I've been trying to using update_item! to update attendees on a meeting. It looked like this PR might be adding the required support, but I still have not been able to get it to work with your code.

I'm calling it like:

new_attendee = [{:name=>{:text=>"General User"}},
                        {:email_address=>{:text=>"[email protected]"}},
                        {:routing_type=>{:text=>"SMTP"}},
                        {:mailbox_type=>{:text=>"Mailbox"}}]
@calendar_item.update_item!(
  updates: { required_attendees: new_attendee },
  send_meeting_invitations_or_cancellations: "SendToAllAndSaveCopy",
)

The Updates section of the request ends up looking like:

<t:Updates>
    <t:SetItemField>
      <t:FieldURI FieldURI="calendar:RequiredAttendees"/>
      <CalendarItem xmlns="http://schemas.microsoft.com/exchange/services/2006/types">
        <RequiredAttendees>[{"Name"=&gt;{:text=&gt;"General User"}}, {"EmailAddress"=&gt;{:text=&gt;"[email protected]"}}, {"RoutingType"=&gt;{:text=&gt;"SMTP"}}, {"MailboxType"=&gt;{:text=&gt;"Mailbox"}}]</RequiredAttendees>
      </CalendarItem>
    </t:SetItemField>
  </t:Updates>

Note the XML-encoded JSON, rather than the nested XML structure expected.

Would you have any tips? Thanks!

Base automatically changed from master to main February 3, 2021 02:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants