@@ -137,7 +137,7 @@ def _initialize_session(self):
137137 session_server = core .SessionServer .create (self ).value
138138 token = session_server .token .token
139139 expiry_time = self ._get_expiry_timestamp (session_server )
140- user_id = session_server .get_referenced_object ().id_
140+ user_id = session_server .get_referenced_user ().id_
141141
142142 self ._session_context = SessionContext (token , expiry_time , user_id )
143143
@@ -164,8 +164,16 @@ def _get_session_timeout_seconds(cls, session_server):
164164
165165 if session_server .user_company is not None :
166166 return session_server .user_company .session_timeout
167- else :
167+ elif session_server . user_person is not None :
168168 return session_server .user_person .session_timeout
169+ elif session_server .user_api_key is not None :
170+ return session_server \
171+ .user_api_key \
172+ .requested_by_user \
173+ .get_referenced_object () \
174+ .session_timeout
175+ else :
176+ raise BunqException ()
169177
170178 def ensure_session_active (self ) -> bool :
171179 """
@@ -433,6 +441,7 @@ def __init__(self, user_id):
433441 self ._user_id = user_id
434442 self ._user_person = None
435443 self ._user_company = None
444+ self ._user_api_key = None
436445 self ._primary_monetary_account = None
437446
438447 self ._set_user (self .__get_user_object ())
@@ -452,6 +461,9 @@ def _set_user(self, user):
452461 elif isinstance (user , endpoint .UserCompany ):
453462 self ._user_company = user
454463
464+ elif isinstance (user , endpoint .UserApiKey ):
465+ self ._user_api_key = user
466+
455467 else :
456468 raise BunqException (
457469 self ._ERROR_UNEXPECTED_USER_INSTANCE .format (user .__class__ ))
@@ -476,21 +488,36 @@ def is_only_user_person_set(self):
476488 :rtype: bool
477489 """
478490
479- return self ._user_person is not None and self ._user_company is None
491+ return self ._user_person is not None \
492+ and self ._user_company is None \
493+ and self ._user_api_key is None
480494
481495 def is_only_user_company_set (self ):
482496 """
483497 :rtype: bool
484498 """
485499
486- return self ._user_company is not None and self ._user_person is None
500+ return self ._user_company is not None \
501+ and self ._user_person is None \
502+ and self ._user_api_key is None
487503
488- def is_both_user_type_set (self ):
504+ def is_only_user_api_key_set (self ):
489505 """
490506 :rtype: bool
491507 """
492508
493- return self ._user_company is not None and self ._user_person is not None
509+ return self ._user_api_key is not None \
510+ and self ._user_company is None \
511+ and self ._user_person is None
512+
513+ def is_all_user_type_set (self ):
514+ """
515+ :rtype: bool
516+ """
517+
518+ return self ._user_company is not None \
519+ and self ._user_person is not None \
520+ and self ._user_api_key is not None
494521
495522 def refresh_user_context (self ):
496523 """
@@ -515,6 +542,14 @@ def user_person(self):
515542
516543 return self ._user_person
517544
545+ @property
546+ def user_api_key (self ):
547+ """
548+ :rtype: endpoint.UserApiKey
549+ """
550+
551+ return self ._user_api_key
552+
518553 @property
519554 def primary_monetary_account (self ):
520555 """
0 commit comments