Skip to content

Commit 5c5286e

Browse files
committed
convert requests to dictionary in batch request content
1 parent 5fdc6c5 commit 5c5286e

File tree

2 files changed

+13
-13
lines changed

2 files changed

+13
-13
lines changed

src/msgraph_core/requests/batch_request_content.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import uuid
2-
from typing import List, Dict, Union, Any, Optional
2+
from typing import List, Dict, Union, Optional
33

44
from kiota_abstractions.request_information import RequestInformation
55
from kiota_abstractions.serialization import Parsable, ParseNode
@@ -19,15 +19,18 @@ def __init__(self, requests: List[Union['BatchRequestItem', 'RequestInformation'
1919
"""
2020
Initializes a new instance of the BatchRequestContent class.
2121
"""
22-
self._requests: List[Union[BatchRequestItem, 'RequestInformation']] = requests or []
22+
self._requests: Dict[str, Union[BatchRequestItem, 'RequestInformation']] = {}
23+
2324
self.is_finalized = False
25+
for request in requests:
26+
self.add_request(request)
2427

2528
@property
2629
def requests(self) -> List:
2730
"""
2831
Gets the requests.
2932
"""
30-
return self._requests
33+
return list(self._requests.values())
3134

3235
@requests.setter
3336
def requests(self, requests: List[BatchRequestItem]) -> None:
@@ -52,8 +55,8 @@ def add_request(self, request: BatchRequestItem) -> None:
5255
if dependent_id not in [req.id for req in self.requests]:
5356
dependent_request = self._request_by_id(dependent_id)
5457
if dependent_request:
55-
self._requests.append(dependent_request)
56-
self._requests.append(request)
58+
self._requests[dependent_id] = dependent_request
59+
self._requests[request.id] = request
5760

5861
def add_request_information(self, request_information: RequestInformation) -> None:
5962
"""
@@ -83,7 +86,7 @@ def remove(self, request_id: str) -> None:
8386
if request_id in request.depends_on:
8487
request.depends_on.remove(request_id)
8588
if request_to_remove:
86-
self._requests.remove(request_to_remove)
89+
del self._requests[request_to_remove.id]
8790
else:
8891
raise ValueError(f"Request ID {request_id} not found in requests.")
8992

@@ -98,7 +101,7 @@ def finalize(self):
98101
Finalizes the batch request content.
99102
"""
100103
self.is_finalized = True
101-
return self._requests
104+
return list(self._requests.values())
102105

103106
def _request_by_id(self, request_id: str) -> Optional[BatchRequestItem]:
104107
"""
@@ -110,10 +113,7 @@ def _request_by_id(self, request_id: str) -> Optional[BatchRequestItem]:
110113
Returns:
111114
The request with the given ID, or None if not found.
112115
"""
113-
for req in self.requests:
114-
if req.id == request_id:
115-
return req
116-
return None
116+
return self._requests.get(request_id)
117117

118118
@staticmethod
119119
def create_from_discriminator_value(

tests/requests/test_batch_request_content.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@ def test_initialization(batch_request_content, batch_request_item1, batch_reques
5555
def test_requests_property(batch_request_content, batch_request_item1, batch_request_item2):
5656
new_request_item = batch_request_item1
5757
batch_request_content.requests = [batch_request_item1, batch_request_item2, new_request_item]
58-
assert len(batch_request_content.requests) == 5
59-
assert batch_request_content.requests[2] == new_request_item
58+
assert len(batch_request_content.requests) == 2
59+
assert batch_request_content.requests[0] == new_request_item
6060

6161

6262
def test_add_request(batch_request_content, batch_request_item1):

0 commit comments

Comments
 (0)