-
Notifications
You must be signed in to change notification settings - Fork 25
Description
In the following example I try to run a batch request to get 3 folders for the same account.
Please try to indent and read the output of get_fault_message().
You'll notice that the request syntax is wrong!
The problem shows up adding 3 or more batch requests.
Script:
admin_token = auth.authenticate(
url,
admin_name,
admin_password,
admin_auth=True,
use_password=True
)
request = comm.gen_request(token=admin_token)
request.add_request(
'DelegateAuthRequest',
{
'account': {
'by': 'name',
'_content': 'user@domain.tld'
}
},
'urn:zimbraAdmin'
)
response = comm.send_request(request)
new_token = response.get_response()['DelegateAuthResponse']['authToken']['_content']
request = comm.gen_request(token=new_token, set_batch=True)
request_inbox_id = request.add_request(
'GetFolderRequest',
{
'folder': {'path': '/Inbox'},
},
'urn:zimbraMail'
)
request_sent_id = request.add_request(
'GetFolderRequest',
{
'folder': {'path': '/Sent'},
},
'urn:zimbraMail'
)
request_trash_id = request.add_request(
'GetFolderRequest',
{
'folder': {'path': '/Trash'},
},
'urn:zimbraMail'
)
response = comm.send_request(request)
print('request id(s):', request_inbox_id, request_sent_id, request_trash_id)
print(response.is_fault())
print(response.get_fault_code())
print(response.get_fault_message())Output:
request id(s): 1 2 3 True service.PARSE_ERROR parse error: expected character: { found:[: {"Header": {"context": {"_jsns": "urn:zimbra", "format": {"type": "js"}, "authToken": {"_content": "REMOVED"}}}, "Body": {"BatchRequest": {"_jsns": "urn:zimbra", "onerror": null, "GetFolderRequest": [[{"folder": {"path": "/Inbox"}, "_jsns": "urn:zimbraMail", "requestId": 1}, {"folder": {"path": "/Sent"}, "_jsns": "urn:zimbraMail", "requestId": 2}], {"folder": {"path": "/Trash"}, "_jsns": "urn:zimbraMail", "requestId": 3}]}}}
Is my code correct?
If so, could you please fix this issue?
Thank you.