export type ExternalIdJson = {external_id?: string | undefined, external_type_key?: string | undefined}; export type V1FilterOperator = Record; export type V1TimePeriodJson = {type: string}; export type V1TransactionQueryFilter = {attribute?: string | undefined, end?: number | undefined, operator?: V1FilterOperator | undefined, period?: V1TimePeriodJson | undefined, start?: number | undefined, type?: ('discrete' | 'word' | 'number' | 'compound' | 'date' | 'string') | undefined, value?: string | undefined, values?: Array | undefined}; export type V1QueryPortfolioId = {portfolio_id?: Array | undefined}; export type V1TransactionSortingJson = {ascending?: boolean | undefined, attribute?: string | undefined}; export type V1TransactionQueryJson = {columns?: Array | undefined, end_date?: string | undefined, external_ids?: Array | undefined, filters?: Array | undefined, include_all_knowledge_dates?: boolean | undefined, include_deleted?: boolean | undefined, include_inactive?: boolean | undefined, include_online_valuations?: boolean | undefined, include_unverified?: boolean | undefined, limit?: number | undefined, portfolio_id?: V1QueryPortfolioId | undefined, portfolio_type?: ('ENTITY' | 'ENTITY_FUNDS' | 'FIRM' | 'FIRM_ACCOUNTS' | 'FIRM_CLIENTS' | 'FIRM_FUNDS' | 'FIRM_HOUSEHOLDS' | 'FIRM_TRADING_GROUPS' | 'FIRM_UNVERIFIED_ACCOUNTS' | 'GROUP' | 'GROUP_FUNDS') | undefined, sorting?: Array | undefined, start_date?: string | undefined}; export type CreateApiTransactionsQueryArgs = {'Addepar-Firm': string, body: V1TransactionQueryJson}; export type CreateApiTransactionsQueryOptions = {baseUrl?: string | undefined, BearerAuth?: string | undefined, fetch?: typeof fetch | undefined}; /** * Create Transaction Query * * POST /transactions/query */ export const createApiTransactionsQuery = async (args: CreateApiTransactionsQueryArgs, options?: CreateApiTransactionsQueryOptions) => { const {baseUrl = "https://examplefirm.addepar.com/api/v1", fetch: fetchFn = fetch, BearerAuth} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/vnd.api+json") headers.set('accept', "application/vnd.api+json") if (args['Addepar-Firm'] != null) headers.set("Addepar-Firm", String(args['Addepar-Firm'])) if (BearerAuth !== undefined) headers.set('authorization', `Bearer ${BearerAuth}`) const url = `${baseUrl.replace(/\/+$/, '')}/transactions/query${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "POST", headers, body: JSON.stringify(args.body)}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return (await res.json()) as unknown };