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
1 change: 1 addition & 0 deletions fintoc/managers/v2/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
"""Init file for the v2 managers module of the SDK."""

from .account_numbers_manager import AccountNumbersManager
from .account_statements_manager import AccountStatementsManager
from .account_verifications_manager import AccountVerificationsManager
from .accounts_manager import AccountsManager
from .checkout_sessions_manager import CheckoutSessionsManager
Expand Down
11 changes: 11 additions & 0 deletions fintoc/managers/v2/account_statements_manager.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# pylint: disable=duplicate-code
"""Module to hold the account statements manager."""

from fintoc.mixins import ManagerMixin


class AccountStatementsManager(ManagerMixin):
"""Represents an account statements manager."""

resource = "account_statement"
methods = ["list"]
16 changes: 16 additions & 0 deletions fintoc/managers/v2/accounts_manager.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# pylint: disable=duplicate-code
"""Module to hold the accounts manager."""

from fintoc.managers.v2.account_statements_manager import AccountStatementsManager
from fintoc.managers.v2.movements_manager import MovementsManager
from fintoc.mixins import ManagerMixin

Expand All @@ -13,8 +14,23 @@ class AccountsManager(ManagerMixin):

def __init__(self, path, client):
super().__init__(path, client)
self.__account_statements_manager = None
self.__movements_manager = None

@property
def account_statements(self):
"""Proxies the account statements manager."""
if self.__account_statements_manager is None:
self.__account_statements_manager = AccountStatementsManager(
"/v2/accounts/{account_id}/account_statements",
self._client,
)
return self.__account_statements_manager

@account_statements.setter
def account_statements(self, new_value): # pylint: disable=no-self-use
raise NameError("Attribute name corresponds to a manager")

@property
def movements(self):
"""Proxies the movements manager."""
Expand Down
1 change: 1 addition & 0 deletions fintoc/resources/v2/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

from .account import Account
from .account_number import AccountNumber
from .account_statement import AccountStatement
from .account_verification import AccountVerification
from .entity import Entity
from .invoice import Invoice
Expand Down
7 changes: 7 additions & 0 deletions fintoc/resources/v2/account_statement.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
"""Module to hold the AccountStatement resource."""

from fintoc.mixins import ResourceMixin


class AccountStatement(ResourceMixin):
"""Represents a Fintoc Account Statement."""
14 changes: 14 additions & 0 deletions tests/test_integration.py
Original file line number Diff line number Diff line change
Expand Up @@ -1052,6 +1052,20 @@ def test_v2_invoice_get(self):
assert invoice.method == "get"
assert invoice.url == f"v2/invoices/{invoice_id}"

def test_v2_account_statements_list(self):
"""Test getting account statements from an account using v2 API."""
account_id = "acc_12345"
account_statements = list(
self.fintoc.v2.accounts.account_statements.list(account_id=account_id)
)

assert len(account_statements) > 0
for account_statement in account_statements:
assert account_statement.method == "get"
assert (
account_statement.url == f"v2/accounts/{account_id}/account_statements"
)


if __name__ == "__main__":
pytest.main()
Loading