36 lines
908 B
TypeScript
36 lines
908 B
TypeScript
import { getQuery } from 'h3';
|
|
import {
|
|
fetchTransactions,
|
|
type TransactionStatus,
|
|
} from '~/utils/finance-repository';
|
|
import { useResponseSuccess } from '~/utils/response';
|
|
|
|
const DEFAULT_STATUSES: TransactionStatus[] = [
|
|
'draft',
|
|
'pending',
|
|
'approved',
|
|
'rejected',
|
|
'paid',
|
|
];
|
|
|
|
export default defineEventHandler(async (event) => {
|
|
const query = getQuery(event);
|
|
const includeDeleted = query.includeDeleted === 'true';
|
|
const type = query.type as string | undefined;
|
|
const rawStatuses = (query.statuses ?? query.status) as string | undefined;
|
|
const statuses = rawStatuses
|
|
? (rawStatuses
|
|
.split(',')
|
|
.map((item) => item.trim())
|
|
.filter((item) => item.length > 0) as TransactionStatus[])
|
|
: DEFAULT_STATUSES;
|
|
|
|
const reimbursements = fetchTransactions({
|
|
includeDeleted,
|
|
type,
|
|
statuses,
|
|
});
|
|
|
|
return useResponseSuccess(reimbursements);
|
|
});
|