Skip to content

Commit 8ce59a4

Browse files
Merge pull request #119 from starkbank/feature/update-deposit-resource-readme-update
Add update function to Deposit resource
2 parents b6f5955 + 9e89ca4 commit 8ce59a4

8 files changed

+55
-6
lines changed

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ Given a version number MAJOR.MINOR.PATCH, increment:
1818
- SplitLog resource
1919
- SplitReceiver resource
2020
- SplitReceiverLog resource
21+
- update function to Deposit resource
2122

2223
## [2.22.0] - 2023-09-18
2324
### Removed

README.md

+16-1
Original file line numberDiff line numberDiff line change
@@ -852,6 +852,21 @@ deposit = starkbank.deposit.get("5155165527080960")
852852
print(deposit)
853853
```
854854

855+
## Update a deposit
856+
857+
You can update an deposit's amount by its id. Only the amount can be decreased, which will result in a payment reversal. To fully reverse the deposit, pass amount = 0.
858+
859+
```python
860+
import starkbank
861+
862+
deposit = starkbank.deposit.update(
863+
"5155165527080960",
864+
amount=0,
865+
)
866+
867+
print(deposit)
868+
```
869+
855870
## Query deposit logs
856871

857872
Logs are pretty important to understand the life cycle of a deposit.
@@ -2437,7 +2452,7 @@ With this function, you can manually set events retrieved from the API as
24372452
```python
24382453
import starkbank
24392454

2440-
event = starkbank.event.update(id="129837198237192", is_delivered=True)
2455+
event = starkbank.event.update("129837198237192", is_delivered=True)
24412456

24422457
print(event)
24432458
```

starkbank/deposit/__deposit.py

+17
Original file line numberDiff line numberDiff line change
@@ -119,3 +119,20 @@ def page(cursor=None, limit=None, after=None, before=None, status=None, sort=Non
119119
ids=ids,
120120
user=user,
121121
)
122+
123+
124+
def update(id, amount=None, user=None):
125+
"""# Update Deposit entity
126+
Update the Deposit by passing its id to be partially or fully reversed.
127+
## Parameters (required):
128+
- id [string]: Deposit id. ex: "5656565656565656"
129+
## Parameters (optional):
130+
- amount [string, default None]: The new amount of the Deposit. If the amount = 0 the Deposit will be fully reversed
131+
- user [Organization/Project object, default None]: Organization or Project object. Not necessary if starkbank.user was set before function call
132+
## Return:
133+
- target Deposit with updated attributes
134+
"""
135+
payload = {
136+
"amount": amount,
137+
}
138+
return rest.patch_id(resource=_resource, id=id, user=user, payload=payload)

starkbank/deposit/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
from .__deposit import get, query, page
1+
from .__deposit import get, query, page, update
22
from .log.__log import Log
33
from . import log

tests/sdk/test_corporate_card.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import starkbank
22
from unittest import TestCase, main
33
from datetime import date, timedelta
4-
from tests.utils.holder import generateExampleHoldersJson
54
from tests.utils.user import exampleProject
65
from tests.utils.card import generateExampleCardJson
6+
from tests.utils.holder import generateExampleHoldersJson
77

88
starkbank.user = exampleProject
99

tests/sdk/test_deposit.py

+16
Original file line numberDiff line numberDiff line change
@@ -47,5 +47,21 @@ def test_success(self):
4747
print(deposit)
4848

4949

50+
class TestDepositInfoPatch(TestCase):
51+
52+
def test_success_amount(self):
53+
deposits = starkbank.deposit.query(status="created", limit=1)
54+
deposit_amount = 0
55+
for deposit in deposits:
56+
self.assertIsNotNone(deposit.id)
57+
updated_deposit = starkbank.deposit.update(
58+
deposit.id,
59+
amount=deposit_amount,
60+
)
61+
print(updated_deposit)
62+
self.assertEqual(updated_deposit.amount, deposit_amount)
63+
64+
5065
if __name__ == '__main__':
5166
main()
67+

tests/sdk/test_dict_key.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
class TestDictKeyInfoGet(TestCase):
99

1010
def test_success(self):
11-
dict_key = starkbank.dictkey.get("valid@starkbank.com")
11+
dict_key = starkbank.dictkey.get("valid@sandbox.com")
1212
self.assertIsNotNone(dict_key.id)
1313
print(dict_key)
1414

tests/sdk/test_transfer.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import starkbank
2-
from datetime import timedelta, date
32
from unittest import TestCase, main
4-
from tests.utils.transfer import generateExampleTransfersJson
3+
from datetime import timedelta, date
54
from tests.utils.user import exampleProject
5+
from tests.utils.transfer import generateExampleTransfersJson
66

77

88
starkbank.user = exampleProject

0 commit comments

Comments
 (0)