pull/11/head
Dan Gowans 2025-04-25 11:42:02 -04:00
parent e09d1ddb5d
commit eada41aaaa
6 changed files with 17 additions and 20 deletions

View File

@ -25,6 +25,6 @@ export interface GetContractsOptions {
includeTransactions: boolean; includeTransactions: boolean;
} }
export default function getContracts(filters: GetContractsFilters, options: GetContractsOptions, connectedDatabase?: sqlite.Database): Promise<{ export default function getContracts(filters: GetContractsFilters, options: GetContractsOptions, connectedDatabase?: sqlite.Database): Promise<{
count: number;
contracts: Contract[]; contracts: Contract[];
count: number;
}>; }>;

View File

@ -11,7 +11,7 @@ export default async function getContracts(filters, options, connectedDatabase)
const database = connectedDatabase ?? sqlite(sunriseDB); const database = connectedDatabase ?? sqlite(sunriseDB);
database.function('userFn_dateIntegerToString', dateIntegerToString); database.function('userFn_dateIntegerToString', dateIntegerToString);
database.function('userFn_timeIntegerToString', timeIntegerToString); database.function('userFn_timeIntegerToString', timeIntegerToString);
const { sqlWhereClause, sqlParameters } = buildWhereClause(filters); const { sqlParameters, sqlWhereClause } = buildWhereClause(filters);
let count = typeof options.limit === 'string' let count = typeof options.limit === 'string'
? Number.parseInt(options.limit, 10) ? Number.parseInt(options.limit, 10)
: options.limit; : options.limit;
@ -76,8 +76,8 @@ export default async function getContracts(filters, options, connectedDatabase)
database.close(); database.close();
} }
return { return {
count, contracts,
contracts count
}; };
} }
async function addInclusions(contract, options, database) { async function addInclusions(contract, options, database) {

View File

@ -55,13 +55,13 @@ export default async function getContracts(
filters: GetContractsFilters, filters: GetContractsFilters,
options: GetContractsOptions, options: GetContractsOptions,
connectedDatabase?: sqlite.Database connectedDatabase?: sqlite.Database
): Promise<{ count: number; contracts: Contract[] }> { ): Promise<{ contracts: Contract[]; count: number }> {
const database = connectedDatabase ?? sqlite(sunriseDB) const database = connectedDatabase ?? sqlite(sunriseDB)
database.function('userFn_dateIntegerToString', dateIntegerToString) database.function('userFn_dateIntegerToString', dateIntegerToString)
database.function('userFn_timeIntegerToString', timeIntegerToString) database.function('userFn_timeIntegerToString', timeIntegerToString)
const { sqlWhereClause, sqlParameters } = buildWhereClause(filters) const { sqlParameters, sqlWhereClause } = buildWhereClause(filters)
let count = let count =
typeof options.limit === 'string' typeof options.limit === 'string'
@ -148,8 +148,8 @@ export default async function getContracts(
} }
return { return {
count, contracts,
contracts count
} }
} }

View File

@ -3,15 +3,15 @@ export default async function handler(request, response) {
const result = await getContracts(request.body, { const result = await getContracts(request.body, {
limit: request.body.limit, limit: request.body.limit,
offset: request.body.offset, offset: request.body.offset,
includeInterments: true,
includeFees: true, includeFees: true,
includeInterments: true,
includeTransactions: true includeTransactions: true
}); });
response.json({ response.json({
contracts: result.contracts,
count: result.count, count: result.count,
offset: typeof request.body.offset === 'string' offset: typeof request.body.offset === 'string'
? Number.parseInt(request.body.offset, 10) ? Number.parseInt(request.body.offset, 10)
: request.body.offset, : request.body.offset
contracts: result.contracts
}); });
} }

View File

@ -6,27 +6,24 @@ import getContracts, {
} from '../../database/getContracts.js' } from '../../database/getContracts.js'
export default async function handler( export default async function handler(
request: Request< request: Request<unknown, unknown, GetContractsFilters & GetContractsOptions>,
unknown,
unknown,
GetContractsFilters & GetContractsOptions
>,
response: Response response: Response
): Promise<void> { ): Promise<void> {
const result = await getContracts(request.body, { const result = await getContracts(request.body, {
limit: request.body.limit, limit: request.body.limit,
offset: request.body.offset, offset: request.body.offset,
includeInterments: true,
includeFees: true, includeFees: true,
includeInterments: true,
includeTransactions: true includeTransactions: true
}) })
response.json({ response.json({
contracts: result.contracts,
count: result.count, count: result.count,
offset: offset:
typeof request.body.offset === 'string' typeof request.body.offset === 'string'
? Number.parseInt(request.body.offset, 10) ? Number.parseInt(request.body.offset, 10)
: request.body.offset, : request.body.offset
contracts: result.contracts
}) })
} }

View File

@ -135,7 +135,7 @@
</div> </div>
<div> <div>
<h2 class="title is-5 mb-0"> <h2 class="title is-5 mb-0">
Current Contract By Cemetery Current Contracts By Cemetery
</h2> </h2>
<div class="field has-addons mt-2"> <div class="field has-addons mt-2">
<div class="control"> <div class="control">