22from msgraphcore .middleware .request_context import RequestContext
33from typing import List , Optional
44
5- from requests import Session
6- from requests import PreparedRequest
7- from requests import Request
5+ from requests import Request , Session
6+
87
98from msgraphcore .client_factory import HTTPClientFactory
109from msgraphcore .middleware .abc_token_credential import TokenCredential
1514
1615def attach_context (func ):
1716 def wrapper (* args , ** kwargs ):
18- mw_control = dict ()
19- headers = kwargs .pop ('headers' , {})
20-
17+ middleware_control = dict ()
18+
2119 for option in supported_options :
22- op = kwargs .pop (option , None )
23-
24- if op :
25- mw_control . update ({ option : op })
26-
27- req_context = RequestContext (mw_control , headers )
20+ value = kwargs .pop (option , None )
21+ if value :
22+ middleware_control . update ({ option : value })
23+
24+ headers = kwargs . get ( 'headers' , {})
25+ req_context = RequestContext (middleware_control , headers )
2826
2927 request = func (* args , ** kwargs )
3028 request .context = req_context
@@ -79,7 +77,8 @@ def put(self, url, data=None, **kwargs):
7977 :param \*\*kwargs: Optional arguments that ``request`` takes.
8078 :rtype: requests.Response
8179 """
82- return self .graph_session .put (self ._graph_url (url ), data , ** kwargs )
80+ prepped_req = self .prepare_request ('PUT' , self ._graph_url (url ), ** kwargs )
81+ return self .graph_session .send (prepped_req )
8382
8483 def patch (self , url , data = None , ** kwargs ):
8584 r"""Sends a PATCH request. Returns :class:`Response` object.
@@ -89,15 +88,17 @@ def patch(self, url, data=None, **kwargs):
8988 :param \*\*kwargs: Optional arguments that ``request`` takes.
9089 :rtype: requests.Response
9190 """
92- return self .graph_session .patch (self ._graph_url (url ), data , ** kwargs )
91+ prepped_req = self .prepare_request ('PATCH' , self ._graph_url (url ), ** kwargs )
92+ return self .graph_session .send (prepped_req )
9393
9494 def delete (self , url , ** kwargs ):
9595 r"""Sends a DELETE request. Returns :class:`Response` object.
9696 :param url: URL for the new :class:`Request` object.
9797 :param \*\*kwargs: Optional arguments that ``request`` takes.
9898 :rtype: requests.Response
9999 """
100- return self .graph_session .delete (self ._graph_url (url ), ** kwargs )
100+ prepped_req = self .prepare_request ('DELETE' , self ._graph_url (url ), ** kwargs )
101+ return self .graph_session .send (prepped_req )
101102
102103 def _graph_url (self , url : str ) -> str :
103104 """Appends BASE_URL to user provided path
0 commit comments