feat: creats frontend for the project

This commit is contained in:
vakabunga
2026-03-02 00:33:09 +03:00
parent 4d67636633
commit cd56e2bf9d
37 changed files with 3762 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
import type {
AnalyticsSummaryParams,
AnalyticsSummaryResponse,
ByCategoryParams,
ByCategoryItem,
TimeseriesParams,
TimeseriesItem,
} from '@family-budget/shared';
import { api } from './client';
function toQuery(params: object): string {
const sp = new URLSearchParams();
for (const [key, value] of Object.entries(params) as [string, unknown][]) {
if (value != null && value !== '') {
sp.set(key, String(value));
}
}
const qs = sp.toString();
return qs ? `?${qs}` : '';
}
export async function getSummary(
params: AnalyticsSummaryParams,
): Promise<AnalyticsSummaryResponse> {
return api.get(`/api/analytics/summary${toQuery(params)}`);
}
export async function getByCategory(
params: ByCategoryParams,
): Promise<ByCategoryItem[]> {
return api.get(`/api/analytics/by-category${toQuery(params)}`);
}
export async function getTimeseries(
params: TimeseriesParams,
): Promise<TimeseriesItem[]> {
return api.get(`/api/analytics/timeseries${toQuery(params)}`);
}