- Nginx: проксирование /api на backend (единая точка входа) - История: стрелки ← → для переключения недель/месяцев/годов - История: сохранение фильтров и пагинации в URL при F5 - Импорт: миграция 003 — дефолтные правила категорий (PYATEROCHK, AUCHAN и др.) - Настройки: вкладка «Данные» с кнопкой «Очистить историю» - Backend: DELETE /api/transactions для удаления всех транзакций - ClearHistoryModal: подтверждение чекбоксами и вводом «УДАЛИТЬ»
32 lines
876 B
TypeScript
32 lines
876 B
TypeScript
import type {
|
|
Transaction,
|
|
GetTransactionsParams,
|
|
PaginatedResponse,
|
|
UpdateTransactionRequest,
|
|
} from '@family-budget/shared';
|
|
import { api } from './client';
|
|
|
|
export async function getTransactions(
|
|
params: GetTransactionsParams,
|
|
): Promise<PaginatedResponse<Transaction>> {
|
|
const sp = new URLSearchParams();
|
|
for (const [key, value] of Object.entries(params)) {
|
|
if (value != null && value !== '') {
|
|
sp.set(key, String(value));
|
|
}
|
|
}
|
|
const qs = sp.toString();
|
|
return api.get(`/api/transactions${qs ? `?${qs}` : ''}`);
|
|
}
|
|
|
|
export async function updateTransaction(
|
|
id: number,
|
|
data: UpdateTransactionRequest,
|
|
): Promise<Transaction> {
|
|
return api.put<Transaction>(`/api/transactions/${id}`, data);
|
|
}
|
|
|
|
export async function clearAllTransactions(): Promise<{ deleted: number }> {
|
|
return api.delete<{ deleted: number }>('/api/transactions');
|
|
}
|