added api logic, vitest, minimal testing ui
This commit is contained in:
20
web/src/api/transactions.ts
Normal file
20
web/src/api/transactions.ts
Normal file
@@ -0,0 +1,20 @@
|
||||
import { request } from "./client";
|
||||
import { TransactionsList, type TransactionsListT } from "./schemas";
|
||||
|
||||
export type TxQuery = {
|
||||
from?: string; // YYYY-MM-DD
|
||||
to?: string; // YYYY-MM-DD
|
||||
kind?: "variable_spend" | "fixed_payment";
|
||||
q?: string;
|
||||
page?: number; // 1-based
|
||||
limit?: number; // default 20
|
||||
};
|
||||
|
||||
export async function listTransactions(params: TxQuery): Promise<TransactionsListT> {
|
||||
const u = new URL("/api/transactions", location.origin);
|
||||
for (const [k, v] of Object.entries(params)) {
|
||||
if (v !== undefined && v !== "") u.searchParams.set(k, String(v));
|
||||
}
|
||||
const data = await request<unknown>(u.pathname + "?" + u.searchParams.toString());
|
||||
return TransactionsList.parse(data);
|
||||
}
|
||||
Reference in New Issue
Block a user