Skip to content

Commit

Permalink
refactor(api)!: move some positional params to named params + updates (
Browse files Browse the repository at this point in the history
…#114)

- Add LedgerableEvents, LedgerEventHandlers, and LedgerAccountStatements resources
- Add ability to create ledger transaction reversals
- Add metadata to LedgerEntries
- Add verification_status to Counterparties
- Make document_type optional for Documents and add documentable_type of 'connection'
- Add reconciliation_filters and reconciliation_groups to ExpectedPayments
- Change ledger_entries to LedgerEntry for LedgerEventHandlers
- Add source to Documents
- Add vendor_id filter for Transactions
# Migration
The documentable type and documentable id params in the `client.documents` methods are now named arguments, for example:
`client.documents.create('<documentable type>', '<documentable id>')` now becomes `client.documents.create({ documentable_id: '<documentable id>', documentable_type: 'cases' })`. This transition is the same for all methods in the documents resource except `retrieve()` as that contains a positional `id` param.
The `client.ledger_transactions.versions.list()` method now only accepts named params, for example:
`client.ledger_transactions.versions.list('<id>')` now becomes `client.ledger_transactions.versions.list({ ledger_transaction_id: '<id>' })`
The deprecated `client.ledger_transactions.versions.versions()` alias has also been removed.
  • Loading branch information
stainless-bot authored and cleb11 committed Jul 7, 2023
1 parent 22e8dc7 commit dd9e4af
Show file tree
Hide file tree
Showing 36 changed files with 2,245 additions and 170 deletions.
2 changes: 1 addition & 1 deletion .stats.yml
Original file line number Diff line number Diff line change
@@ -1 +1 @@
configured_endpoints: 117
configured_endpoints: 127
6 changes: 5 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,11 @@ import ModernTreasury, { fileFromPath } from 'modern-treasury';
const modernTreasury = new ModernTreasury();

const file = await fileFromPath('my/file.txt');
await modernTreasury.documents.create('counterparties', '24c6b7a3-02...', { file: file });
await modernTreasury.documents.create({
file: file,
documentable_type: 'counterparties',
documentable_id: '24c6b7a3-02...',
});
```

## Handling errors
Expand Down
68 changes: 59 additions & 9 deletions api.md
Original file line number Diff line number Diff line change
Expand Up @@ -115,9 +115,9 @@ Models:

Methods:

- <code title="post /api/{documentable_type}/{documentable_id}/documents">client.documents.<a href="./resources/documents.ts">create</a>(documentableType, documentableId, { ...params }) -> Document</code>
- <code title="get /api/{documentable_type}/{documentable_id}/documents/{id}">client.documents.<a href="./resources/documents.ts">retrieve</a>(documentableType, documentableId, id) -> Document</code>
- <code title="get /api/{documentable_type}/{documentable_id}/documents">client.documents.<a href="./resources/documents.ts">list</a>(documentableType, documentableId, { ...params }) -> DocumentsPage</code>
- <code title="post /api/documents">client.documents.<a href="./resources/documents.ts">create</a>({ ...params }) -> Document</code>
- <code title="get /api/documents/{id}">client.documents.<a href="./resources/documents.ts">retrieve</a>(id) -> Document</code>
- <code title="get /api/documents">client.documents.<a href="./resources/documents.ts">list</a>({ ...params }) -> DocumentsPage</code>

# AccountCollectionFlows

Expand Down Expand Up @@ -196,6 +196,17 @@ Methods:
- <code title="get /api/ledgers">client.ledgers.<a href="./resources/ledgers.ts">list</a>({ ...params }) -> LedgersPage</code>
- <code title="delete /api/ledgers/{id}">client.ledgers.<a href="./resources/ledgers.ts">del</a>(id) -> Ledger</code>

# LedgerableEvents

Models:

- <code><a href="./resources/ledgerable-events.ts">LedgerableEvent</a></code>

Methods:

- <code title="post /api/ledgerable_events">client.ledgerableEvents.<a href="./resources/ledgerable-events.ts">create</a>({ ...params }) -> LedgerableEvent</code>
- <code title="get /api/ledgerable_events/{id}">client.ledgerableEvents.<a href="./resources/ledgerable-events.ts">retrieve</a>(id) -> LedgerableEvent</code>

# LedgerAccountCategories

Models:
Expand Down Expand Up @@ -241,6 +252,18 @@ Methods:
- <code title="get /api/ledger_account_payouts">client.ledgerAccountPayouts.<a href="./resources/ledger-account-payouts.ts">list</a>({ ...params }) -> LedgerAccountPayoutsPage</code>
- <code title="get /api/ledger_account_payouts/{id}">client.ledgerAccountPayouts.<a href="./resources/ledger-account-payouts.ts">retireve</a>(id) -> LedgerAccountPayout</code>

# LedgerAccountStatements

Models:

- <code><a href="./resources/ledger-account-statements.ts">LedgerAccountStatementCreateResponse</a></code>
- <code><a href="./resources/ledger-account-statements.ts">LedgerAccountStatementRetrieveResponse</a></code>

Methods:

- <code title="post /api/ledger_account_statements">client.ledgerAccountStatements.<a href="./resources/ledger-account-statements.ts">create</a>({ ...params }) -> LedgerAccountStatementCreateResponse</code>
- <code title="get /api/ledger_account_statements/{id}">client.ledgerAccountStatements.<a href="./resources/ledger-account-statements.ts">retrieve</a>(id) -> LedgerAccountStatementRetrieveResponse</code>

# LedgerEntries

Models:
Expand All @@ -249,9 +272,25 @@ Models:

Methods:

- <code title="get /api/ledger_entries/{id}">client.ledgerEntries.<a href="./resources/ledger-entries.ts">retrieve</a>(id) -> LedgerEntry</code>
- <code title="get /api/ledger_entries/{id}">client.ledgerEntries.<a href="./resources/ledger-entries.ts">retrieve</a>(id, { ...params }) -> LedgerEntry</code>
- <code title="get /api/ledger_entries">client.ledgerEntries.<a href="./resources/ledger-entries.ts">list</a>({ ...params }) -> LedgerEntriesPage</code>

# LedgerEventHandlers

Models:

- <code><a href="./resources/ledger-event-handlers.ts">LedgerEventHandlerCreateResponse</a></code>
- <code><a href="./resources/ledger-event-handlers.ts">LedgerEventHandlerRetrieveResponse</a></code>
- <code><a href="./resources/ledger-event-handlers.ts">LedgerEventHandlerListResponse</a></code>
- <code><a href="./resources/ledger-event-handlers.ts">LedgerEventHandlerDeleteResponse</a></code>

Methods:

- <code title="post /api/ledger_event_handlers">client.ledgerEventHandlers.<a href="./resources/ledger-event-handlers.ts">create</a>({ ...params }) -> LedgerEventHandlerCreateResponse</code>
- <code title="get /api/ledger_event_handlers/{id}">client.ledgerEventHandlers.<a href="./resources/ledger-event-handlers.ts">retrieve</a>(id) -> LedgerEventHandlerRetrieveResponse</code>
- <code title="get /api/ledger_event_handlers">client.ledgerEventHandlers.<a href="./resources/ledger-event-handlers.ts">list</a>({ ...params }) -> LedgerEventHandlerListResponsesPage</code>
- <code title="delete /api/ledger_event_handlers/{id}">client.ledgerEventHandlers.<a href="./resources/ledger-event-handlers.ts">del</a>(id) -> LedgerEventHandlerDeleteResponse</code>

# LedgerTransactions

Models:
Expand All @@ -264,6 +303,7 @@ Methods:
- <code title="get /api/ledger_transactions/{id}">client.ledgerTransactions.<a href="./resources/ledger-transactions/ledger-transactions.ts">retrieve</a>(id) -> LedgerTransaction</code>
- <code title="patch /api/ledger_transactions/{id}">client.ledgerTransactions.<a href="./resources/ledger-transactions/ledger-transactions.ts">update</a>(id, { ...params }) -> LedgerTransaction</code>
- <code title="get /api/ledger_transactions">client.ledgerTransactions.<a href="./resources/ledger-transactions/ledger-transactions.ts">list</a>({ ...params }) -> LedgerTransactionsPage</code>
- <code title="post /api/ledger_transactions/{ledger_transaction_id}/reversal">client.ledgerTransactions.<a href="./resources/ledger-transactions/ledger-transactions.ts">createReversal</a>(ledgerTransactionId, { ...params }) -> LedgerTransaction</code>

## Versions

Expand All @@ -273,7 +313,7 @@ Models:

Methods:

- <code title="get /api/ledger_transactions/{id}/versions">client.ledgerTransactions.versions.<a href="./resources/ledger-transactions/versions.ts">list</a>(id, { ...params }) -> LedgerTransactionVersionsPage</code>
- <code title="get /api/ledger_transaction_versions">client.ledgerTransactions.versions.<a href="./resources/ledger-transactions/versions.ts">list</a>({ ...params }) -> LedgerTransactionVersionsPage</code>

# LineItems

Expand Down Expand Up @@ -355,13 +395,23 @@ Methods:

Models:

- <code><a href="./resources/transactions.ts">Transaction</a></code>
- <code><a href="./resources/transactions/transactions.ts">Transaction</a></code>

Methods:

- <code title="get /api/transactions/{id}">client.transactions.<a href="./resources/transactions/transactions.ts">retrieve</a>(id) -> Transaction</code>
- <code title="patch /api/transactions/{id}">client.transactions.<a href="./resources/transactions/transactions.ts">update</a>(id, { ...params }) -> Transaction</code>
- <code title="get /api/transactions">client.transactions.<a href="./resources/transactions/transactions.ts">list</a>({ ...params }) -> TransactionsPage</code>

## LineItems

Models:

- <code><a href="./resources/transactions/line-items.ts">TransactionLineItem</a></code>

Methods:

- <code title="get /api/transactions/{id}">client.transactions.<a href="./resources/transactions.ts">retrieve</a>(id) -> Transaction</code>
- <code title="patch /api/transactions/{id}">client.transactions.<a href="./resources/transactions.ts">update</a>(id, { ...params }) -> Transaction</code>
- <code title="get /api/transactions">client.transactions.<a href="./resources/transactions.ts">list</a>({ ...params }) -> TransactionsPage</code>
- <code title="get /api/transactions/{transaction_id}/line_items">client.transactions.lineItems.<a href="./resources/transactions/line-items.ts">list</a>(transactionId, { ...params }) -> TransactionLineItemsPage</code>

# Validations

Expand Down
23 changes: 23 additions & 0 deletions index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -76,10 +76,13 @@ export class ModernTreasury extends Core.APIClient {
routingDetails: API.RoutingDetails = new API.RoutingDetails(this);
internalAccounts: API.InternalAccounts = new API.InternalAccounts(this);
ledgers: API.Ledgers = new API.Ledgers(this);
ledgerableEvents: API.LedgerableEvents = new API.LedgerableEvents(this);
ledgerAccountCategories: API.LedgerAccountCategories = new API.LedgerAccountCategories(this);
ledgerAccounts: API.LedgerAccounts = new API.LedgerAccounts(this);
ledgerAccountPayouts: API.LedgerAccountPayouts = new API.LedgerAccountPayouts(this);
ledgerAccountStatements: API.LedgerAccountStatements = new API.LedgerAccountStatements(this);
ledgerEntries: API.LedgerEntries = new API.LedgerEntries(this);
ledgerEventHandlers: API.LedgerEventHandlers = new API.LedgerEventHandlers(this);
ledgerTransactions: API.LedgerTransactions = new API.LedgerTransactions(this);
lineItems: API.LineItems = new API.LineItems(this);
paymentFlows: API.PaymentFlows = new API.PaymentFlows(this);
Expand Down Expand Up @@ -247,6 +250,10 @@ export namespace ModernTreasury {
export import LedgerUpdateParams = API.LedgerUpdateParams;
export import LedgerListParams = API.LedgerListParams;

export import LedgerableEvents = API.LedgerableEvents;
export import LedgerableEvent = API.LedgerableEvent;
export import LedgerableEventCreateParams = API.LedgerableEventCreateParams;

export import LedgerAccountCategories = API.LedgerAccountCategories;
export import LedgerAccountCategory = API.LedgerAccountCategory;
export import LedgerAccountCategoriesPage = API.LedgerAccountCategoriesPage;
Expand All @@ -271,17 +278,33 @@ export namespace ModernTreasury {
export import LedgerAccountPayoutUpdateParams = API.LedgerAccountPayoutUpdateParams;
export import LedgerAccountPayoutListParams = API.LedgerAccountPayoutListParams;

export import LedgerAccountStatements = API.LedgerAccountStatements;
export import LedgerAccountStatementCreateResponse = API.LedgerAccountStatementCreateResponse;
export import LedgerAccountStatementRetrieveResponse = API.LedgerAccountStatementRetrieveResponse;
export import LedgerAccountStatementCreateParams = API.LedgerAccountStatementCreateParams;

export import LedgerEntries = API.LedgerEntries;
export import LedgerEntry = API.LedgerEntry;
export import LedgerEntriesPage = API.LedgerEntriesPage;
export import LedgerEntryRetrieveParams = API.LedgerEntryRetrieveParams;
export import LedgerEntryListParams = API.LedgerEntryListParams;

export import LedgerEventHandlers = API.LedgerEventHandlers;
export import LedgerEventHandlerCreateResponse = API.LedgerEventHandlerCreateResponse;
export import LedgerEventHandlerRetrieveResponse = API.LedgerEventHandlerRetrieveResponse;
export import LedgerEventHandlerListResponse = API.LedgerEventHandlerListResponse;
export import LedgerEventHandlerDeleteResponse = API.LedgerEventHandlerDeleteResponse;
export import LedgerEventHandlerListResponsesPage = API.LedgerEventHandlerListResponsesPage;
export import LedgerEventHandlerCreateParams = API.LedgerEventHandlerCreateParams;
export import LedgerEventHandlerListParams = API.LedgerEventHandlerListParams;

export import LedgerTransactions = API.LedgerTransactions;
export import LedgerTransaction = API.LedgerTransaction;
export import LedgerTransactionsPage = API.LedgerTransactionsPage;
export import LedgerTransactionCreateParams = API.LedgerTransactionCreateParams;
export import LedgerTransactionUpdateParams = API.LedgerTransactionUpdateParams;
export import LedgerTransactionListParams = API.LedgerTransactionListParams;
export import LedgerTransactionCreateReversalParams = API.LedgerTransactionCreateReversalParams;

export import LineItems = API.LineItems;
export import LineItem = API.LineItem;
Expand Down
10 changes: 10 additions & 0 deletions resources/counterparties.ts
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,11 @@ export interface Counterparty {
send_remittance_advice: boolean;

updated_at: string;

/**
* The verification status of the counterparty.
*/
verification_status: 'denied' | 'needs_approval' | 'unverified' | 'verified';
}

export namespace Counterparty {
Expand Down Expand Up @@ -339,6 +344,11 @@ export interface CounterpartyCreateParams {
*/
taxpayer_identifier?: string;

/**
* Body param: The verification status of the counterparty.
*/
verification_status?: 'denied' | 'needs_approval' | 'unverified' | 'verified';

/**
* Header param: This key should be something unique, preferably something like an
* UUID.
Expand Down
Loading

0 comments on commit dd9e4af

Please sign in to comment.