diff --git a/src/modules/expenses/services/ExpensesAPI.ts b/src/modules/expenses/services/ExpensesAPI.ts index cece654..8b720fa 100644 --- a/src/modules/expenses/services/ExpensesAPI.ts +++ b/src/modules/expenses/services/ExpensesAPI.ts @@ -49,13 +49,21 @@ export class ExpensesAPI extends BaseService { * * @param walletKey - Wallet key for authentication * @param filterByUser - If true, only return accounts the user has permissions for + * @param excludeVirtual - If true, exclude virtual parent accounts (default true for user views) */ - async getAccounts(walletKey: string, filterByUser: boolean = false): Promise { + async getAccounts( + walletKey: string, + filterByUser: boolean = false, + excludeVirtual: boolean = true + ): Promise { try { const url = new URL(`${this.baseUrl}/castle/api/v1/accounts`) if (filterByUser) { url.searchParams.set('filter_by_user', 'true') } + if (excludeVirtual) { + url.searchParams.set('exclude_virtual', 'true') + } const response = await fetch(url.toString(), { method: 'GET', @@ -84,13 +92,15 @@ export class ExpensesAPI extends BaseService { * @param walletKey - Wallet key for authentication * @param rootAccount - Optional root account to filter by (e.g., "Expenses") * @param filterByUser - If true, only return accounts the user has permissions for + * @param excludeVirtual - If true, exclude virtual parent accounts (default true for user views) */ async getAccountHierarchy( walletKey: string, rootAccount?: string, - filterByUser: boolean = false + filterByUser: boolean = false, + excludeVirtual: boolean = true ): Promise { - const accounts = await this.getAccounts(walletKey, filterByUser) + const accounts = await this.getAccounts(walletKey, filterByUser, excludeVirtual) // Filter by root account if specified let filteredAccounts = accounts