mirror of
https://github.com/mayswind/ezbookkeeping.git
synced 2026-05-16 07:57:33 +08:00
support filtering accounts and transaction categories for overview in home page (#209)
This commit is contained in:
@@ -415,6 +415,22 @@ export function objectFieldToArrayItem(object: object): string[] {
|
||||
return ret;
|
||||
}
|
||||
|
||||
export function objectFieldWithValueToArrayItem<T>(object: Record<string, T>, value: T): string[] {
|
||||
const ret: string[] = [];
|
||||
|
||||
for (const field in object) {
|
||||
if (!Object.prototype.hasOwnProperty.call(object, field)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (object[field] === value) {
|
||||
ret.push(field);
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
export function arrayItemToObjectField<T>(array: string[], value: T): Record<string, T> {
|
||||
const ret: Record<string, T> = {};
|
||||
|
||||
|
||||
+12
-2
@@ -471,9 +471,19 @@ export default {
|
||||
|
||||
return axios.get<ApiResponse<TransactionStatisticTrendsResponseItem[]>>(`v1/transactions/statistics/trends.json?use_transaction_timezone=${req.useTransactionTimezone}` + (queryParams.length ? '&' + queryParams.join('&') : ''));
|
||||
},
|
||||
getTransactionAmounts: (params: TransactionAmountsRequestParams): ApiResponsePromise<TransactionAmountsResponse> => {
|
||||
getTransactionAmounts: (params: TransactionAmountsRequestParams, excludeAccountIds: string[], excludeCategoryIds: string[]): ApiResponsePromise<TransactionAmountsResponse> => {
|
||||
const req = TransactionAmountsRequest.of(params);
|
||||
return axios.get<ApiResponse<TransactionAmountsResponse>>(`v1/transactions/amounts.json?${req.buildQuery()}`);
|
||||
let queryParams = req.buildQuery();
|
||||
|
||||
if (excludeAccountIds && excludeAccountIds.length) {
|
||||
queryParams = queryParams + `&exclude_account_ids=${excludeAccountIds.join(',')}`;
|
||||
}
|
||||
|
||||
if (excludeCategoryIds && excludeCategoryIds.length) {
|
||||
queryParams = queryParams + `&exclude_category_ids=${excludeCategoryIds.join(',')}`;
|
||||
}
|
||||
|
||||
return axios.get<ApiResponse<TransactionAmountsResponse>>(`v1/transactions/amounts.json?${queryParams}`);
|
||||
},
|
||||
getTransaction: ({ id, withPictures }: { id: string, withPictures: boolean | undefined }): ApiResponsePromise<TransactionInfoResponse> => {
|
||||
if (!isDefined(withPictures)) {
|
||||
|
||||
Reference in New Issue
Block a user