1+ import requests
2+ from . import utils
3+ from codat .models import operations
4+ from typing import Optional
5+
6+ class BankAccountTransactions :
7+ _client : requests .Session
8+ _security_client : requests .Session
9+ _server_url : str
10+ _language : str
11+ _sdk_version : str
12+ _gen_version : str
13+
14+ def __init__ (self , client : requests .Session , security_client : requests .Session , server_url : str , language : str , sdk_version : str , gen_version : str ) -> None :
15+ self ._client = client
16+ self ._security_client = security_client
17+ self ._server_url = server_url
18+ self ._language = language
19+ self ._sdk_version = sdk_version
20+ self ._gen_version = gen_version
21+
22+
23+ def get_bank_account_push_options (self , request : operations .GetBankAccountPushOptionsRequest ) -> operations .GetBankAccountPushOptionsResponse :
24+ r"""List push options for bank account bank transactions
25+ Gets the options of pushing bank account transactions.
26+ """
27+
28+ base_url = self ._server_url
29+
30+ url = utils .generate_url (base_url , "/companies/{companyId}/connections/{connectionId}/options/bankAccounts/{accountId}/bankTransactions" , request .path_params )
31+
32+ query_params = utils .get_query_params (request .query_params )
33+
34+ client = utils .configure_security_client (self ._client , request .security )
35+
36+ r = client .request ("GET" , url , params = query_params )
37+ content_type = r .headers .get ("Content-Type" )
38+
39+ res = operations .GetBankAccountPushOptionsResponse (status_code = r .status_code , content_type = content_type )
40+
41+ if r .status_code == 200 :
42+ if utils .match_content_type (content_type , "application/json" ):
43+ out = utils .unmarshal_json (r .text , Optional [operations .GetBankAccountPushOptionsPushOption ])
44+ res .push_option = out
45+
46+ return res
47+
48+
49+ def list_all_bank_transactionscount (self , request : operations .ListAllBankTransactionscountRequest ) -> operations .ListAllBankTransactionscountResponse :
50+ r"""List bank transactions for bank account
51+ Gets bank transactions for a given bank account ID
52+ """
53+
54+ base_url = self ._server_url
55+
56+ url = utils .generate_url (base_url , "/companies/{companyId}/connections/{connectionId}/data/bankAccounts/{accountId}/bankTransactions" , request .path_params )
57+
58+ query_params = utils .get_query_params (request .query_params )
59+
60+ client = utils .configure_security_client (self ._client , request .security )
61+
62+ r = client .request ("GET" , url , params = query_params )
63+ content_type = r .headers .get ("Content-Type" )
64+
65+ res = operations .ListAllBankTransactionscountResponse (status_code = r .status_code , content_type = content_type )
66+
67+ if r .status_code == 200 :
68+ if utils .match_content_type (content_type , "application/json" ):
69+ out = utils .unmarshal_json (r .text , Optional [operations .ListAllBankTransactionscountLinks ])
70+ res .links = out
71+
72+ return res
73+
74+
75+ def post_bank_transactions (self , request : operations .PostBankTransactionsRequest ) -> operations .PostBankTransactionsResponse :
76+ r"""Create bank transactions
77+ Posts bank transactions to the accounting package for a given company.
78+
79+ > **Supported Integrations**
80+ >
81+ > Check out our [Knowledge UI](https://knowledge.codat.io/supported-features/accounting?view=tab-by-data-type&dataType=bankTransactions) for integrations that support POST methods.
82+ """
83+
84+ base_url = self ._server_url
85+
86+ url = utils .generate_url (base_url , "/companies/{companyId}/connections/{connectionId}/push/bankAccounts/{accountId}}/bankTransactions" , request .path_params )
87+
88+ headers = {}
89+ req_content_type , data , form = utils .serialize_request_body (request )
90+ if req_content_type != "multipart/form-data" and req_content_type != "multipart/mixed" :
91+ headers ["content-type" ] = req_content_type
92+ query_params = utils .get_query_params (request .query_params )
93+
94+ client = utils .configure_security_client (self ._client , request .security )
95+
96+ r = client .request ("POST" , url , params = query_params , data = data , files = form , headers = headers )
97+ content_type = r .headers .get ("Content-Type" )
98+
99+ res = operations .PostBankTransactionsResponse (status_code = r .status_code , content_type = content_type )
100+
101+ if r .status_code == 200 :
102+ if utils .match_content_type (content_type , "application/json" ):
103+ out = utils .unmarshal_json (r .text , Optional [operations .PostBankTransactions200ApplicationJSON ])
104+ res .post_bank_transactions_200_application_json_object = out
105+
106+ return res
107+
108+
0 commit comments