Skip to content

Commit 7b8b621

Browse files
Merge pull request #150 from bunq/feature/sdk_python#149_remove_get_user_object_call
feature/sdk_python#149 Remove get_user_object call directly after UserContext creation
2 parents 842f4cd + d74f691 commit 7b8b621

File tree

4 files changed

+20
-37
lines changed

4 files changed

+20
-37
lines changed

bunq/sdk/context/api_context.py

Lines changed: 5 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
from bunq.sdk.json import converter
1414
from bunq.sdk.model.core.payment_service_provider_credential_internal import PaymentServiceProviderCredentialInternal
1515
from bunq.sdk.model.generated import endpoint
16-
from bunq.sdk.model.generated.endpoint import UserCredentialPasswordIp, UserPaymentServiceProvider
16+
from bunq.sdk.model.generated.endpoint import UserCredentialPasswordIp
1717
from bunq.sdk.security import security
1818

1919
if typing.TYPE_CHECKING:
@@ -90,7 +90,7 @@ def create_for_psd2(cls,
9090
api_context._api_key = service_provider_credential.token_value
9191

9292
api_context.__register_device(description, all_permitted_ip)
93-
api_context.__initialize_session_for_psd2(service_provider_credential)
93+
api_context.__initialize_session()
9494

9595
return api_context
9696

@@ -104,8 +104,7 @@ def __initialize_installation(self) -> None:
104104
security.public_key_to_string(private_key_client.publickey())
105105
).value
106106
token = installation.token.token
107-
public_key_server_string = \
108-
installation.server_public_key.server_public_key
107+
public_key_server_string = installation.server_public_key.server_public_key
109108
public_key_server = RSA.import_key(public_key_server_string)
110109

111110
self._installation_context = InstallationContext(
@@ -117,7 +116,7 @@ def __initialize_installation(self) -> None:
117116
def __initialize_psd2_credential(self,
118117
certificate: str,
119118
private_key: str,
120-
all_chain_certificate: List[str], ) -> UserCredentialPasswordIp:
119+
all_chain_certificate: List[str]) -> UserCredentialPasswordIp:
121120
session_token = self.installation_context.token
122121
client_key_pair = self.installation_context.private_key_client
123122

@@ -149,22 +148,7 @@ def __initialize_session(self) -> None:
149148
from bunq.sdk.model.core.session_server import SessionServer
150149

151150
session_server = SessionServer.create(self).value
152-
token = session_server.token.token
153-
expiry_time = self._get_expiry_timestamp(session_server)
154-
user_id = session_server.get_referenced_user().id_
155-
156-
self._session_context = SessionContext(token, expiry_time, user_id)
157-
158-
def __initialize_session_for_psd2(self, user_payment_service_provider: UserPaymentServiceProvider) -> None:
159-
from bunq.sdk.model.core.session_server import SessionServer
160-
161-
session_server = SessionServer.create(self).value
162-
163-
token = session_server.token.token
164-
expiry_time = self._get_expiry_timestamp(session_server)
165-
user_id = session_server.get_referenced_user().id_
166-
167-
self._session_context = SessionContext(token, expiry_time, user_id)
151+
self._session_context = SessionContext(session_server)
168152

169153
@classmethod
170154
def _get_expiry_timestamp(cls, session_server: SessionServer) -> datetime.datetime:

bunq/sdk/context/bunq_context.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ def __init__(self) -> None:
1717
@classmethod
1818
def load_api_context(cls, api_context: ApiContext) -> None:
1919
cls._api_context = api_context
20-
cls._user_context = UserContext(api_context.session_context.user_id)
20+
cls._user_context = UserContext(api_context.session_context.user_id, api_context.session_context.user)
2121
cls._user_context.init_main_monetary_account()
2222

2323
@classmethod

bunq/sdk/context/session_context.py

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,14 @@
11
import datetime
22

3+
from bunq.sdk.model.core.session_server import SessionServer
34

4-
class SessionContext:
5-
"""
6-
:type _token: str
7-
:type _expiry_time: datetime.datetime
8-
:type _user_id: int
9-
"""
105

11-
def __init__(self,
12-
token: str,
13-
expiry_time: datetime.datetime,
14-
user_id: int) -> None:
15-
self._token = token
16-
self._expiry_time = expiry_time
17-
self._user_id = user_id
6+
class SessionContext:
7+
def __init__(self, session_server: SessionServer) -> None:
8+
self._token = session_server.token.token
9+
self._expiry_time = self._get_expiry_timestamp(session_server)
10+
self._user_id = session_server.get_referenced_user().id_
11+
self._user = session_server.get_referenced_user()
1812

1913
@property
2014
def token(self) -> str:
@@ -27,3 +21,7 @@ def expiry_time(self) -> datetime.datetime:
2721
@property
2822
def user_id(self) -> int:
2923
return self._user_id
24+
25+
@property
26+
def user(self):
27+
return self._user

bunq/sdk/context/user_context.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from bunq import T
12
from bunq.sdk.exception.bunq_exception import BunqException
23
from bunq.sdk.model.core.bunq_model import BunqModel
34
from bunq.sdk.model.generated import endpoint
@@ -9,15 +10,15 @@ class UserContext:
910
_ERROR_NO_ACTIVE_MONETARY_ACCOUNT_FOUND = 'No active monetary account found.'
1011
_STATUS_ACTIVE = 'ACTIVE'
1112

12-
def __init__(self, user_id: int) -> None:
13+
def __init__(self, user_id: int, user: BunqModel) -> None:
1314
self._user_id = user_id
1415
self._user_person = None
1516
self._user_company = None
1617
self._user_api_key = None
1718
self._user_payment_service_provider = None
1819
self._primary_monetary_account = None
1920

20-
self._set_user(self.__get_user_object())
21+
self._set_user(user)
2122

2223
@staticmethod
2324
def __get_user_object() -> BunqModel:

0 commit comments

Comments
 (0)