Describe the bug
Trying to add batch request steps with custom request IDs so that I can track the responses, however the custom request ID is always overridden to a random uuid
Expected behavior
Should be able to specify a custom request ID as specified in the function doc strings and in samples.
How to reproduce
You can track this through:
msgraph_core/requests/batch_request_content.py
defadd_request_information(
self, request_information: RequestInformation, request_id: Optional[str] =None
) ->None:
""" Adds a request to the batch request content. Args: request_information (RequestInformation): The request information to add. request_id: Optional[str]: The request id to add. """request_id=request_idifrequest_idelsestr(uuid.uuid4())
self.add_request(request_id, BatchRequestItem(request_information))
When creating the BatchRequestItem (msgraph_core/requests/batch_request_item.py), we've not passed the request ID into the init, so a random one is assigned to the Item:
def__init__(
self,
request_information: Optional[RequestInformation] =None,
id: str="",
depends_on: Optional[list[Union[str, 'BatchRequestItem']]] = []
):
""" Initializes a new instance of the BatchRequestItem class. Args: request_information (RequestInformation): The request information. id (str, optional): The ID of the request item. Defaults to "". depends_on (Optional[list[Union[str, BatchRequestItem]], optional): The IDs of the requests that this request depends on. Defaults to None. """ifrequest_informationisNoneornotrequest_information.http_method:
raiseValueError("HTTP method cannot be Null/Empty")
self._id=idorstr(uuid4())The custom one is then only used if there isn't one already on the request, which is impossible here because of the initialisation of the item object:
defadd_request(self, request_id: Optional[str], request: BatchRequestItem) ->None:
""" Adds a request to the batch request content. Args: request_id (Optional[str]): The request id to add. request (BatchRequestItem): The request to add. """iflen(self.requests) >=BatchRequestContent.MAX_REQUESTS:
raiseRuntimeError(f"Maximum number of requests is {BatchRequestContent.MAX_REQUESTS}")
ifnotrequest.id:
request.id=request_idifrequest_idelsestr(uuid.uuid4())So it's impossible for you to set a custom request ID through the add_request_information function. Either we should pass the custom one into the initialisation of the Item, or the "add_request" function should be checking for whether we have a request_id not a request.id. Suspect it should be the latter otherwise the function signature makes no sense.
SDK Version
1.17.0 of the SDK, 1.20.0 of msgraph-core
Latest version known to work for scenario above?
No response
Known Workarounds
No response
Debug output
Click to expand log
```
</details>
### Configuration
_No response_
### Other information
_No response_
Describe the bug
Trying to add batch request steps with custom request IDs so that I can track the responses, however the custom request ID is always overridden to a random uuid
Expected behavior
Should be able to specify a custom request ID as specified in the function doc strings and in samples.
How to reproduce
You can track this through:
msgraph_core/requests/batch_request_content.py
When creating the BatchRequestItem (msgraph_core/requests/batch_request_item.py), we've not passed the request ID into the init, so a random one is assigned to the Item:
The custom one is then only used if there isn't one already on the request, which is impossible here because of the initialisation of the item object:
So it's impossible for you to set a custom request ID through the
add_request_informationfunction. Either we should pass the custom one into the initialisation of the Item, or the "add_request" function should be checking for whether we have arequest_idnot arequest.id. Suspect it should be the latter otherwise the function signature makes no sense.SDK Version
1.17.0 of the SDK, 1.20.0 of msgraph-core
Latest version known to work for scenario above?
No response
Known Workarounds
No response
Debug output
Click to expand log
```