# Path: apiwrapper/endpoints/customer_statement.py
# class CustomerStatement(Endpoint):
# 
#     __endpoint_customer_statement = "customer-statement"
#     __endpoint_customer_statement_content = "content"
# 
#     @classmethod
#     def _get_base_endpoint(cls, user_id, account_id, statement_id=None):
#         endpoint = MonetaryAccount._get_base_endpoint(user_id, account_id)
#         endpoint += "/%s" % cls.__endpoint_customer_statement
#         if statement_id is not None:
#             endpoint += "/%d" % statement_id
#         return endpoint
# 
#     def get_all_customer_statements_for_account(self, user_id, account_id):
#         endpoint = self._get_base_endpoint(user_id, account_id)
# 
#         return self._make_get_request(endpoint)
# 
#     def get_customer_statement_by_id(self, user_id, account_id, statement_id):
#         endpoint = self._get_base_endpoint(user_id, account_id, statement_id)
# 
#         return self._make_get_request(endpoint)
# 
#     def get_content_of_customer_statement(self, user_id, account_id,
#                                           statement_id):
#         endpoint = self._get_base_endpoint(user_id, account_id, statement_id)
#         endpoint += "/%s" % self.__endpoint_customer_statement_content
# 
#         return self._make_get_request(endpoint)


from apiwrapper.endpoints.annual_overview import AnnualOverview
from apiwrapper.endpoints.attachment_public import AttachmentPublic
from apiwrapper.endpoints.attachment_tab import AttachmentTab
from apiwrapper.endpoints.avatar import Avatar
from apiwrapper.endpoints.card import Card
from apiwrapper.endpoints.cash_register import CashRegister
from apiwrapper.endpoints.cash_register_tab import CashRegisterTab
from apiwrapper.endpoints.certificate_pinned import CertificatePinned
from apiwrapper.endpoints.chat_conversation import ChatConversation
from apiwrapper.endpoints.credential_password_ip import CredentialPasswordIp
from apiwrapper.endpoints.customer_statement import CustomerStatement
from apiwrapper.endpoints.device import Device
from apiwrapper.endpoints.device_server import DeviceServer
from apiwrapper.endpoints.draft_payment import DraftPayment
from apiwrapper.endpoints.draft_share_invite_bank import DraftShareInviteBank
from apiwrapper.endpoints.installation import Installation
from apiwrapper.endpoints.invoice import Invoice
from apiwrapper.endpoints.master_card_action import MasterCardAction
from apiwrapper.endpoints.monetary_account import MonetaryAccount
from apiwrapper.endpoints.payment import Payment
from apiwrapper.endpoints.permitted_ip import PermittedIp
from apiwrapper.endpoints.request_inquiry import RequestInquiry
from apiwrapper.endpoints.schedule import Schedule
from apiwrapper.endpoints.scheduled_payment import ScheduledPayment
from apiwrapper.endpoints.server_public_key import ServerPublicKey
from apiwrapper.endpoints.session_server import SessionServer
from apiwrapper.endpoints.share_invite_bank_inquiry import \
    ShareInviteBankInquiry
from apiwrapper.endpoints.share_invite_bank_response import \
    ShareInviteBankResponse
from apiwrapper.endpoints.tab_attachment import TabAttachment
from apiwrapper.endpoints.tab_usage import TabUsage
from apiwrapper.endpoints.user import User


class Controller:

    def __init__(self, api_client):
        self.annual_overview = AnnualOverview(api_client)
        self.attachment_public = AttachmentPublic(api_client)
        self.attachment_tab = AttachmentTab(api_client)
        self.avatar = Avatar(api_client)
        self.card = Card(api_client)
        self.cash_register = CashRegister(api_client)
        self.cash_register_tab = CashRegisterTab(api_client)
        self.certificate_pinned = CertificatePinned(api_client)
        self.chat_conversation = ChatConversation(api_client)
        self.credential_password_ip = CredentialPasswordIp(api_client)

# Path: apiwrapper/endpoints/customer_statement.py
# class CustomerStatement(Endpoint):
# 
#     __endpoint_customer_statement = "customer-statement"
#     __endpoint_customer_statement_content = "content"
# 
#     @classmethod
#     def _get_base_endpoint(cls, user_id, account_id, statement_id=None):
#         endpoint = MonetaryAccount._get_base_endpoint(user_id, account_id)
#         endpoint += "/%s" % cls.__endpoint_customer_statement
#         if statement_id is not None:
#             endpoint += "/%d" % statement_id
#         return endpoint
# 
#     def get_all_customer_statements_for_account(self, user_id, account_id):
#         endpoint = self._get_base_endpoint(user_id, account_id)
# 
#         return self._make_get_request(endpoint)
# 
#     def get_customer_statement_by_id(self, user_id, account_id, statement_id):
#         endpoint = self._get_base_endpoint(user_id, account_id, statement_id)
# 
#         return self._make_get_request(endpoint)
# 
#     def get_content_of_customer_statement(self, user_id, account_id,
#                                           statement_id):
#         endpoint = self._get_base_endpoint(user_id, account_id, statement_id)
#         endpoint += "/%s" % self.__endpoint_customer_statement_content
# 
#         return self._make_get_request(endpoint)


# Path: apiwrapper/endpoints/controller.py
from apiwrapper.endpoints.annual_overview import AnnualOverview
from apiwrapper.endpoints.attachment_public import AttachmentPublic
from apiwrapper.endpoints.attachment_tab import AttachmentTab
from apiwrapper.endpoints.avatar import Avatar
from apiwrapper.endpoints.card import Card
from apiwrapper.endpoints.cash_register import CashRegister
from apiwrapper.endpoints.cash_register_tab import CashRegisterTab
from apiwrapper.endpoints.certificate_pinned import CertificatePinned
from apiwrapper.endpoints.chat_conversation import ChatConversation
from apiwrapper.endpoints.credential_password_ip import CredentialPasswordIp
from apiwrapper.endpoints.customer_statement import CustomerStatement
from apiwrapper.endpoints.device import Device
from apiwrapper.endpoints.device_server import DeviceServer
from apiwrapper.endpoints.draft_payment import DraftPayment
from apiwrapper.endpoints.draft_share_invite_bank import DraftShareInviteBank
from apiwrapper.endpoints.installation import Installation
from apiwrapper.endpoints.invoice import Invoice
from apiwrapper.endpoints.master_card_action import MasterCardAction
from apiwrapper.endpoints.monetary_account import MonetaryAccount
from apiwrapper.endpoints.payment import Payment
from apiwrapper.endpoints.permitted_ip import PermittedIp
from apiwrapper.endpoints.request_inquiry import RequestInquiry
from apiwrapper.endpoints.schedule import Schedule
from apiwrapper.endpoints.scheduled_payment import ScheduledPayment
from apiwrapper.endpoints.server_public_key import ServerPublicKey
from apiwrapper.endpoints.session_server import SessionServer
from apiwrapper.endpoints.share_invite_bank_inquiry import \
    ShareInviteBankInquiry
from apiwrapper.endpoints.share_invite_bank_response import \
    ShareInviteBankResponse
from apiwrapper.endpoints.tab_attachment import TabAttachment
from apiwrapper.endpoints.tab_usage import TabUsage
from apiwrapper.endpoints.user import User



class Controller:

    def __init__(self, api_client):
        self.annual_overview = AnnualOverview(api_client)
        self.attachment_public = AttachmentPublic(api_client)
        self.attachment_tab = AttachmentTab(api_client)
        self.avatar = Avatar(api_client)
        self.card = Card(api_client)
        self.cash_register = CashRegister(api_client)
        self.cash_register_tab = CashRegisterTab(api_client)
        self.certificate_pinned = CertificatePinned(api_client)
        self.chat_conversation = ChatConversation(api_client)
        self.credential_password_ip = CredentialPasswordIp(api_client)

        self.customer_statement = CustomerStatement(api_client)