Skip to content

Commit bea7c99

Browse files
Merge pull request #152 from bunq/feature/sdk_python#151_remove_user_sandbox
feature/sdk_python#151 Deprecated SandboxUser and replaced it with SandboxUserPerson/Company
2 parents 7b8b621 + a499938 commit bea7c99

File tree

14 files changed

+53
-59
lines changed

14 files changed

+53
-59
lines changed

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ Creating objects through the API requires an `ApiContext`, a `requestMap` and id
8282
dependencies (such as User ID required for accessing a Monetary Account). Optionally, custom headers
8383
can be passed to requests.
8484

85-
payment_id = endpoint.Payment.create(
85+
payment_id = Payment.create(
8686
amount=Amount(amount_string, self._CURRENCY_EURL),
8787
counterparty_alias=Pointer(self._POINTER_TYPE_EMAIL, recipient),
8888
description=description
@@ -109,7 +109,7 @@ See [`tinker/list_all_payment`](https://github.com/bunq/tinker_python/blob/2182b
109109
Updating objects through the API goes the same way as creating objects, except that also the object to update identifier
110110
(ID or UUID) is needed.
111111

112-
endpoint.Card.update(
112+
Card.update(
113113
card_id=int(card_id),
114114
monetary_account_current_id=int(account_id)
115115
)
@@ -130,7 +130,7 @@ passed to requests.
130130
Listing objects through the API requires an `ApiContext` and identifiers of all dependencies (such as User ID required
131131
for accessing a Monetary Account). Optionally, custom headers can be passed to requests.
132132

133-
users = endpoint.User.list(api_context)
133+
users = User.list(api_context)
134134

135135
##### Example
136136
See [`UserListExample.py`](./examples/user_list_example.py)

bunq/__init__.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from bunq.sdk.http.pagination import Pagination
66
from bunq.sdk.json import converter
77
from bunq.sdk.model.core.anchor_object_interface import AnchorObjectInterface
8+
from bunq.sdk.model.generated.object_ import Geolocation, ShareDetail, MonetaryAccountReference
89
from bunq.sdk.util.type_alias import T
910

1011

@@ -36,9 +37,9 @@ def initialize_converter() -> None:
3637
converter.register_adapter(InstallationContext, InstallationContextAdapter)
3738
converter.register_adapter(ApiEnvironmentType, ApiEnvironmentTypeAdapter)
3839
converter.register_adapter(float, FloatAdapter)
39-
converter.register_adapter(object_.Geolocation, GeolocationAdapter)
40-
converter.register_adapter(object_.MonetaryAccountReference, MonetaryAccountReferenceAdapter)
41-
converter.register_adapter(object_.ShareDetail, ShareDetailAdapter)
40+
converter.register_adapter(Geolocation, GeolocationAdapter)
41+
converter.register_adapter(MonetaryAccountReference, MonetaryAccountReferenceAdapter)
42+
converter.register_adapter(ShareDetail, ShareDetailAdapter)
4243
converter.register_adapter(datetime.datetime, DateTimeAdapter)
4344
converter.register_adapter(Pagination, PaginationAdapter)
4445

bunq/sdk/context/api_context.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@
1212
from bunq.sdk.exception.bunq_exception import BunqException
1313
from bunq.sdk.json import converter
1414
from bunq.sdk.model.core.payment_service_provider_credential_internal import PaymentServiceProviderCredentialInternal
15-
from bunq.sdk.model.generated import endpoint
16-
from bunq.sdk.model.generated.endpoint import UserCredentialPasswordIp
15+
from bunq.sdk.model.generated.endpoint import UserCredentialPasswordIp, Session
1716
from bunq.sdk.security import security
1817

1918
if typing.TYPE_CHECKING:
@@ -221,7 +220,7 @@ def close_session(self) -> None:
221220
self._drop_session_context()
222221

223222
def _delete_session(self) -> None:
224-
endpoint.Session.delete(self._SESSION_ID_DUMMY)
223+
Session.delete(self._SESSION_ID_DUMMY)
225224

226225
@property
227226
def environment_type(self) -> ApiEnvironmentType:

bunq/sdk/context/user_context.py

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1-
from bunq import T
21
from bunq.sdk.exception.bunq_exception import BunqException
32
from bunq.sdk.model.core.bunq_model import BunqModel
4-
from bunq.sdk.model.generated import endpoint
5-
from bunq.sdk.model.generated.endpoint import UserPerson, UserCompany, UserApiKey, MonetaryAccountBank
3+
from bunq.sdk.model.generated.endpoint import UserPerson, UserCompany, UserApiKey, MonetaryAccountBank, User, \
4+
UserPaymentServiceProvider
65

76

87
class UserContext:
@@ -22,19 +21,19 @@ def __init__(self, user_id: int, user: BunqModel) -> None:
2221

2322
@staticmethod
2423
def __get_user_object() -> BunqModel:
25-
return endpoint.User.list().value[0].get_referenced_object()
24+
return User.list().value[0].get_referenced_object()
2625

2726
def _set_user(self, user: BunqModel) -> None:
28-
if isinstance(user, endpoint.UserPerson):
27+
if isinstance(user, UserPerson):
2928
self._user_person = user
3029

31-
elif isinstance(user, endpoint.UserCompany):
30+
elif isinstance(user, UserCompany):
3231
self._user_company = user
3332

34-
elif isinstance(user, endpoint.UserApiKey):
33+
elif isinstance(user, UserApiKey):
3534
self._user_api_key = user
3635

37-
elif isinstance(user, endpoint.UserPaymentServiceProvider):
36+
elif isinstance(user, UserPaymentServiceProvider):
3837
self._user_payment_service_provider = user
3938

4039
else:
@@ -45,7 +44,7 @@ def init_main_monetary_account(self) -> None:
4544
if self._user_payment_service_provider is not None:
4645
return
4746

48-
all_monetary_account = endpoint.MonetaryAccountBank.list().value
47+
all_monetary_account = MonetaryAccountBank.list().value
4948

5049
for account in all_monetary_account:
5150
if account.status == self._STATUS_ACTIVE:

bunq/sdk/json/monetary_account_reference_adapter.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,15 @@
11
from typing import Type, Dict
22

33
from bunq.sdk.json import converter
4-
from bunq.sdk.model.generated import object_
5-
from bunq.sdk.model.generated.object_ import MonetaryAccountReference
4+
from bunq.sdk.model.generated.object_ import MonetaryAccountReference, LabelMonetaryAccount
65

76

87
class MonetaryAccountReferenceAdapter(converter.JsonAdapter):
98
@classmethod
109
def deserialize(cls,
1110
target_class: Type[MonetaryAccountReference],
1211
obj: Dict) -> MonetaryAccountReference:
13-
label_monetary_account = converter.deserialize(
14-
object_.LabelMonetaryAccount,
15-
obj
16-
)
12+
label_monetary_account = converter.deserialize(LabelMonetaryAccount, obj)
1713

1814
return target_class.create_from_label_monetary_account(label_monetary_account)
1915

bunq/sdk/json/session_server_adapter.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from bunq.sdk.model.core.id import Id
66
from bunq.sdk.model.core.session_server import SessionServer
77
from bunq.sdk.model.core.session_token import SessionToken
8-
from bunq.sdk.model.generated import endpoint
8+
from bunq.sdk.model.generated.endpoint import UserCompany, UserPerson, UserApiKey, UserPaymentServiceProvider
99

1010

1111
class SessionServerAdapter(converter.JsonAdapter):
@@ -65,25 +65,25 @@ def deserialize(cls,
6565
if cls._FIELD_USER_COMPANY in user_dict_wrapped:
6666
session_server.__dict__[cls._ATTRIBUTE_USER_COMPANY] = \
6767
converter.deserialize(
68-
endpoint.UserCompany,
68+
UserCompany,
6969
user_dict_wrapped[cls._FIELD_USER_COMPANY]
7070
)
7171
elif cls._FIELD_USER_PERSON in user_dict_wrapped:
7272
session_server.__dict__[cls._ATTRIBUTE_USER_PERSON] = \
7373
converter.deserialize(
74-
endpoint.UserPerson,
74+
UserPerson,
7575
user_dict_wrapped[cls._FIELD_USER_PERSON]
7676
)
7777
elif cls._FIELD_USER_API_KEY in user_dict_wrapped:
7878
session_server.__dict__[cls._ATTRIBUTE_USER_API_KEY] = \
7979
converter.deserialize(
80-
endpoint.UserApiKey,
80+
UserApiKey,
8181
user_dict_wrapped[cls._FIELD_USER_API_KEY]
8282
)
8383
elif cls._FIELD_USER_PAYMENT_SERVER_PROVIDER in user_dict_wrapped:
8484
session_server.__dict__[cls._ATTRIBUTE_USER_PAYMENT_SERVER_PROVIDER] = \
8585
converter.deserialize(
86-
endpoint.UserPaymentServiceProvider,
86+
UserPaymentServiceProvider,
8787
user_dict_wrapped[cls._FIELD_USER_PAYMENT_SERVER_PROVIDER]
8888
)
8989
else:

bunq/sdk/json/share_detail_adapter.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
from typing import Dict, Type, Optional
22

33
from bunq.sdk.json import converter
4-
from bunq.sdk.model.generated import object_
5-
from bunq.sdk.model.generated.object_ import ShareDetail
4+
from bunq.sdk.model.generated.object_ import ShareDetail, ShareDetailPayment, ShareDetailReadOnly, \
5+
ShareDetailDraftPayment
66

77

88
class ShareDetailAdapter(converter.JsonAdapter):
@@ -21,24 +21,24 @@ def deserialize(cls,
2121
target_class: Type[ShareDetail],
2222
obj: Dict) -> ShareDetail:
2323
"""
24-
:type target_class: object_.ShareDetail|type
24+
:type target_class: ShareDetail|type
2525
:type obj: dict
2626
27-
:rtype: object_.ShareDetail
27+
:rtype: ShareDetail
2828
"""
2929

3030
share_detail = target_class.__new__(target_class)
3131
share_detail.__dict__ = {
3232
cls._ATTRIBUTE_PAYMENT: converter.deserialize(
33-
object_.ShareDetailPayment,
33+
ShareDetailPayment,
3434
cls._get_field_or_none(cls._FIELD_DRAFT_PAYMENT, obj)
3535
),
3636
cls._ATTRIBUTE_READ_ONLY: converter.deserialize(
37-
object_.ShareDetailReadOnly,
37+
ShareDetailReadOnly,
3838
cls._get_field_or_none(cls._FIELD_READ_ONLY, obj)
3939
),
4040
cls._ATTRIBUTE_DRAFT_PAYMENT: converter.deserialize(
41-
object_.ShareDetailDraftPayment,
41+
ShareDetailDraftPayment,
4242
cls._get_field_or_none(cls._FIELD_DRAFT_PAYMENT, obj)
4343
),
4444
}

bunq/sdk/model/core/bunq_model.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import typing
44
from typing import Dict, List
55

6-
from bunq import T
6+
from bunq.sdk.util.type_alias import T
77
from bunq.sdk.http.bunq_response import BunqResponse
88
from bunq.sdk.http.bunq_response_raw import BunqResponseRaw
99
from bunq.sdk.json import converter

bunq/sdk/util/util.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@
99
from bunq.sdk.exception.bunq_exception import BunqException
1010
from bunq.sdk.http.api_client import ApiClient
1111
from bunq.sdk.model.generated import endpoint
12-
from bunq.sdk.model.generated.endpoint import SandboxUser
12+
from bunq.sdk.model.generated.endpoint import SandboxUserPerson
1313

1414
__UNIQUE_REQUEST_ID = "uniqueness-is-required"
1515
__FIELD_API_KEY = "ApiKey"
1616
__INDEX_FIRST = 0
1717
__FIELD_RESPONSE = "Response"
18-
__ENDPOINT_SANDBOX_USER = "sandbox-user"
18+
__ENDPOINT_SANDBOX_USER_PERSON = "sandbox-user-person"
1919

2020
_ERROR_COULD_NOT_CREATE_NEW_SANDBOX_USER = "Could not create new sandbox user."
2121

@@ -29,8 +29,8 @@ def automatic_sandbox_install() -> ApiContext:
2929
)
3030

3131

32-
def __generate_new_sandbox_user() -> SandboxUser:
33-
url = ApiEnvironmentType.SANDBOX.uri_base + __ENDPOINT_SANDBOX_USER
32+
def __generate_new_sandbox_user() -> SandboxUserPerson:
33+
url = ApiEnvironmentType.SANDBOX.uri_base + __ENDPOINT_SANDBOX_USER_PERSON
3434

3535
headers = {
3636
ApiClient.HEADER_REQUEST_ID: __UNIQUE_REQUEST_ID,
@@ -44,7 +44,7 @@ def __generate_new_sandbox_user() -> SandboxUser:
4444

4545
if response.status_code is ApiClient.STATUS_CODE_OK:
4646
response_json = json.loads(response.text)
47-
return endpoint.SandboxUser.from_json(
47+
return SandboxUserPerson.from_json(
4848
json.dumps(response_json[__FIELD_RESPONSE][__INDEX_FIRST][
4949
__FIELD_API_KEY]))
5050

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@
6262
],
6363

6464
# Require Python version equal or higher than the requested version.
65-
python_requires='>=3.5.3',
65+
python_requires='>=3.7.0',
6666

6767
# Keywords related to the project
6868
keywords='open-banking sepa bunq finance api payment',

0 commit comments

Comments
 (0)