Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def _get_payload(email):
# Builds a full Autodiscover XML request
payload = create_element('Autodiscover', attrs=dict(xmlns=REQUEST_NS))
request = create_element('Request')
add_xml_child(request, 'EMailAddress', email)
add_xml_child(request, 'AcceptableResponseSchema', RESPONSE_NS)
payload.append(request)
return xml_to_str(payload, encoding=DEFAULT_ENCODING, xml_declaration=True)
def get_mailbox_search_scope(mailbox_id):
mailbox_search_scope = create_element("t:MailboxSearchScope")
add_xml_child(mailbox_search_scope, "t:Mailbox", mailbox_id)
add_xml_child(mailbox_search_scope, "t:SearchScope", "All")
return mailbox_search_scope
def get_payload(self, search_filter, expand_group_membership):
payload = create_element('m:%s' % self.SERVICE_NAME)
if search_filter:
add_xml_child(payload, 'm:SearchFilter', search_filter)
if expand_group_membership is not None:
add_xml_child(payload, 'm:ExpandGroupMembership', 'true' if expand_group_membership else 'false')
return payload
def get_mailbox_search_scope(mailbox_id):
mailbox_search_scope = create_element("t:MailboxSearchScope")
add_xml_child(mailbox_search_scope, "t:Mailbox", mailbox_id)
add_xml_child(mailbox_search_scope, "t:SearchScope", "All")
return mailbox_search_scope
def to_xml(self, version):
if self.is_array_type():
values = create_element('t:Values')
for v in self.value:
if self.is_binary_type():
add_xml_child(values, 't:Value', base64.b64encode(v).decode('ascii'))
else:
add_xml_child(values, 't:Value', v)
return values
val = base64.b64encode(self.value).decode('ascii') if self.is_binary_type() else self.value
return set_xml_value(create_element('t:Value'), val, version=version)
def get_payload(self, query, mailboxes):
def get_mailbox_search_scope(mailbox_id):
mailbox_search_scope = create_element("t:MailboxSearchScope")
add_xml_child(mailbox_search_scope, "t:Mailbox", mailbox_id)
add_xml_child(mailbox_search_scope, "t:SearchScope", "All")
return mailbox_search_scope
mailbox_query_element = create_element("t:MailboxQuery")
add_xml_child(mailbox_query_element, "t:Query", query)
mailboxes_scopes = []
for mailbox in mailboxes:
mailboxes_scopes.append(get_mailbox_search_scope(mailbox))
add_xml_child(mailbox_query_element, "t:MailboxSearchScopes", mailboxes_scopes)
element = create_element('m:%s' % self.SERVICE_NAME)
add_xml_child(element, "m:SearchQueries", mailbox_query_element)
add_xml_child(element, "m:ResultType", "PreviewOnly")
return element
def get_payload(self, items, include_mime_content):
payload = create_element('m:%s' % self.SERVICE_NAME)
# TODO: Support additional properties of AttachmentShape. See
# https://msdn.microsoft.com/en-us/library/office/aa563727(v=exchg.150).aspx
if include_mime_content:
attachment_shape = create_element('m:AttachmentShape')
add_xml_child(attachment_shape, 't:IncludeMimeContent', 'true')
payload.append(attachment_shape)
attachment_ids = create_attachment_ids_element(items=items, version=self.account.version)
payload.append(attachment_ids)
return payload
def create_shape_element(tag, shape, additional_fields, version):
shape_elem = create_element(tag)
add_xml_child(shape_elem, 't:BaseShape', shape)
if additional_fields:
additional_properties = create_element('t:AdditionalProperties')
expanded_fields = chain(*(f.expand(version=version) for f in additional_fields))
set_xml_value(additional_properties, sorted(expanded_fields, key=lambda f: f.path), version=version)
shape_elem.append(additional_properties)
return shape_elem