Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,15 @@ Given a version number MAJOR.MINOR.PATCH, increment:


## [Unreleased]
### Added
- support for filtering by 'card_ids' and 'types' in 'query' and 'page' functions for 'MerchantCardLog'
- support for filtering by 'purchase_ids' in 'query' and 'page' functions for 'MerchantInstallment'
- support for filtering by 'installment_ids' and 'types' in 'query' and 'page' functions for 'MerchantInstallmentLog'
- support for filtering by 'purchase_ids' and 'types' in 'query' and 'page' functions for 'MerchantPurchaseLog'
- support for filtering by 'session_ids' and 'types' in 'query' and 'page' functions for 'MerchantSessionLog'

### Removed
- filters for 'status', 'tags' and 'ids' from 'query' and 'page' functions in 'MerchantCardLog', 'MerchantInstallment', 'MerchantInstallmentLog', 'MerchantPurchaseLog' and 'MerchantSessionLog'

## [2.28.0] - 2025-03-02
### Added
Expand Down
11 changes: 5 additions & 6 deletions starkbank/merchantcard/log/__log.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,28 +26,27 @@ def get(id, user=None):
return rest.get_id(resource=_resource, id=id, user=user)


def query(limit=None, status=None, tags=None, ids=None, after=None, before=None, user=None):
def query(limit=None, card_ids=None, after=None, before=None, user=None, types=None):
return rest.get_stream(
resource=_resource,
limit=limit,
after=check_date(after),
before=check_date(before),
status=status,
tags=tags,
ids=ids,
card_ids=card_ids,
user=user,
types=types,
)


def page(cursor=None, limit=None, after=None, before=None, types=None, ids=None, user=None):
def page(cursor=None, limit=None, card_ids=None, after=None, before=None, user=None, types=None):
return rest.get_page(
resource=_resource,
cursor=cursor,
limit=limit,
after=check_date(after),
before=check_date(before),
types=types,
ids=ids,
card_ids=card_ids,
user=user,
)

6 changes: 4 additions & 2 deletions starkbank/merchantinstallment/__merchantinstallment.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ def get(id, user=None):
return rest.get_id(resource=_resource, id=id, user=user)


def query(limit=None, after=None, before=None, status=None, tags=None, ids=None, user=None):
def query(limit=None, after=None, before=None, status=None, tags=None, ids=None, user=None, purchase_ids=None):
return rest.get_stream(
resource=_resource,
limit=limit,
Expand All @@ -42,10 +42,11 @@ def query(limit=None, after=None, before=None, status=None, tags=None, ids=None,
tags=tags,
ids=ids,
user=user,
purchase_ids=purchase_ids,
)


def page(cursor=None, limit=None, after=None, before=None, status=None, tags=None, ids=None, user=None):
def page(cursor=None, limit=None, after=None, before=None, status=None, tags=None, ids=None, user=None, purchase_ids=None):
return rest.get_page(
resource=_resource,
cursor=cursor,
Expand All @@ -56,5 +57,6 @@ def page(cursor=None, limit=None, after=None, before=None, status=None, tags=Non
tags=tags,
ids=ids,
user=user,
purchase_ids=purchase_ids,
)

11 changes: 5 additions & 6 deletions starkbank/merchantinstallment/log/__log.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,28 +26,27 @@ def get(id, user=None):
return rest.get_id(resource=_resource, id=id, user=user)


def query(limit=None, status=None, tags=None, ids=None, after=None, before=None, user=None):
def query(limit=None, after=None, before=None, types=None, user=None, installment_ids=None):
return rest.get_stream(
resource=_resource,
limit=limit,
after=check_date(after),
before=check_date(before),
status=status,
tags=tags,
ids=ids,
types=types,
user=user,
installment_ids=installment_ids,
)


def page(cursor=None, limit=None, after=None, before=None, types=None, ids=None, user=None):
def page(cursor=None, limit=None, after=None, before=None, types=None, user=None, installment_ids=None):
return rest.get_page(
resource=_resource,
cursor=cursor,
limit=limit,
after=check_date(after),
before=check_date(before),
types=types,
ids=ids,
user=user,
installment_ids=installment_ids,
)

11 changes: 5 additions & 6 deletions starkbank/merchantpurchase/log/__log.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,27 +26,26 @@ def get(id, user=None):
return rest.get_id(resource=_resource, id=id, user=user)


def query(limit=None, status=None, tags=None, ids=None, after=None, before=None, user=None):
def query(limit=None, after=None, before=None, types=None, user=None, purchase_ids=None):
return rest.get_stream(
resource=_resource,
limit=limit,
after=check_date(after),
before=check_date(before),
status=status,
tags=tags,
ids=ids,
types=types,
user=user,
purchase_ids=purchase_ids,
)

def page(cursor=None, limit=None, after=None, before=None, types=None, ids=None, user=None):
def page(cursor=None, limit=None, after=None, before=None, types=None, user=None, purchase_ids=None):
return rest.get_page(
resource=_resource,
cursor=cursor,
limit=limit,
after=check_date(after),
before=check_date(before),
types=types,
ids=ids,
user=user,
purchase_ids=purchase_ids,
)

11 changes: 5 additions & 6 deletions starkbank/merchantsession/log/__log.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,28 +25,27 @@ def get(id, user=None):
return rest.get_id(resource=_resource, id=id, user=user)


def query(limit=None, status=None, tags=None, ids=None, after=None, before=None, user=None):
def query(limit=None, after=None, before=None, types=None, session_ids=None, user=None):
return rest.get_stream(
resource=_resource,
limit=limit,
after=check_date(after),
before=check_date(before),
status=status,
tags=tags,
ids=ids,
types=types,
session_ids=session_ids,
user=user,
)


def page(cursor=None, limit=None, after=None, before=None, types=None, ids=None, user=None):
def page(cursor=None, limit=None, after=None, before=None, types=None, session_ids=None, user=None):
return rest.get_page(
resource=_resource,
cursor=cursor,
limit=limit,
after=check_date(after),
before=check_date(before),
types=types,
ids=ids,
session_ids=session_ids,
user=user,
)

88 changes: 68 additions & 20 deletions tests/sdk/test_merchant_installment_log.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
import datetime
import starkbank
from unittest import TestCase, main
from tests.utils.pooling import wait_for_query
from tests.utils.merchantSession import generate_example_merchant_session
from tests.utils.merchantPurchase import generate_example_merchant_purchase


from tests.utils.user import exampleProject


Expand All @@ -8,38 +14,80 @@

class TestMerchantInstallmentQueryLog(TestCase):

def test_success(self):
merchant_installment_logs = starkbank.merchantinstallment.log.query(limit=3)
for log in merchant_installment_logs:
print(log)
self.assertIsInstance(log.id, str)
def setUp(self):
self.merchant_installment_ids = []
self.before_date = datetime.date.today()
self.after_date = self.before_date - datetime.timedelta(days=2)
merchant_tags = ["test_merchat_installment_query_log"]

merchant_session = generate_example_merchant_session(
tags=merchant_tags, challenge_mode="disabled"
)
self.merchant_purchase = generate_example_merchant_purchase(
merchant_session=merchant_session
)
merchant_installments = wait_for_query(
starkbank.merchantinstallment.query,
purchase_ids=[self.merchant_purchase.id],
)
for merchant_installment in merchant_installments:
self.merchant_installment_ids.append(merchant_installment.id)

class TestMerchantInstallmentGetLog(TestCase):
def test_query_log(self):
merchant_installment_logs = starkbank.merchantinstallment.log.query(
installment_ids=self.merchant_installment_ids,
limit=1,
after=self.after_date,
before=self.before_date,
)
for log in merchant_installment_logs:
self.assertEqual(log.installment.purchase_id, self.merchant_purchase.id)

def test_success(self):
def test_get_log_by_id(self):
merchant_installment_logs = starkbank.merchantinstallment.log.query(limit=3)
for log in merchant_installment_logs:
print(log.id)
log = starkbank.merchantinstallment.log.get(log.id)
self.assertIsInstance(log.id, str)


class TestMerchantInstallmentPageLog(TestCase):
merchant_installment_log = starkbank.merchantinstallment.log.get(log.id)
self.assertEqual(log.id, merchant_installment_log.id)

def test_success(self):
ids = []
def test_page_with_filters(self):
cursor = None
for _ in range(2):
page, cursor = starkbank.merchantinstallment.log.page(limit=5, cursor=cursor)
limit = 2
while True:
ids = []
page, cursor = starkbank.merchantinstallment.log.page(
limit=limit,
cursor=cursor,
after=self.after_date,
before=self.before_date,
installment_ids=self.merchant_installment_ids,
)
for entity in page:
self.assertNotIn(entity.id, ids)
self.assertIn(entity.installment.purchase_id, self.merchant_purchase.id)
ids.append(entity.id)

self.assertEqual(len(ids), limit)

if cursor is None:
break
self.assertEqual(len(ids), 10)

def test_query_by_type(self):
type = "created"
merchant_installment_logs = starkbank.merchantinstallment.log.query(
types=[type],
limit=1,
after=self.after_date,
before=self.before_date,
)
for log in merchant_installment_logs:
self.assertEqual(log.type, type)

def test_page_filter_by_type(self):
type = "created"
page, _ = starkbank.merchantinstallment.log.page(types=[type])
for entity in page:
self.assertEqual(entity.type, type)

if __name__ == '__main__':
main()

if __name__ == "__main__":
main()
61 changes: 61 additions & 0 deletions tests/utils/card.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
from random import choice
from starkbank import CorporateCard


Expand All @@ -9,3 +10,63 @@
def generateExampleCardJson(holder):
example_card.holder_id = holder.id
return example_card


debitCards = [
{
"expiration": "2035-01",
"card_number": "5277696455399733",
"card_security_code": "123",
},
{
"expiration": "2035-01",
"card_number": "2223000148400010",
"card_security_code": "123",
},
{
"expiration": "2035-01",
"card_number": "4761120000000148",
"card_security_code": "123",
},
{
"expiration": "2035-01",
"card_number": "4824810010000006",
"card_security_code": "123",
},
{
"expiration": "2035-01",
"card_number": "5204970000000007",
"card_security_code": "123",
},
]

creditCards = [
{
"expiration": "2035-01",
"card_number": "5448280000000007",
"card_security_code": "123",
},
{
"expiration": "2035-01",
"card_number": "4235647728025682",
"card_security_code": "123",
},
{
"expiration": "2035-01",
"card_number": "6062825624254001",
"card_security_code": "123",
},
{
"expiration": "2035-01",
"card_number": "36490101441625",
"card_security_code": "123",
},
]


def randomCreditCard():
return choice(creditCards)


def randomDebitCard():
return choice(debitCards)
Loading