@@ -36,12 +36,11 @@ class Init(object):
3636 def __init__ (
3737 self , service : str , security : Dict [str , Any ], secret : str ,
3838 request : Optional [Dict [str , Any ]] = None , action :Optional [str ] = None ) -> None :
39- # Using None as a default value will throw mypy typecheck issues. This should be addressed
4039 self .service = service
4140 self .security = security .copy ()
4241 self .secret = secret
4342 self .request = request
44- if hasattr (request , 'copy' ):
43+ if request is not None and hasattr (request , 'copy' ):
4544 self .request = request .copy ()
4645 self .action = action
4746
@@ -193,7 +192,7 @@ def set_service_options(self) -> None:
193192 elif self .service == 'assess' :
194193 self .sign_request_data = False
195194
196- if 'questionsApiActivity' in self .request :
195+ if self . request is not None and 'questionsApiActivity' in self .request :
197196 questionsApi = self .request ['questionsApiActivity' ]
198197
199198 if 'domain' in self .security :
@@ -223,14 +222,14 @@ def set_service_options(self) -> None:
223222 self .request ['questionsApiActivity' ].update (questionsApi )
224223
225224 elif self .service == 'items' or self .service == 'reports' :
226- if 'user_id' not in self .security and \
227- 'user_id' in self .request :
225+ if self .request is not None and ('user_id' not in self .security and 'user_id' in self .request ):
228226 self .security ['user_id' ] = self .request ['user_id' ]
229227
230228 elif self .service == 'events' :
231229 self .sign_request_data = False
232230 hashed_users = {}
233- for user in self .request .get ('users' , []):
231+ users = self .request .get ('users' , []) if self .request is not None else []
232+ for user in users :
234233 concat = "{}{}" .format (user , self .secret )
235234 hashed_users [user ] = hashlib .sha256 (concat .encode ('utf-8' )).hexdigest ()
236235
@@ -244,7 +243,7 @@ def hash_list(self, l: Iterable[Any]) -> str:
244243 return '$02$' + signature
245244
246245 def add_telemetry_data (self ) -> None :
247- if self .__telemetry_enabled :
246+ if self .request is not None and self . __telemetry_enabled :
248247 if 'meta' in self .request :
249248 self .request ['meta' ]['sdk' ] = self .get_sdk_meta ()
250249 else :
0 commit comments