@@ -64,10 +64,10 @@ def __str__(self):
6464 else :
6565 err_str = ""
6666 msg = f"response_code: { self .response_code } , { err_str } data: { self .data } "
67- if self .session_id :
68- msg += f", session_id: { self .session_id } "
69- if self .req_id :
70- msg += f", req_id: { self .req_id } "
67+ if self .get_session_id () :
68+ msg += f", session_id: { self .get_session_id () } "
69+ if self .get_req_id () :
70+ msg += f", req_id: { self .get_req_id () } "
7171 return msg
7272
7373 def __repr__ (self ):
@@ -76,6 +76,16 @@ def __repr__(self):
7676 def is_ok (self ):
7777 return self .response_code in [200 , 201 , 202 , 203 , 204 , 205 ]
7878
79+ def get_session_id (self ):
80+ if not hasattr (self , "session_id" ):
81+ self .session_id = None
82+ return self .session_id
83+
84+ def get_req_id (self ):
85+ if not hasattr (self , "req_id" ):
86+ self .req_id = None
87+ return self .req_id
88+
7989
8090def _user_visible_resp (resp : Union [Response , str , None ]) -> ApiResponse :
8191 """This function takes the essentials of a response and puts in into
@@ -159,12 +169,25 @@ def _send(self, to_send: Request, *, req_id: Optional[UUID] = None) -> ApiRespon
159169 if req_id is None :
160170 req_id = uuid4 ()
161171 to_send .headers ["efsp-request-id" ] = str (req_id )
162- to_send .headers ["efsp-session-id" ] = self .session_id
163- self .logger .info (
172+ to_send .headers ["efsp-session-id" ] = self .get_session_id ()
173+ self .get_logger () .info (
164174 f"Calling { to_send .method } on { to_send .url } " , extra = {"req-id" : str (req_id )}
165175 )
166176 return self ._call_proxy (self .proxy_client .prepare_request (to_send ))
167177
178+ def get_session_id (self ):
179+ if not hasattr (self , "session_id" ):
180+ # Migration from older interviews, to start passing observability headers
181+ self .session_id = str (uuid4 ())
182+ return self .session_id
183+
184+ def get_logger (self ):
185+ if not hasattr (self , "logger" ):
186+ self .logger = LoggerWithContext (
187+ logging .getLogger (), {"session_id" : self .get_session_id ()}
188+ )
189+ return self .logger
190+
168191 @staticmethod
169192 def verbose_logging (turn_on : bool ) -> None :
170193 if turn_on :
@@ -222,7 +245,7 @@ def authenticate_user(
222245
223246 if jurisdiction is None :
224247 jurisdiction = self .default_jurisdiction
225- self .logger .info (
248+ self .get_logger () .info (
226249 f"authenticating with jurisdiction: { jurisdiction } " ,
227250 extra = {"req-id" : str (req_id )},
228251 )
@@ -274,7 +297,7 @@ def register_user(
274297 If it's FIRM_ADMINISTRATOR or FIRM_ADMIN_NEW_MEMBER, you need a firm_name_or_id
275298 """
276299 req_id = uuid4 ()
277- self .logger .info ("Attempting to register user" , extra = {"req-id" : req_id })
300+ self .get_logger () .info ("Attempting to register user" , extra = {"req-id" : req_id })
278301 registration_type = registration_type .upper ()
279302 if "phone_number" in person :
280303 phone_number = person ["phone_number" ]
@@ -319,7 +342,7 @@ def is_valid_password(self, password: str) -> Optional[bool]:
319342 if results .data :
320343 password_regex = results .data .get ("regularexpression" , ".*" )
321344 else :
322- self .logger .warning (f"No password rules found: { results } " )
345+ self .get_logger () .warning (f"No password rules found: { results } " )
323346 password_regex = ".*"
324347
325348 try :
@@ -778,12 +801,12 @@ def reserve_court_date(
778801 range_after_str = range_after .isoformat ()
779802 else :
780803 range_after_str = range_after or ""
781- self .logger .debug (f"after: { range_after } " , extra = {"req-id" : req_id })
804+ self .get_logger () .debug (f"after: { range_after } " , extra = {"req-id" : req_id })
782805 if range_before is not None and not isinstance (range_before , str ):
783806 range_before_str = range_before .isoformat ()
784807 else :
785808 range_before_str = range_before or ""
786- self .logger .debug (f"before: { range_before } " , extra = {"req-id" : req_id })
809+ self .get_logger () .debug (f"before: { range_before } " , extra = {"req-id" : req_id })
787810 if estimated_duration is not None :
788811 estimated_duration = int (estimated_duration ) * 60 * 60
789812 req = Request (
0 commit comments