diff --git a/apps/api/v1/routes/transactions.ts b/apps/api/v1/routes/transactions.ts index 75a24e9e..3fcb2372 100644 --- a/apps/api/v1/routes/transactions.ts +++ b/apps/api/v1/routes/transactions.ts @@ -26,10 +26,10 @@ const router = new Hono() z.object({ wallet_id: z.string().optional(), budget_id: z.string().optional(), - before: z.date().optional(), - after: z.date().optional(), - first: z.number().optional(), - last: z.number().optional(), + before: z.date({ coerce: true }).optional(), + after: z.date({ coerce: true }).optional(), + first: z.number({ coerce: true }).optional(), + last: z.number({ coerce: true }).optional(), }), ), async (c) => { diff --git a/apps/api/v1/services/transaction.service.ts b/apps/api/v1/services/transaction.service.ts index 165bdb7d..2781b74f 100644 --- a/apps/api/v1/services/transaction.service.ts +++ b/apps/api/v1/services/transaction.service.ts @@ -170,7 +170,7 @@ export async function listTransactions({ const transactions = await prisma.transaction.findMany({ where: { ...query, - createdAt: { + date: { ...(pagination.before && { lt: pagination.before, }), @@ -180,9 +180,12 @@ export async function listTransactions({ }, }, orderBy: { - createdAt: 'desc', + date: 'desc', }, take: pagination.first || pagination.last, + include: { + category: true, + }, }) const totalCount = await prisma.transaction.count({ @@ -193,10 +196,10 @@ export async function listTransactions({ hasMore: transactions.length > (pagination.first || pagination.last || 0), totalCount, ...(pagination.first && { - before: transactions[0]?.createdAt, + before: transactions[0]?.date, }), ...(pagination.last && { - after: transactions[transactions.length - 1]?.createdAt, + after: transactions[transactions.length - 1]?.date, }), } diff --git a/apps/mobile/mutations/transaction.ts b/apps/mobile/mutations/transaction.ts index 198e4db7..622821fe 100644 --- a/apps/mobile/mutations/transaction.ts +++ b/apps/mobile/mutations/transaction.ts @@ -5,7 +5,10 @@ import { z } from 'zod' export async function createTransaction(data: TransactionFormValues) { const hc = await getHonoClient() const result = await hc.v1.transactions.$post({ - json: data, + json: { + ...data, + amount: -data.amount, + }, }) if (result.ok) {