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
86
97from msgraphcore .client_factory import HTTPClientFactory
108from msgraphcore .middleware .abc_token_credential import TokenCredential
1513
1614def attach_context (func ):
1715 def wrapper (* args , ** kwargs ):
18- mw_control = dict ()
19- headers = kwargs .pop ('headers' , {})
16+ middleware_control = dict ()
2017
2118 for option in supported_options :
22- mw_option = kwargs .pop (option , None )
19+ value = kwargs .pop (option , None )
20+ if value :
21+ middleware_control .update ({option : value })
2322
24- if mw_option :
25- mw_control .update ({option : mw_option })
26-
27- req_context = RequestContext (mw_control , headers )
23+ headers = kwargs .get ('headers' , {})
24+ req_context = RequestContext (middleware_control , headers )
2825
2926 request = func (* args , ** kwargs )
3027 request .context = req_context
@@ -79,7 +76,8 @@ def put(self, url, data=None, **kwargs):
7976 :param \*\*kwargs: Optional arguments that ``request`` takes.
8077 :rtype: requests.Response
8178 """
82- return self .graph_session .put (self ._graph_url (url ), data , ** kwargs )
79+ prepped_req = self .prepare_request ('PUT' , self ._graph_url (url ), ** kwargs )
80+ return self .graph_session .send (prepped_req )
8381
8482 def patch (self , url , data = None , ** kwargs ):
8583 r"""Sends a PATCH request. Returns :class:`Response` object.
@@ -89,15 +87,17 @@ def patch(self, url, data=None, **kwargs):
8987 :param \*\*kwargs: Optional arguments that ``request`` takes.
9088 :rtype: requests.Response
9189 """
92- return self .graph_session .patch (self ._graph_url (url ), data , ** kwargs )
90+ prepped_req = self .prepare_request ('PATCH' , self ._graph_url (url ), ** kwargs )
91+ return self .graph_session .send (prepped_req )
9392
9493 def delete (self , url , ** kwargs ):
9594 r"""Sends a DELETE request. Returns :class:`Response` object.
9695 :param url: URL for the new :class:`Request` object.
9796 :param \*\*kwargs: Optional arguments that ``request`` takes.
9897 :rtype: requests.Response
9998 """
100- return self .graph_session .delete (self ._graph_url (url ), ** kwargs )
99+ prepped_req = self .prepare_request ('DELETE' , self ._graph_url (url ), ** kwargs )
100+ return self .graph_session .send (prepped_req )
101101
102102 def _graph_url (self , url : str ) -> str :
103103 """Appends BASE_URL to user provided path
0 commit comments