@@ -42,8 +42,7 @@ def set_dict(self, auth_token_dict):
4242 auth_token_dict .get ("expires_at" )
4343 ).astimezone (datetime .timezone .utc )
4444 else :
45- self .expires_at = datetime .datetime .now (datetime .timezone .utc )
46- + datetime .timedelta (seconds = self .expires_in )
45+ self .expires_at = datetime .datetime .now (datetime .timezone .utc ) + datetime .timedelta (seconds = self .expires_in )
4746
4847 self .patient = auth_token_dict .get ("patient" )
4948 self .refresh_token = auth_token_dict .get ("refresh_token" )
@@ -57,16 +56,7 @@ def refresh_auth_token(bb, auth_token):
5756 "grant_type" : "refresh_token" ,
5857 "refresh_token" : auth_token .refresh_token ,
5958 }
60-
61- headers = SDK_HEADERS
62-
63- token_response = requests .post (
64- url = bb .auth_token_url ,
65- data = data ,
66- headers = headers ,
67- auth = (bb .client_id , bb .client_secret ),
68- )
69-
59+ token_response = _do_post (data , bb , (bb .client_id , bb .client_secret ))
7060 token_response .raise_for_status ()
7161 return AuthorizationToken (token_response .json ())
7262
@@ -129,14 +119,7 @@ def get_access_token_from_code(bb, auth_data, callback_code):
129119 "code_challenge" : auth_data ["code_challenge" ],
130120 }
131121
132- mp_encoder = MultipartEncoder (data )
133- headers = SDK_HEADERS
134- headers ["content-type" ] = mp_encoder .content_type
135- token_response = requests .post (
136- url = bb .auth_token_url ,
137- data = mp_encoder ,
138- headers = headers
139- )
122+ token_response = _do_post (data , bb , None )
140123 token_response .raise_for_status ()
141124 token_dict = token_response .json ()
142125 token_dict ["expires_at" ] = datetime .datetime .now (
@@ -157,3 +140,19 @@ def get_authorization_token(bb, auth_data, callback_code, callback_state):
157140 raise ValueError ("Provided callback state does not match." )
158141
159142 return AuthorizationToken (get_access_token_from_code (bb , auth_data , callback_code ))
143+
144+
145+ def _do_post (data , bb , auth ):
146+ mp_encoder = MultipartEncoder (data )
147+ headers = SDK_HEADERS
148+ headers ["content-type" ] = mp_encoder .content_type
149+ return requests .post (
150+ url = bb .auth_token_url ,
151+ data = mp_encoder ,
152+ headers = headers
153+ ) if not auth else requests .post (
154+ url = bb .auth_token_url ,
155+ data = mp_encoder ,
156+ headers = headers ,
157+ auth = auth
158+ )
0 commit comments