From 8b4a7c993739f44a3b9ce26ffdcad19b29bc20e2 Mon Sep 17 00:00:00 2001 From: Dan Gowans Date: Mon, 11 Dec 2023 14:49:59 -0500 Subject: [PATCH] code cleanup --- README.md | 1 + database/getFee.d.ts | 4 +- database/getFee.ts | 9 +- database/getFeeCategories.d.ts | 4 +- database/getFeeCategories.js | 2 +- database/getFeeCategories.ts | 9 +- database/getFees.d.ts | 4 +- database/getFees.ts | 10 +-- database/getLot.d.ts | 6 +- database/getLot.js | 4 +- database/getLot.ts | 19 ++-- database/getLotComments.d.ts | 4 +- database/getLotComments.js | 2 +- database/getLotComments.ts | 17 ++-- database/getLotFields.d.ts | 4 +- database/getLotFields.ts | 9 +- database/getLotOccupancies.d.ts | 4 +- database/getLotOccupancies.js | 10 +-- database/getLotOccupancies.ts | 30 +++---- database/getLotOccupancy.d.ts | 4 +- database/getLotOccupancy.js | 6 +- database/getLotOccupancy.ts | 15 ++-- database/getLotOccupancyComments.d.ts | 4 +- database/getLotOccupancyComments.js | 2 +- database/getLotOccupancyComments.ts | 17 ++-- database/getLotOccupancyFees.d.ts | 4 +- database/getLotOccupancyFees.ts | 9 +- database/getLotOccupancyFields.d.ts | 4 +- database/getLotOccupancyFields.ts | 14 ++- database/getLotOccupancyOccupants.d.ts | 4 +- database/getLotOccupancyOccupants.ts | 9 +- database/getLotOccupancyTransactions.d.ts | 4 +- database/getLotOccupancyTransactions.js | 4 +- database/getLotOccupancyTransactions.ts | 13 ++- database/getLotOccupantTypes.d.ts | 4 +- database/getLotOccupantTypes.ts | 11 +-- database/getLotStatusSummary.d.ts | 4 +- database/getLotStatusSummary.ts | 6 +- database/getLotStatuses.d.ts | 4 +- database/getLotStatuses.ts | 9 +- database/getLotTypeFields.d.ts | 4 +- database/getLotTypeFields.ts | 9 +- database/getLotTypeSummary.d.ts | 4 +- database/getLotTypeSummary.ts | 6 +- database/getLotTypes.d.ts | 4 +- database/getLotTypes.js | 2 +- database/getLotTypes.ts | 9 +- database/getLots.d.ts | 4 +- database/getLots.js | 2 +- database/getLots.ts | 17 ++-- database/getMap.js | 2 +- database/getMap.ts | 2 +- database/getNextLotId.js | 2 +- database/getNextLotId.ts | 4 +- database/getNextWorkOrderNumber.js | 2 +- database/getNextWorkOrderNumber.ts | 3 +- database/getOccupancyTypeFields.d.ts | 4 +- database/getOccupancyTypeFields.ts | 11 +-- database/getOccupancyTypePrints.js | 2 +- database/getOccupancyTypePrints.ts | 3 +- database/getOccupancyTypes.d.ts | 4 +- database/getOccupancyTypes.js | 2 +- database/getOccupancyTypes.ts | 13 +-- database/getPastLotOccupancyOccupants.d.ts | 4 +- database/getPastLotOccupancyOccupants.ts | 8 +- database/getPreviousLotId.js | 2 +- database/getPreviousLotId.ts | 4 +- database/getReportData.js | 62 ++++++------- database/getReportData.ts | 65 +++++++------- database/getWorkOrder.d.ts | 6 +- database/getWorkOrder.js | 4 +- database/getWorkOrder.ts | 22 ++--- database/getWorkOrderComments.d.ts | 4 +- database/getWorkOrderComments.js | 2 +- database/getWorkOrderComments.ts | 17 ++-- database/getWorkOrderMilestoneTypes.d.ts | 4 +- database/getWorkOrderMilestoneTypes.ts | 14 +-- database/getWorkOrderMilestones.d.ts | 4 +- database/getWorkOrderMilestones.js | 56 ++++++------ database/getWorkOrderMilestones.ts | 70 ++++++++------- database/getWorkOrderTypes.d.ts | 4 +- database/getWorkOrderTypes.ts | 12 ++- database/getWorkOrders.d.ts | 4 +- database/getWorkOrders.js | 10 +-- database/getWorkOrders.ts | 28 +++--- database/moveFee.js | 2 +- database/moveFee.ts | 3 +- database/moveLotTypeField.js | 19 ++-- database/moveLotTypeField.ts | 21 +++-- database/moveOccupancyTypeField.js | 79 ++++++++-------- database/moveOccupancyTypeField.ts | 91 ++++++++++--------- database/moveOccupancyTypePrintDown.js | 2 +- database/moveOccupancyTypePrintDown.ts | 4 +- database/moveOccupancyTypePrintUp.js | 2 +- database/moveOccupancyTypePrintUp.ts | 4 +- database/moveRecord.js | 2 +- database/moveRecord.ts | 3 +- database/pool.js | 7 +- database/pool.ts | 8 +- database/updateLot.js | 4 +- database/updateLot.ts | 4 +- database/updateLotOccupancy.js | 2 +- database/updateLotOccupancy.ts | 2 +- handlers/api-get/milestoneICS.js | 89 ++++++++---------- handlers/api-get/milestoneICS.ts | 100 ++++++++++----------- types/recordTypes.d.ts | 4 +- types/recordTypes.ts | 4 +- 107 files changed, 622 insertions(+), 658 deletions(-) diff --git a/README.md b/README.md index 60db825f..fc393b30 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ # Lot Occupancy System +[![DeepSource](https://app.deepsource.com/gh/cityssm/lot-occupancy-system.svg/?label=active+issues&show_trend=true&token=8rYoZ1g7FoZHstfQmOzvlBn7)](https://app.deepsource.com/gh/cityssm/lot-occupancy-system/) [![Maintainability](https://api.codeclimate.com/v1/badges/11a8975b332f66e6eec7/maintainability)](https://codeclimate.com/github/cityssm/lot-occupancy-system/maintainability) [![codecov](https://codecov.io/gh/cityssm/lot-occupancy-system/branch/main/graph/badge.svg?token=1M38ZVCLKE)](https://codecov.io/gh/cityssm/lot-occupancy-system) [![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/cityssm/lot-occupancy-system/coverage.yml?branch=main)](https://github.com/cityssm/lot-occupancy-system/actions/workflows/coverage.yml) diff --git a/database/getFee.d.ts b/database/getFee.d.ts index dc33cf18..1f5e3c25 100644 --- a/database/getFee.d.ts +++ b/database/getFee.d.ts @@ -1,4 +1,4 @@ import type { PoolConnection } from 'better-sqlite-pool'; -import type * as recordTypes from '../types/recordTypes.js'; -export declare function getFee(feeId: number | string, connectedDatabase?: PoolConnection): Promise; +import type { Fee } from '../types/recordTypes.js'; +export declare function getFee(feeId: number | string, connectedDatabase?: PoolConnection): Promise; export default getFee; diff --git a/database/getFee.ts b/database/getFee.ts index 639bdedd..6f675fa9 100644 --- a/database/getFee.ts +++ b/database/getFee.ts @@ -1,12 +1,13 @@ -import { acquireConnection } from './pool.js' import type { PoolConnection } from 'better-sqlite-pool' -import type * as recordTypes from '../types/recordTypes.js' +import type { Fee } from '../types/recordTypes.js' + +import { acquireConnection } from './pool.js' export async function getFee( feeId: number | string, connectedDatabase?: PoolConnection -): Promise { +): Promise { const database = connectedDatabase ?? (await acquireConnection()) const fee = database @@ -27,7 +28,7 @@ export async function getFee( where f.recordDelete_timeMillis is null and f.feeId = ?` ) - .get(feeId) as recordTypes.Fee + .get(feeId) as Fee | undefined if (connectedDatabase === undefined) { database.release() diff --git a/database/getFeeCategories.d.ts b/database/getFeeCategories.d.ts index 47c673f6..42e3ae16 100644 --- a/database/getFeeCategories.d.ts +++ b/database/getFeeCategories.d.ts @@ -1,4 +1,4 @@ -import type * as recordTypes from '../types/recordTypes.js'; +import type { FeeCategory } from '../types/recordTypes.js'; interface GetFeeCategoriesFilters { occupancyTypeId?: number | string; lotTypeId?: number | string; @@ -6,5 +6,5 @@ interface GetFeeCategoriesFilters { interface GetFeeCategoriesOptions { includeFees?: boolean; } -export declare function getFeeCategories(filters: GetFeeCategoriesFilters, options: GetFeeCategoriesOptions): Promise; +export declare function getFeeCategories(filters: GetFeeCategoriesFilters, options: GetFeeCategoriesOptions): Promise; export default getFeeCategories; diff --git a/database/getFeeCategories.js b/database/getFeeCategories.js index 651a485b..713992e3 100644 --- a/database/getFeeCategories.js +++ b/database/getFeeCategories.js @@ -1,5 +1,5 @@ -import { acquireConnection } from './pool.js'; import { getFees } from './getFees.js'; +import { acquireConnection } from './pool.js'; import { updateRecordOrderNumber } from './updateRecordOrderNumber.js'; export async function getFeeCategories(filters, options) { const updateOrderNumbers = !(filters.lotTypeId || filters.occupancyTypeId) && options.includeFees; diff --git a/database/getFeeCategories.ts b/database/getFeeCategories.ts index 8946fde8..8c60b4de 100644 --- a/database/getFeeCategories.ts +++ b/database/getFeeCategories.ts @@ -1,10 +1,9 @@ -import { acquireConnection } from './pool.js' +import type { FeeCategory } from '../types/recordTypes.js' import { getFees } from './getFees.js' +import { acquireConnection } from './pool.js' import { updateRecordOrderNumber } from './updateRecordOrderNumber.js' -import type * as recordTypes from '../types/recordTypes.js' - interface GetFeeCategoriesFilters { occupancyTypeId?: number | string lotTypeId?: number | string @@ -17,7 +16,7 @@ interface GetFeeCategoriesOptions { export async function getFeeCategories( filters: GetFeeCategoriesFilters, options: GetFeeCategoriesOptions -): Promise { +): Promise { const updateOrderNumbers = !(filters.lotTypeId || filters.occupancyTypeId) && options.includeFees @@ -54,7 +53,7 @@ export async function getFeeCategories( sqlWhereClause + ' order by orderNumber, feeCategory' ) - .all(sqlParameters) as recordTypes.FeeCategory[] + .all(sqlParameters) as FeeCategory[] if (options.includeFees ?? false) { let expectedOrderNumber = 0 diff --git a/database/getFees.d.ts b/database/getFees.d.ts index a1a40a05..9fad94c8 100644 --- a/database/getFees.d.ts +++ b/database/getFees.d.ts @@ -1,8 +1,8 @@ import type { PoolConnection } from 'better-sqlite-pool'; -import type * as recordTypes from '../types/recordTypes.js'; +import type { Fee } from '../types/recordTypes.js'; interface GetFeesFilters { occupancyTypeId?: number | string; lotTypeId?: number | string; } -export declare function getFees(feeCategoryId: number, additionalFilters: GetFeesFilters, connectedDatabase?: PoolConnection): Promise; +export declare function getFees(feeCategoryId: number, additionalFilters: GetFeesFilters, connectedDatabase?: PoolConnection): Promise; export default getFees; diff --git a/database/getFees.ts b/database/getFees.ts index 36a7cc94..7edbee0d 100644 --- a/database/getFees.ts +++ b/database/getFees.ts @@ -1,9 +1,9 @@ -import { acquireConnection } from './pool.js' import type { PoolConnection } from 'better-sqlite-pool' -import { updateRecordOrderNumber } from './updateRecordOrderNumber.js' +import type { Fee } from '../types/recordTypes.js' -import type * as recordTypes from '../types/recordTypes.js' +import { acquireConnection } from './pool.js' +import { updateRecordOrderNumber } from './updateRecordOrderNumber.js' interface GetFeesFilters { occupancyTypeId?: number | string @@ -14,7 +14,7 @@ export async function getFees( feeCategoryId: number, additionalFilters: GetFeesFilters, connectedDatabase?: PoolConnection -): Promise { +): Promise { const updateOrderNumbers = !( additionalFilters.lotTypeId || additionalFilters.occupancyTypeId ) @@ -63,7 +63,7 @@ export async function getFees( ${sqlWhereClause} order by f.orderNumber, f.feeName` ) - .all(sqlParameters) as recordTypes.Fee[] + .all(sqlParameters) as Fee[] if (updateOrderNumbers) { let expectedOrderNumber = 0 diff --git a/database/getLot.d.ts b/database/getLot.d.ts index a3214b1f..8170bc3f 100644 --- a/database/getLot.d.ts +++ b/database/getLot.d.ts @@ -1,4 +1,4 @@ -import type * as recordTypes from '../types/recordTypes.js'; -export declare function getLotByLotName(lotName: string): Promise; -export declare function getLot(lotId: number | string): Promise; +import type { Lot } from '../types/recordTypes.js'; +export declare function getLotByLotName(lotName: string): Promise; +export declare function getLot(lotId: number | string): Promise; export default getLot; diff --git a/database/getLot.js b/database/getLot.js index c7b6efdc..62920b63 100644 --- a/database/getLot.js +++ b/database/getLot.js @@ -1,7 +1,7 @@ -import { acquireConnection } from './pool.js'; -import { getLotFields } from './getLotFields.js'; import { getLotComments } from './getLotComments.js'; +import { getLotFields } from './getLotFields.js'; import { getLotOccupancies } from './getLotOccupancies.js'; +import { acquireConnection } from './pool.js'; const baseSQL = `select l.lotId, l.lotTypeId, t.lotType, l.lotName, l.lotStatusId, s.lotStatus, l.mapId, m.mapName, m.mapSVG, l.mapKey, l.lotLatitude, l.lotLongitude diff --git a/database/getLot.ts b/database/getLot.ts index 57d12899..3b674f87 100644 --- a/database/getLot.ts +++ b/database/getLot.ts @@ -1,12 +1,9 @@ -import { acquireConnection } from './pool.js' - -import { getLotFields } from './getLotFields.js' +import type { Lot } from '../types/recordTypes.js' import { getLotComments } from './getLotComments.js' - +import { getLotFields } from './getLotFields.js' import { getLotOccupancies } from './getLotOccupancies.js' - -import type * as recordTypes from '../types/recordTypes.js' +import { acquireConnection } from './pool.js' const baseSQL = `select l.lotId, l.lotTypeId, t.lotType, l.lotName, l.lotStatusId, s.lotStatus, l.mapId, m.mapName, m.mapSVG, l.mapKey, @@ -20,10 +17,10 @@ const baseSQL = `select l.lotId, l.lotTypeId, t.lotType, l.lotName, l.lotStatusI async function _getLot( sql: string, lotIdOrLotName: number | string -): Promise { +): Promise { const database = await acquireConnection() - const lot = database.prepare(sql).get(lotIdOrLotName) as recordTypes.Lot | undefined + const lot = database.prepare(sql).get(lotIdOrLotName) as Lot | undefined if (lot !== undefined) { const lotOccupancies = await getLotOccupancies( @@ -54,13 +51,11 @@ async function _getLot( export async function getLotByLotName( lotName: string -): Promise { +): Promise { return await _getLot(baseSQL + ' and l.lotName = ?', lotName) } -export async function getLot( - lotId: number | string -): Promise { +export async function getLot(lotId: number | string): Promise { return await _getLot(baseSQL + ' and l.lotId = ?', lotId) } diff --git a/database/getLotComments.d.ts b/database/getLotComments.d.ts index 03c723e8..e6b759a8 100644 --- a/database/getLotComments.d.ts +++ b/database/getLotComments.d.ts @@ -1,4 +1,4 @@ import type { PoolConnection } from 'better-sqlite-pool'; -import type * as recordTypes from '../types/recordTypes.js'; -export declare function getLotComments(lotId: number | string, connectedDatabase?: PoolConnection): Promise; +import type { LotComment } from '../types/recordTypes.js'; +export declare function getLotComments(lotId: number | string, connectedDatabase?: PoolConnection): Promise; export default getLotComments; diff --git a/database/getLotComments.js b/database/getLotComments.js index b0de8d4e..8f8eca12 100644 --- a/database/getLotComments.js +++ b/database/getLotComments.js @@ -1,5 +1,5 @@ -import { acquireConnection } from './pool.js'; import { dateIntegerToString, timeIntegerToString, timeIntegerToPeriodString } from '@cityssm/utils-datetime'; +import { acquireConnection } from './pool.js'; export async function getLotComments(lotId, connectedDatabase) { const database = connectedDatabase ?? (await acquireConnection()); database.function('userFn_dateIntegerToString', dateIntegerToString); diff --git a/database/getLotComments.ts b/database/getLotComments.ts index 8120ca18..3165b984 100644 --- a/database/getLotComments.ts +++ b/database/getLotComments.ts @@ -1,23 +1,26 @@ -import { acquireConnection } from './pool.js' -import type { PoolConnection } from 'better-sqlite-pool' - import { dateIntegerToString, timeIntegerToString, timeIntegerToPeriodString } from '@cityssm/utils-datetime' +import type { PoolConnection } from 'better-sqlite-pool' -import type * as recordTypes from '../types/recordTypes.js' +import type { LotComment } from '../types/recordTypes.js' + +import { acquireConnection } from './pool.js' export async function getLotComments( lotId: number | string, connectedDatabase?: PoolConnection -): Promise { +): Promise { const database = connectedDatabase ?? (await acquireConnection()) database.function('userFn_dateIntegerToString', dateIntegerToString) database.function('userFn_timeIntegerToString', timeIntegerToString) - database.function('userFn_timeIntegerToPeriodString', timeIntegerToPeriodString) + database.function( + 'userFn_timeIntegerToPeriodString', + timeIntegerToPeriodString + ) const lotComments = database .prepare( @@ -33,7 +36,7 @@ export async function getLotComments( and lotId = ? order by lotCommentDate desc, lotCommentTime desc, lotCommentId desc` ) - .all(lotId) as recordTypes.LotComment[] + .all(lotId) as LotComment[] if (connectedDatabase === undefined) { database.release() diff --git a/database/getLotFields.d.ts b/database/getLotFields.d.ts index 63c16e0c..8603a973 100644 --- a/database/getLotFields.d.ts +++ b/database/getLotFields.d.ts @@ -1,4 +1,4 @@ import type { PoolConnection } from 'better-sqlite-pool'; -import type * as recordTypes from '../types/recordTypes.js'; -export declare function getLotFields(lotId: number | string, connectedDatabase?: PoolConnection): Promise; +import type { LotField } from '../types/recordTypes.js'; +export declare function getLotFields(lotId: number | string, connectedDatabase?: PoolConnection): Promise; export default getLotFields; diff --git a/database/getLotFields.ts b/database/getLotFields.ts index fdeead1f..3479dfe5 100644 --- a/database/getLotFields.ts +++ b/database/getLotFields.ts @@ -1,12 +1,13 @@ -import { acquireConnection } from './pool.js' import type { PoolConnection } from 'better-sqlite-pool' -import type * as recordTypes from '../types/recordTypes.js' +import type { LotField } from '../types/recordTypes.js' + +import { acquireConnection } from './pool.js' export async function getLotFields( lotId: number | string, connectedDatabase?: PoolConnection -): Promise { +): Promise { const database = connectedDatabase ?? (await acquireConnection()) const lotFields = database @@ -38,7 +39,7 @@ export async function getLotFields( and f.lotTypeFieldId not in (select lotTypeFieldId from LotFields where lotId = ? and recordDelete_timeMillis is null) order by lotTypeOrderNumber, f.orderNumber, f.lotTypeField` ) - .all(lotId, lotId, lotId, lotId) as recordTypes.LotField[] + .all(lotId, lotId, lotId, lotId) as LotField[] if (connectedDatabase === undefined) { database.release() diff --git a/database/getLotOccupancies.d.ts b/database/getLotOccupancies.d.ts index cae71dc7..2f932477 100644 --- a/database/getLotOccupancies.d.ts +++ b/database/getLotOccupancies.d.ts @@ -1,5 +1,5 @@ import type { PoolConnection } from 'better-sqlite-pool'; -import type * as recordTypes from '../types/recordTypes.js'; +import type { LotOccupancy } from '../types/recordTypes.js'; interface GetLotOccupanciesFilters { lotId?: number | string; occupancyTime?: '' | 'past' | 'current' | 'future'; @@ -23,6 +23,6 @@ interface GetLotOccupanciesOptions { } export declare function getLotOccupancies(filters: GetLotOccupanciesFilters, options: GetLotOccupanciesOptions, connectedDatabase?: PoolConnection): Promise<{ count: number; - lotOccupancies: recordTypes.LotOccupancy[]; + lotOccupancies: LotOccupancy[]; }>; export default getLotOccupancies; diff --git a/database/getLotOccupancies.js b/database/getLotOccupancies.js index 66a1aee3..93ee6b71 100644 --- a/database/getLotOccupancies.js +++ b/database/getLotOccupancies.js @@ -1,11 +1,11 @@ -import { acquireConnection } from './pool.js'; import { dateIntegerToString, dateStringToInteger } from '@cityssm/utils-datetime'; -import * as configFunctions from '../helpers/functions.config.js'; import { getOccupancyTypeById } from '../helpers/functions.cache.js'; -import { getLotOccupancyOccupants } from './getLotOccupancyOccupants.js'; -import { getLotOccupancyFees } from './getLotOccupancyFees.js'; -import { getLotOccupancyTransactions } from './getLotOccupancyTransactions.js'; +import * as configFunctions from '../helpers/functions.config.js'; import { getLotNameWhereClause, getOccupancyTimeWhereClause, getOccupantNameWhereClause } from '../helpers/functions.sqlFilters.js'; +import { getLotOccupancyFees } from './getLotOccupancyFees.js'; +import { getLotOccupancyOccupants } from './getLotOccupancyOccupants.js'; +import { getLotOccupancyTransactions } from './getLotOccupancyTransactions.js'; +import { acquireConnection } from './pool.js'; function buildWhereClause(filters) { let sqlWhereClause = ' where o.recordDelete_timeMillis is null'; const sqlParameters = []; diff --git a/database/getLotOccupancies.ts b/database/getLotOccupancies.ts index 1e525ea9..37f1fc18 100644 --- a/database/getLotOccupancies.ts +++ b/database/getLotOccupancies.ts @@ -1,28 +1,22 @@ -/* eslint-disable @typescript-eslint/indent */ - -import { acquireConnection } from './pool.js' -import type { PoolConnection } from 'better-sqlite-pool' - import { dateIntegerToString, dateStringToInteger } from '@cityssm/utils-datetime' - -import * as configFunctions from '../helpers/functions.config.js' +import type { PoolConnection } from 'better-sqlite-pool' import { getOccupancyTypeById } from '../helpers/functions.cache.js' - -import { getLotOccupancyOccupants } from './getLotOccupancyOccupants.js' -import { getLotOccupancyFees } from './getLotOccupancyFees.js' -import { getLotOccupancyTransactions } from './getLotOccupancyTransactions.js' - +import * as configFunctions from '../helpers/functions.config.js' import { getLotNameWhereClause, getOccupancyTimeWhereClause, getOccupantNameWhereClause } from '../helpers/functions.sqlFilters.js' +import type { LotOccupancy } from '../types/recordTypes.js' -import type * as recordTypes from '../types/recordTypes.js' +import { getLotOccupancyFees } from './getLotOccupancyFees.js' +import { getLotOccupancyOccupants } from './getLotOccupancyOccupants.js' +import { getLotOccupancyTransactions } from './getLotOccupancyTransactions.js' +import { acquireConnection } from './pool.js' interface GetLotOccupanciesFilters { lotId?: number | string @@ -136,10 +130,10 @@ function buildWhereClause(filters: GetLotOccupanciesFilters): { } async function addInclusions( - lotOccupancy: recordTypes.LotOccupancy, + lotOccupancy: LotOccupancy, options: GetLotOccupanciesOptions, database: PoolConnection -): Promise { +): Promise { if (options.includeFees) { lotOccupancy.lotOccupancyFees = await getLotOccupancyFees( lotOccupancy.lotOccupancyId!, @@ -169,7 +163,7 @@ export async function getLotOccupancies( filters: GetLotOccupanciesFilters, options: GetLotOccupanciesOptions, connectedDatabase?: PoolConnection -): Promise<{ count: number; lotOccupancies: recordTypes.LotOccupancy[] }> { +): Promise<{ count: number; lotOccupancies: LotOccupancy[] }> { const database = connectedDatabase ?? (await acquireConnection()) database.function('userFn_dateIntegerToString', dateIntegerToString) @@ -193,7 +187,7 @@ export async function getLotOccupancies( ).recordCount } - let lotOccupancies: recordTypes.LotOccupancy[] = [] + let lotOccupancies: LotOccupancy[] = [] if (count !== 0) { lotOccupancies = database @@ -213,7 +207,7 @@ export async function getLotOccupancies( order by o.occupancyStartDate desc, ifnull(o.occupancyEndDate, 99999999) desc, l.lotName, o.lotId, o.lotOccupancyId desc` + (isLimited ? ` limit ${options.limit} offset ${options.offset}` : '') ) - .all(sqlParameters) as recordTypes.LotOccupancy[] + .all(sqlParameters) as LotOccupancy[] if (!isLimited) { count = lotOccupancies.length diff --git a/database/getLotOccupancy.d.ts b/database/getLotOccupancy.d.ts index 2b1b2a54..d3f99d75 100644 --- a/database/getLotOccupancy.d.ts +++ b/database/getLotOccupancy.d.ts @@ -1,4 +1,4 @@ import type { PoolConnection } from 'better-sqlite-pool'; -import type * as recordTypes from '../types/recordTypes.js'; -export declare function getLotOccupancy(lotOccupancyId: number | string, connectedDatabase?: PoolConnection): Promise; +import type { LotOccupancy } from '../types/recordTypes.js'; +export declare function getLotOccupancy(lotOccupancyId: number | string, connectedDatabase?: PoolConnection): Promise; export default getLotOccupancy; diff --git a/database/getLotOccupancy.js b/database/getLotOccupancy.js index 62c843d4..e903ac37 100644 --- a/database/getLotOccupancy.js +++ b/database/getLotOccupancy.js @@ -1,11 +1,11 @@ -import { acquireConnection } from './pool.js'; import { dateIntegerToString } from '@cityssm/utils-datetime'; -import { getLotOccupancyOccupants } from './getLotOccupancyOccupants.js'; import { getLotOccupancyComments } from './getLotOccupancyComments.js'; -import { getLotOccupancyFields } from './getLotOccupancyFields.js'; import { getLotOccupancyFees } from './getLotOccupancyFees.js'; +import { getLotOccupancyFields } from './getLotOccupancyFields.js'; +import { getLotOccupancyOccupants } from './getLotOccupancyOccupants.js'; import { getLotOccupancyTransactions } from './getLotOccupancyTransactions.js'; import { getWorkOrders } from './getWorkOrders.js'; +import { acquireConnection } from './pool.js'; export async function getLotOccupancy(lotOccupancyId, connectedDatabase) { const database = connectedDatabase ?? (await acquireConnection()); database.function('userFn_dateIntegerToString', dateIntegerToString); diff --git a/database/getLotOccupancy.ts b/database/getLotOccupancy.ts index f7ac26ff..2de530ac 100644 --- a/database/getLotOccupancy.ts +++ b/database/getLotOccupancy.ts @@ -1,21 +1,20 @@ -import { acquireConnection } from './pool.js' +import { dateIntegerToString } from '@cityssm/utils-datetime' import type { PoolConnection } from 'better-sqlite-pool' -import { dateIntegerToString } from '@cityssm/utils-datetime' +import type { LotOccupancy } from '../types/recordTypes.js' -import { getLotOccupancyOccupants } from './getLotOccupancyOccupants.js' import { getLotOccupancyComments } from './getLotOccupancyComments.js' -import { getLotOccupancyFields } from './getLotOccupancyFields.js' import { getLotOccupancyFees } from './getLotOccupancyFees.js' +import { getLotOccupancyFields } from './getLotOccupancyFields.js' +import { getLotOccupancyOccupants } from './getLotOccupancyOccupants.js' import { getLotOccupancyTransactions } from './getLotOccupancyTransactions.js' import { getWorkOrders } from './getWorkOrders.js' - -import type * as recordTypes from '../types/recordTypes.js' +import { acquireConnection } from './pool.js' export async function getLotOccupancy( lotOccupancyId: number | string, connectedDatabase?: PoolConnection -): Promise { +): Promise { const database = connectedDatabase ?? (await acquireConnection()) database.function('userFn_dateIntegerToString', dateIntegerToString) @@ -36,7 +35,7 @@ export async function getLotOccupancy( where o.recordDelete_timeMillis is null and o.lotOccupancyId = ?` ) - .get(lotOccupancyId) as recordTypes.LotOccupancy | undefined + .get(lotOccupancyId) as LotOccupancy | undefined if (lotOccupancy !== undefined) { lotOccupancy.lotOccupancyFields = await getLotOccupancyFields( diff --git a/database/getLotOccupancyComments.d.ts b/database/getLotOccupancyComments.d.ts index 157b3711..620c28b5 100644 --- a/database/getLotOccupancyComments.d.ts +++ b/database/getLotOccupancyComments.d.ts @@ -1,4 +1,4 @@ import type { PoolConnection } from 'better-sqlite-pool'; -import type * as recordTypes from '../types/recordTypes.js'; -export declare function getLotOccupancyComments(lotOccupancyId: number | string, connectedDatabase?: PoolConnection): Promise; +import type { LotOccupancyComment } from '../types/recordTypes.js'; +export declare function getLotOccupancyComments(lotOccupancyId: number | string, connectedDatabase?: PoolConnection): Promise; export default getLotOccupancyComments; diff --git a/database/getLotOccupancyComments.js b/database/getLotOccupancyComments.js index 8100aa3b..b66ec3fd 100644 --- a/database/getLotOccupancyComments.js +++ b/database/getLotOccupancyComments.js @@ -1,5 +1,5 @@ -import { acquireConnection } from './pool.js'; import { dateIntegerToString, timeIntegerToString, timeIntegerToPeriodString } from '@cityssm/utils-datetime'; +import { acquireConnection } from './pool.js'; export async function getLotOccupancyComments(lotOccupancyId, connectedDatabase) { const database = connectedDatabase ?? (await acquireConnection()); database.function('userFn_dateIntegerToString', dateIntegerToString); diff --git a/database/getLotOccupancyComments.ts b/database/getLotOccupancyComments.ts index b806be1e..e7a630e9 100644 --- a/database/getLotOccupancyComments.ts +++ b/database/getLotOccupancyComments.ts @@ -1,23 +1,26 @@ -import { acquireConnection } from './pool.js' -import type { PoolConnection } from 'better-sqlite-pool' - import { dateIntegerToString, timeIntegerToString, timeIntegerToPeriodString } from '@cityssm/utils-datetime' +import type { PoolConnection } from 'better-sqlite-pool' -import type * as recordTypes from '../types/recordTypes.js' +import type { LotOccupancyComment } from '../types/recordTypes.js' + +import { acquireConnection } from './pool.js' export async function getLotOccupancyComments( lotOccupancyId: number | string, connectedDatabase?: PoolConnection -): Promise { +): Promise { const database = connectedDatabase ?? (await acquireConnection()) database.function('userFn_dateIntegerToString', dateIntegerToString) database.function('userFn_timeIntegerToString', timeIntegerToString) - database.function('userFn_timeIntegerToPeriodString', timeIntegerToPeriodString) + database.function( + 'userFn_timeIntegerToPeriodString', + timeIntegerToPeriodString + ) const lotComments = database .prepare( @@ -33,7 +36,7 @@ export async function getLotOccupancyComments( and lotOccupancyId = ? order by lotOccupancyCommentDate desc, lotOccupancyCommentTime desc, lotOccupancyCommentId desc` ) - .all(lotOccupancyId) as recordTypes.LotOccupancyComment[] + .all(lotOccupancyId) as LotOccupancyComment[] if (connectedDatabase === null) { database.release() diff --git a/database/getLotOccupancyFees.d.ts b/database/getLotOccupancyFees.d.ts index 30efe82e..8fdda415 100644 --- a/database/getLotOccupancyFees.d.ts +++ b/database/getLotOccupancyFees.d.ts @@ -1,4 +1,4 @@ import type { PoolConnection } from 'better-sqlite-pool'; -import type * as recordTypes from '../types/recordTypes.js'; -export declare function getLotOccupancyFees(lotOccupancyId: number | string, connectedDatabase?: PoolConnection): Promise; +import type { LotOccupancyFee } from '../types/recordTypes.js'; +export declare function getLotOccupancyFees(lotOccupancyId: number | string, connectedDatabase?: PoolConnection): Promise; export default getLotOccupancyFees; diff --git a/database/getLotOccupancyFees.ts b/database/getLotOccupancyFees.ts index d7af227e..d2b913b9 100644 --- a/database/getLotOccupancyFees.ts +++ b/database/getLotOccupancyFees.ts @@ -1,12 +1,13 @@ -import { acquireConnection } from './pool.js' import type { PoolConnection } from 'better-sqlite-pool' -import type * as recordTypes from '../types/recordTypes.js' +import type { LotOccupancyFee } from '../types/recordTypes.js' + +import { acquireConnection } from './pool.js' export async function getLotOccupancyFees( lotOccupancyId: number | string, connectedDatabase?: PoolConnection -): Promise { +): Promise { const database = connectedDatabase ?? (await acquireConnection()) const lotOccupancyFees = database @@ -21,7 +22,7 @@ export async function getLotOccupancyFees( and o.lotOccupancyId = ? order by o.recordCreate_timeMillis` ) - .all(lotOccupancyId) as recordTypes.LotOccupancyFee[] + .all(lotOccupancyId) as LotOccupancyFee[] if (connectedDatabase === undefined) { database.release() diff --git a/database/getLotOccupancyFields.d.ts b/database/getLotOccupancyFields.d.ts index 27298500..cdd4c876 100644 --- a/database/getLotOccupancyFields.d.ts +++ b/database/getLotOccupancyFields.d.ts @@ -1,4 +1,4 @@ import type { PoolConnection } from 'better-sqlite-pool'; -import type * as recordTypes from '../types/recordTypes.js'; -export declare function getLotOccupancyFields(lotOccupancyId: number | string, connectedDatabase?: PoolConnection): Promise; +import type { LotOccupancyField } from '../types/recordTypes.js'; +export declare function getLotOccupancyFields(lotOccupancyId: number | string, connectedDatabase?: PoolConnection): Promise; export default getLotOccupancyFields; diff --git a/database/getLotOccupancyFields.ts b/database/getLotOccupancyFields.ts index 9427cc10..37b76bc7 100644 --- a/database/getLotOccupancyFields.ts +++ b/database/getLotOccupancyFields.ts @@ -1,12 +1,13 @@ -import { acquireConnection } from './pool.js' import type { PoolConnection } from 'better-sqlite-pool' -import type * as recordTypes from '../types/recordTypes.js' +import type { LotOccupancyField } from '../types/recordTypes.js' + +import { acquireConnection } from './pool.js' export async function getLotOccupancyFields( lotOccupancyId: number | string, connectedDatabase?: PoolConnection -): Promise { +): Promise { const database = connectedDatabase ?? (await acquireConnection()) const lotOccupancyFields = database @@ -35,7 +36,12 @@ export async function getLotOccupancyFields( and f.occupancyTypeFieldId not in (select occupancyTypeFieldId from LotOccupancyFields where lotOccupancyId = ? and recordDelete_timeMillis is null) order by occupancyTypeOrderNumber, f.orderNumber, f.occupancyTypeField` ) - .all(lotOccupancyId, lotOccupancyId, lotOccupancyId, lotOccupancyId) as recordTypes.LotOccupancyField[] + .all( + lotOccupancyId, + lotOccupancyId, + lotOccupancyId, + lotOccupancyId + ) as LotOccupancyField[] if (connectedDatabase === undefined) { database.release() diff --git a/database/getLotOccupancyOccupants.d.ts b/database/getLotOccupancyOccupants.d.ts index 8133f9fd..bc380798 100644 --- a/database/getLotOccupancyOccupants.d.ts +++ b/database/getLotOccupancyOccupants.d.ts @@ -1,4 +1,4 @@ import type { PoolConnection } from 'better-sqlite-pool'; -import type * as recordTypes from '../types/recordTypes.js'; -export declare function getLotOccupancyOccupants(lotOccupancyId: number | string, connectedDatabase?: PoolConnection): Promise; +import type { LotOccupancyOccupant } from '../types/recordTypes.js'; +export declare function getLotOccupancyOccupants(lotOccupancyId: number | string, connectedDatabase?: PoolConnection): Promise; export default getLotOccupancyOccupants; diff --git a/database/getLotOccupancyOccupants.ts b/database/getLotOccupancyOccupants.ts index 3ef5fdfe..237fed12 100644 --- a/database/getLotOccupancyOccupants.ts +++ b/database/getLotOccupancyOccupants.ts @@ -1,12 +1,13 @@ -import { acquireConnection } from './pool.js' import type { PoolConnection } from 'better-sqlite-pool' -import type * as recordTypes from '../types/recordTypes.js' +import type { LotOccupancyOccupant } from '../types/recordTypes.js' + +import { acquireConnection } from './pool.js' export async function getLotOccupancyOccupants( lotOccupancyId: number | string, connectedDatabase?: PoolConnection -): Promise { +): Promise { const database = connectedDatabase ?? (await acquireConnection()) const lotOccupancyOccupants = database @@ -25,7 +26,7 @@ export async function getLotOccupancyOccupants( and o.lotOccupancyId = ? order by t.orderNumber, t.lotOccupantType, o.occupantName, o.lotOccupantIndex` ) - .all(lotOccupancyId) as recordTypes.LotOccupancyOccupant[] + .all(lotOccupancyId) as LotOccupancyOccupant[] if (connectedDatabase === undefined) { database.release() diff --git a/database/getLotOccupancyTransactions.d.ts b/database/getLotOccupancyTransactions.d.ts index 6271fff3..515ff3ea 100644 --- a/database/getLotOccupancyTransactions.d.ts +++ b/database/getLotOccupancyTransactions.d.ts @@ -1,6 +1,6 @@ import type { PoolConnection } from 'better-sqlite-pool'; -import type * as recordTypes from '../types/recordTypes.js'; +import type { LotOccupancyTransaction } from '../types/recordTypes.js'; export declare function getLotOccupancyTransactions(lotOccupancyId: number | string, options: { includeIntegrations: boolean; -}, connectedDatabase?: PoolConnection): Promise; +}, connectedDatabase?: PoolConnection): Promise; export default getLotOccupancyTransactions; diff --git a/database/getLotOccupancyTransactions.js b/database/getLotOccupancyTransactions.js index a57cdf8e..9a850ac4 100644 --- a/database/getLotOccupancyTransactions.js +++ b/database/getLotOccupancyTransactions.js @@ -1,7 +1,7 @@ -import { acquireConnection } from './pool.js'; import { dateIntegerToString, timeIntegerToString } from '@cityssm/utils-datetime'; import * as configFunctions from '../helpers/functions.config.js'; import * as gpFunctions from '../helpers/functions.dynamicsGP.js'; +import { acquireConnection } from './pool.js'; export async function getLotOccupancyTransactions(lotOccupancyId, options, connectedDatabase) { const database = connectedDatabase ?? (await acquireConnection()); database.function('userFn_dateIntegerToString', dateIntegerToString); @@ -23,7 +23,7 @@ export async function getLotOccupancyTransactions(lotOccupancyId, options, conne configFunctions.getProperty('settings.dynamicsGP.integrationIsEnabled')) { for (const transaction of lotOccupancyTransactions) { if ((transaction.externalReceiptNumber ?? '') !== '') { - const gpDocument = await gpFunctions.getDynamicsGPDocument(transaction.externalReceiptNumber); + const gpDocument = await gpFunctions.getDynamicsGPDocument(transaction.externalReceiptNumber ?? ''); if (gpDocument !== undefined) { transaction.dynamicsGPDocument = gpDocument; } diff --git a/database/getLotOccupancyTransactions.ts b/database/getLotOccupancyTransactions.ts index a750cc43..6ba6c76f 100644 --- a/database/getLotOccupancyTransactions.ts +++ b/database/getLotOccupancyTransactions.ts @@ -1,15 +1,14 @@ -import { acquireConnection } from './pool.js' -import type { PoolConnection } from 'better-sqlite-pool' - import { dateIntegerToString, timeIntegerToString } from '@cityssm/utils-datetime' +import type { PoolConnection } from 'better-sqlite-pool' import * as configFunctions from '../helpers/functions.config.js' import * as gpFunctions from '../helpers/functions.dynamicsGP.js' +import type { LotOccupancyTransaction } from '../types/recordTypes.js' -import type * as recordTypes from '../types/recordTypes.js' +import { acquireConnection } from './pool.js' export async function getLotOccupancyTransactions( lotOccupancyId: number | string, @@ -17,7 +16,7 @@ export async function getLotOccupancyTransactions( includeIntegrations: boolean }, connectedDatabase?: PoolConnection -): Promise { +): Promise { const database = connectedDatabase ?? (await acquireConnection()) database.function('userFn_dateIntegerToString', dateIntegerToString) @@ -34,7 +33,7 @@ export async function getLotOccupancyTransactions( and lotOccupancyId = ? order by transactionDate, transactionTime, transactionIndex` ) - .all(lotOccupancyId) as recordTypes.LotOccupancyTransaction[] + .all(lotOccupancyId) as LotOccupancyTransaction[] if (connectedDatabase === undefined) { database.release() @@ -47,7 +46,7 @@ export async function getLotOccupancyTransactions( for (const transaction of lotOccupancyTransactions) { if ((transaction.externalReceiptNumber ?? '') !== '') { const gpDocument = await gpFunctions.getDynamicsGPDocument( - transaction.externalReceiptNumber! + transaction.externalReceiptNumber ?? '' ) if (gpDocument !== undefined) { diff --git a/database/getLotOccupantTypes.d.ts b/database/getLotOccupantTypes.d.ts index 34383f3e..7e0814dd 100644 --- a/database/getLotOccupantTypes.d.ts +++ b/database/getLotOccupantTypes.d.ts @@ -1,3 +1,3 @@ -import type * as recordTypes from '../types/recordTypes.js'; -export declare function getLotOccupantTypes(): Promise; +import type { LotOccupantType } from '../types/recordTypes.js'; +export declare function getLotOccupantTypes(): Promise; export default getLotOccupantTypes; diff --git a/database/getLotOccupantTypes.ts b/database/getLotOccupantTypes.ts index 3cc4d91e..09212ccf 100644 --- a/database/getLotOccupantTypes.ts +++ b/database/getLotOccupantTypes.ts @@ -1,14 +1,9 @@ -/* eslint-disable @typescript-eslint/indent */ +import type { LotOccupantType } from '../types/recordTypes.js' import { acquireConnection } from './pool.js' - import { updateRecordOrderNumber } from './updateRecordOrderNumber.js' -import type * as recordTypes from '../types/recordTypes.js' - -export async function getLotOccupantTypes(): Promise< - recordTypes.LotOccupantType[] -> { +export async function getLotOccupantTypes(): Promise { const database = await acquireConnection() const lotOccupantTypes = database @@ -19,7 +14,7 @@ export async function getLotOccupantTypes(): Promise< where recordDelete_timeMillis is null order by orderNumber, lotOccupantType` ) - .all() as recordTypes.LotOccupantType[] + .all() as LotOccupantType[] let expectedOrderNumber = 0 diff --git a/database/getLotStatusSummary.d.ts b/database/getLotStatusSummary.d.ts index 64fc175d..021fd9cd 100644 --- a/database/getLotStatusSummary.d.ts +++ b/database/getLotStatusSummary.d.ts @@ -1,8 +1,8 @@ -import type * as recordTypes from '../types/recordTypes.js'; +import type { LotStatus } from '../types/recordTypes.js'; interface GetFilters { mapId?: number | string; } -interface LotStatusSummary extends recordTypes.LotStatus { +interface LotStatusSummary extends LotStatus { lotCount: number; } export declare function getLotStatusSummary(filters: GetFilters): Promise; diff --git a/database/getLotStatusSummary.ts b/database/getLotStatusSummary.ts index 77640df2..7ea6a51b 100644 --- a/database/getLotStatusSummary.ts +++ b/database/getLotStatusSummary.ts @@ -1,12 +1,12 @@ -import { acquireConnection } from './pool.js' +import type { LotStatus } from '../types/recordTypes.js' -import type * as recordTypes from '../types/recordTypes.js' +import { acquireConnection } from './pool.js' interface GetFilters { mapId?: number | string } -interface LotStatusSummary extends recordTypes.LotStatus { +interface LotStatusSummary extends LotStatus { lotCount: number } diff --git a/database/getLotStatuses.d.ts b/database/getLotStatuses.d.ts index 550ec7ff..cab6da1b 100644 --- a/database/getLotStatuses.d.ts +++ b/database/getLotStatuses.d.ts @@ -1,3 +1,3 @@ -import type * as recordTypes from '../types/recordTypes.js'; -export declare function getLotStatuses(): Promise; +import type { LotStatus } from '../types/recordTypes.js'; +export declare function getLotStatuses(): Promise; export default getLotStatuses; diff --git a/database/getLotStatuses.ts b/database/getLotStatuses.ts index 52e0d4ef..abc1b48b 100644 --- a/database/getLotStatuses.ts +++ b/database/getLotStatuses.ts @@ -1,10 +1,9 @@ -import { acquireConnection } from './pool.js' +import type { LotStatus } from '../types/recordTypes.js' +import { acquireConnection } from './pool.js' import { updateRecordOrderNumber } from './updateRecordOrderNumber.js' -import type * as recordTypes from '../types/recordTypes.js' - -export async function getLotStatuses(): Promise { +export async function getLotStatuses(): Promise { const database = await acquireConnection() const lotStatuses = database @@ -14,7 +13,7 @@ export async function getLotStatuses(): Promise { where recordDelete_timeMillis is null order by orderNumber, lotStatus` ) - .all() as recordTypes.LotStatus[] + .all() as LotStatus[] let expectedOrderNumber = 0 diff --git a/database/getLotTypeFields.d.ts b/database/getLotTypeFields.d.ts index 0a06bee9..80927902 100644 --- a/database/getLotTypeFields.d.ts +++ b/database/getLotTypeFields.d.ts @@ -1,4 +1,4 @@ import type { PoolConnection } from 'better-sqlite-pool'; -import type * as recordTypes from '../types/recordTypes.js'; -export declare function getLotTypeFields(lotTypeId: number, connectedDatabase?: PoolConnection): Promise; +import type { LotTypeField } from '../types/recordTypes.js'; +export declare function getLotTypeFields(lotTypeId: number, connectedDatabase?: PoolConnection): Promise; export default getLotTypeFields; diff --git a/database/getLotTypeFields.ts b/database/getLotTypeFields.ts index fd57881a..9ae14e41 100644 --- a/database/getLotTypeFields.ts +++ b/database/getLotTypeFields.ts @@ -1,13 +1,14 @@ -import { acquireConnection } from './pool.js' import type { PoolConnection } from 'better-sqlite-pool' -import type * as recordTypes from '../types/recordTypes.js' +import type { LotTypeField } from '../types/recordTypes.js' + +import { acquireConnection } from './pool.js' import { updateRecordOrderNumber } from './updateRecordOrderNumber.js' export async function getLotTypeFields( lotTypeId: number, connectedDatabase?: PoolConnection -): Promise { +): Promise { const database = connectedDatabase ?? (await acquireConnection()) const lotTypeFields = database @@ -20,7 +21,7 @@ export async function getLotTypeFields( and lotTypeId = ? order by orderNumber, lotTypeField` ) - .all(lotTypeId) as recordTypes.LotTypeField[] + .all(lotTypeId) as LotTypeField[] let expectedOrderNumber = 0 diff --git a/database/getLotTypeSummary.d.ts b/database/getLotTypeSummary.d.ts index f027fd07..8c189b98 100644 --- a/database/getLotTypeSummary.d.ts +++ b/database/getLotTypeSummary.d.ts @@ -1,8 +1,8 @@ -import type * as recordTypes from '../types/recordTypes.js'; +import type { LotType } from '../types/recordTypes.js'; interface GetFilters { mapId?: number | string; } -interface LotTypeSummary extends recordTypes.LotType { +interface LotTypeSummary extends LotType { lotCount: number; } export declare function getLotTypeSummary(filters: GetFilters): Promise; diff --git a/database/getLotTypeSummary.ts b/database/getLotTypeSummary.ts index 4ef1cb0d..f7091647 100644 --- a/database/getLotTypeSummary.ts +++ b/database/getLotTypeSummary.ts @@ -1,12 +1,12 @@ -import { acquireConnection } from './pool.js' +import type { LotType } from '../types/recordTypes.js' -import type * as recordTypes from '../types/recordTypes.js' +import { acquireConnection } from './pool.js' interface GetFilters { mapId?: number | string } -interface LotTypeSummary extends recordTypes.LotType { +interface LotTypeSummary extends LotType { lotCount: number } diff --git a/database/getLotTypes.d.ts b/database/getLotTypes.d.ts index d5875daf..09d21e41 100644 --- a/database/getLotTypes.d.ts +++ b/database/getLotTypes.d.ts @@ -1,3 +1,3 @@ -import type * as recordTypes from '../types/recordTypes.js'; -export declare function getLotTypes(): Promise; +import type { LotType } from '../types/recordTypes.js'; +export declare function getLotTypes(): Promise; export default getLotTypes; diff --git a/database/getLotTypes.js b/database/getLotTypes.js index f1bad56f..8b34f9ab 100644 --- a/database/getLotTypes.js +++ b/database/getLotTypes.js @@ -1,5 +1,5 @@ -import { acquireConnection } from './pool.js'; import { getLotTypeFields } from './getLotTypeFields.js'; +import { acquireConnection } from './pool.js'; import { updateRecordOrderNumber } from './updateRecordOrderNumber.js'; export async function getLotTypes() { const database = await acquireConnection(); diff --git a/database/getLotTypes.ts b/database/getLotTypes.ts index 10f4b285..08c82ce6 100644 --- a/database/getLotTypes.ts +++ b/database/getLotTypes.ts @@ -1,11 +1,10 @@ -import { acquireConnection } from './pool.js' +import type { LotType } from '../types/recordTypes.js' import { getLotTypeFields } from './getLotTypeFields.js' - -import type * as recordTypes from '../types/recordTypes.js' +import { acquireConnection } from './pool.js' import { updateRecordOrderNumber } from './updateRecordOrderNumber.js' -export async function getLotTypes(): Promise { +export async function getLotTypes(): Promise { const database = await acquireConnection() const lotTypes = database @@ -15,7 +14,7 @@ export async function getLotTypes(): Promise { where recordDelete_timeMillis is null order by orderNumber, lotType` ) - .all() as recordTypes.LotType[] + .all() as LotType[] let expectedTypeOrderNumber = -1 diff --git a/database/getLots.d.ts b/database/getLots.d.ts index 29da2440..beeeba9d 100644 --- a/database/getLots.d.ts +++ b/database/getLots.d.ts @@ -1,5 +1,5 @@ import type { PoolConnection } from 'better-sqlite-pool'; -import type * as recordTypes from '../types/recordTypes.js'; +import type { Lot } from '../types/recordTypes.js'; interface GetLotsFilters { lotNameSearchType?: '' | 'startsWith' | 'endsWith'; lotName?: string; @@ -16,6 +16,6 @@ interface GetLotsOptions { } export declare function getLots(filters: GetLotsFilters, options: GetLotsOptions, connectedDatabase?: PoolConnection): Promise<{ count: number; - lots: recordTypes.Lot[]; + lots: Lot[]; }>; export default getLots; diff --git a/database/getLots.js b/database/getLots.js index c01ef2f6..f417bd36 100644 --- a/database/getLots.js +++ b/database/getLots.js @@ -1,7 +1,7 @@ -import { acquireConnection } from './pool.js'; import { dateToInteger } from '@cityssm/utils-datetime'; import * as configFunctions from '../helpers/functions.config.js'; import { getLotNameWhereClause } from '../helpers/functions.sqlFilters.js'; +import { acquireConnection } from './pool.js'; function buildWhereClause(filters) { let sqlWhereClause = ' where l.recordDelete_timeMillis is null'; const sqlParameters = []; diff --git a/database/getLots.ts b/database/getLots.ts index e301a316..eb93cb81 100644 --- a/database/getLots.ts +++ b/database/getLots.ts @@ -1,14 +1,11 @@ -/* eslint-disable @typescript-eslint/indent */ - -import { acquireConnection } from './pool.js' +import { dateToInteger } from '@cityssm/utils-datetime' import type { PoolConnection } from 'better-sqlite-pool' -import { dateToInteger } from '@cityssm/utils-datetime' - import * as configFunctions from '../helpers/functions.config.js' - -import type * as recordTypes from '../types/recordTypes.js' import { getLotNameWhereClause } from '../helpers/functions.sqlFilters.js' +import type { Lot } from '../types/recordTypes.js' + +import { acquireConnection } from './pool.js' interface GetLotsFilters { lotNameSearchType?: '' | 'startsWith' | 'endsWith' @@ -81,7 +78,7 @@ export async function getLots( filters: GetLotsFilters, options: GetLotsOptions, connectedDatabase?: PoolConnection -): Promise<{ count: number; lots: recordTypes.Lot[] }> { +): Promise<{ count: number; lots: Lot[] }> { const database = connectedDatabase ?? (await acquireConnection()) const { sqlWhereClause, sqlParameters } = buildWhereClause(filters) @@ -109,7 +106,7 @@ export async function getLots( ).recordCount } - let lots: recordTypes.Lot[] = [] + let lots: Lot[] = [] if (options.limit === -1 || count > 0) { const includeLotOccupancyCount = options.includeLotOccupancyCount ?? true @@ -157,7 +154,7 @@ export async function getLots( : ` limit ${options.limit.toString()} offset ${options.offset.toString()}` }` ) - .all(sqlParameters) as recordTypes.Lot[] + .all(sqlParameters) as Lot[] if (options.limit === -1) { count = lots.length diff --git a/database/getMap.js b/database/getMap.js index eaa2be1d..4072727e 100644 --- a/database/getMap.js +++ b/database/getMap.js @@ -13,7 +13,7 @@ export async function getMap(mapId) { from Maps m left join Lots l on m.mapId = l.mapId and l.recordDelete_timeMillis is null where m.mapId = ? - and m.recordDelete_timeMillis is null + and m.recordDelete_timeMillis is null group by m.mapId, m.mapName, m.mapDescription, m.mapLatitude, m.mapLongitude, m.mapSVG, m.mapAddress1, m.mapAddress2, m.mapCity, m.mapProvince, m.mapPostalCode, diff --git a/database/getMap.ts b/database/getMap.ts index 3a4346fd..a13d69b5 100644 --- a/database/getMap.ts +++ b/database/getMap.ts @@ -20,7 +20,7 @@ export async function getMap( from Maps m left join Lots l on m.mapId = l.mapId and l.recordDelete_timeMillis is null where m.mapId = ? - and m.recordDelete_timeMillis is null + and m.recordDelete_timeMillis is null group by m.mapId, m.mapName, m.mapDescription, m.mapLatitude, m.mapLongitude, m.mapSVG, m.mapAddress1, m.mapAddress2, m.mapCity, m.mapProvince, m.mapPostalCode, diff --git a/database/getNextLotId.js b/database/getNextLotId.js index eb4273cc..4066c4ea 100644 --- a/database/getNextLotId.js +++ b/database/getNextLotId.js @@ -1,5 +1,5 @@ -import { acquireConnection } from './pool.js'; import * as configFunctions from '../helpers/functions.config.js'; +import { acquireConnection } from './pool.js'; export async function getNextLotId(lotId) { const database = await acquireConnection(); database.function('userFn_lotNameSortName', configFunctions.getProperty('settings.lot.lotNameSortNameFunction')); diff --git a/database/getNextLotId.ts b/database/getNextLotId.ts index 65db0b7d..05b08910 100644 --- a/database/getNextLotId.ts +++ b/database/getNextLotId.ts @@ -1,7 +1,7 @@ -import { acquireConnection } from './pool.js' - import * as configFunctions from '../helpers/functions.config.js' +import { acquireConnection } from './pool.js' + export async function getNextLotId( lotId: number | string ): Promise { diff --git a/database/getNextWorkOrderNumber.js b/database/getNextWorkOrderNumber.js index 425f1e44..3a75f033 100644 --- a/database/getNextWorkOrderNumber.js +++ b/database/getNextWorkOrderNumber.js @@ -1,5 +1,5 @@ -import { acquireConnection } from './pool.js'; import * as configFunctions from '../helpers/functions.config.js'; +import { acquireConnection } from './pool.js'; export async function getNextWorkOrderNumber(connectedDatabase) { const database = connectedDatabase ?? (await acquireConnection()); const paddingLength = configFunctions.getProperty('settings.workOrders.workOrderNumberLength'); diff --git a/database/getNextWorkOrderNumber.ts b/database/getNextWorkOrderNumber.ts index bba0e278..4f5f2e16 100644 --- a/database/getNextWorkOrderNumber.ts +++ b/database/getNextWorkOrderNumber.ts @@ -1,8 +1,9 @@ -import { acquireConnection } from './pool.js' import type { PoolConnection } from 'better-sqlite-pool' import * as configFunctions from '../helpers/functions.config.js' +import { acquireConnection } from './pool.js' + export async function getNextWorkOrderNumber( connectedDatabase?: PoolConnection ): Promise { diff --git a/database/getOccupancyTypeFields.d.ts b/database/getOccupancyTypeFields.d.ts index bf52cf84..917f3250 100644 --- a/database/getOccupancyTypeFields.d.ts +++ b/database/getOccupancyTypeFields.d.ts @@ -1,4 +1,4 @@ import type { PoolConnection } from 'better-sqlite-pool'; -import type * as recordTypes from '../types/recordTypes.js'; -export declare function getOccupancyTypeFields(occupancyTypeId?: number, connectedDatabase?: PoolConnection): Promise; +import type { OccupancyTypeField } from '../types/recordTypes.js'; +export declare function getOccupancyTypeFields(occupancyTypeId?: number, connectedDatabase?: PoolConnection): Promise; export default getOccupancyTypeFields; diff --git a/database/getOccupancyTypeFields.ts b/database/getOccupancyTypeFields.ts index 825fba43..ecae2252 100644 --- a/database/getOccupancyTypeFields.ts +++ b/database/getOccupancyTypeFields.ts @@ -1,13 +1,14 @@ -import { acquireConnection } from './pool.js' import type { PoolConnection } from 'better-sqlite-pool' -import type * as recordTypes from '../types/recordTypes.js' +import type { OccupancyTypeField } from '../types/recordTypes.js' + +import { acquireConnection } from './pool.js' import { updateRecordOrderNumber } from './updateRecordOrderNumber.js' export async function getOccupancyTypeFields( occupancyTypeId?: number, connectedDatabase?: PoolConnection -): Promise { +): Promise { const database = connectedDatabase ?? (await acquireConnection()) const sqlParameters: unknown[] = [] @@ -29,7 +30,7 @@ export async function getOccupancyTypeFields( : ' and occupancyTypeId = ?') + ' order by orderNumber, occupancyTypeField' ) - .all(sqlParameters) as recordTypes.OccupancyTypeField[] + .all(sqlParameters) as OccupancyTypeField[] let expectedOrderNumber = 0 @@ -37,7 +38,7 @@ export async function getOccupancyTypeFields( if (occupancyTypeField.orderNumber !== expectedOrderNumber) { updateRecordOrderNumber( 'OccupancyTypeFields', - occupancyTypeField.occupancyTypeFieldId!, + occupancyTypeField.occupancyTypeFieldId, expectedOrderNumber, database ) diff --git a/database/getOccupancyTypePrints.js b/database/getOccupancyTypePrints.js index 1fb5b79c..1467332e 100644 --- a/database/getOccupancyTypePrints.js +++ b/database/getOccupancyTypePrints.js @@ -1,5 +1,5 @@ -import { acquireConnection } from './pool.js'; import * as configFunctions from '../helpers/functions.config.js'; +import { acquireConnection } from './pool.js'; const availablePrints = configFunctions.getProperty('settings.lotOccupancy.prints'); const userFunction_configContainsPrintEJS = (printEJS) => { if (printEJS === '*' || availablePrints.includes(printEJS)) { diff --git a/database/getOccupancyTypePrints.ts b/database/getOccupancyTypePrints.ts index 41d53853..76ccd582 100644 --- a/database/getOccupancyTypePrints.ts +++ b/database/getOccupancyTypePrints.ts @@ -1,8 +1,9 @@ -import { acquireConnection } from './pool.js' import type { PoolConnection } from 'better-sqlite-pool' import * as configFunctions from '../helpers/functions.config.js' +import { acquireConnection } from './pool.js' + const availablePrints = configFunctions.getProperty( 'settings.lotOccupancy.prints' ) diff --git a/database/getOccupancyTypes.d.ts b/database/getOccupancyTypes.d.ts index 0d27d8fb..6c40b1fe 100644 --- a/database/getOccupancyTypes.d.ts +++ b/database/getOccupancyTypes.d.ts @@ -1,3 +1,3 @@ -import type * as recordTypes from '../types/recordTypes.js'; -export declare function getOccupancyTypes(): Promise; +import type { OccupancyType } from '../types/recordTypes.js'; +export declare function getOccupancyTypes(): Promise; export default getOccupancyTypes; diff --git a/database/getOccupancyTypes.js b/database/getOccupancyTypes.js index e34a62c7..97511633 100644 --- a/database/getOccupancyTypes.js +++ b/database/getOccupancyTypes.js @@ -1,6 +1,6 @@ -import { acquireConnection } from './pool.js'; import { getOccupancyTypeFields } from './getOccupancyTypeFields.js'; import { getOccupancyTypePrints } from './getOccupancyTypePrints.js'; +import { acquireConnection } from './pool.js'; import { updateRecordOrderNumber } from './updateRecordOrderNumber.js'; export async function getOccupancyTypes() { const database = await acquireConnection(); diff --git a/database/getOccupancyTypes.ts b/database/getOccupancyTypes.ts index 2a36981f..60493adc 100644 --- a/database/getOccupancyTypes.ts +++ b/database/getOccupancyTypes.ts @@ -1,16 +1,11 @@ -/* eslint-disable @typescript-eslint/indent */ - -import { acquireConnection } from './pool.js' +import type { OccupancyType } from '../types/recordTypes.js' import { getOccupancyTypeFields } from './getOccupancyTypeFields.js' import { getOccupancyTypePrints } from './getOccupancyTypePrints.js' - -import type * as recordTypes from '../types/recordTypes.js' +import { acquireConnection } from './pool.js' import { updateRecordOrderNumber } from './updateRecordOrderNumber.js' -export async function getOccupancyTypes(): Promise< - recordTypes.OccupancyType[] -> { +export async function getOccupancyTypes(): Promise { const database = await acquireConnection() const occupancyTypes = database @@ -20,7 +15,7 @@ export async function getOccupancyTypes(): Promise< where recordDelete_timeMillis is null order by orderNumber, occupancyType` ) - .all() as recordTypes.OccupancyType[] + .all() as OccupancyType[] let expectedTypeOrderNumber = -1 diff --git a/database/getPastLotOccupancyOccupants.d.ts b/database/getPastLotOccupancyOccupants.d.ts index e2e075e8..bf02f3ca 100644 --- a/database/getPastLotOccupancyOccupants.d.ts +++ b/database/getPastLotOccupancyOccupants.d.ts @@ -1,9 +1,9 @@ -import type * as recordTypes from '../types/recordTypes.js'; +import type { LotOccupancyOccupant } from '../types/recordTypes.js'; interface GetPastLotOccupancyOccupantsFilters { searchFilter: string; } interface GetPastLotOccupancyOccupantsOptions { limit: number; } -export declare function getPastLotOccupancyOccupants(filters: GetPastLotOccupancyOccupantsFilters, options: GetPastLotOccupancyOccupantsOptions): Promise; +export declare function getPastLotOccupancyOccupants(filters: GetPastLotOccupancyOccupantsFilters, options: GetPastLotOccupancyOccupantsOptions): Promise; export default getPastLotOccupancyOccupants; diff --git a/database/getPastLotOccupancyOccupants.ts b/database/getPastLotOccupancyOccupants.ts index de9655eb..dee65b6d 100644 --- a/database/getPastLotOccupancyOccupants.ts +++ b/database/getPastLotOccupancyOccupants.ts @@ -1,6 +1,6 @@ -import { acquireConnection } from './pool.js' +import type { LotOccupancyOccupant } from '../types/recordTypes.js' -import type * as recordTypes from '../types/recordTypes.js' +import { acquireConnection } from './pool.js' interface GetPastLotOccupancyOccupantsFilters { searchFilter: string @@ -13,7 +13,7 @@ interface GetPastLotOccupancyOccupantsOptions { export async function getPastLotOccupancyOccupants( filters: GetPastLotOccupancyOccupantsFilters, options: GetPastLotOccupancyOccupantsOptions -): Promise { +): Promise { const database = await acquireConnection() let sqlWhereClause = @@ -63,7 +63,7 @@ export async function getPastLotOccupancyOccupants( const lotOccupancyOccupants = database .prepare(sql) - .all(sqlParameters) as recordTypes.LotOccupancyOccupant[] + .all(sqlParameters) as LotOccupancyOccupant[] database.release() diff --git a/database/getPreviousLotId.js b/database/getPreviousLotId.js index 51728e43..10712f2e 100644 --- a/database/getPreviousLotId.js +++ b/database/getPreviousLotId.js @@ -1,5 +1,5 @@ -import { acquireConnection } from './pool.js'; import * as configFunctions from '../helpers/functions.config.js'; +import { acquireConnection } from './pool.js'; export async function getPreviousLotId(lotId) { const database = await acquireConnection(); database.function('userFn_lotNameSortName', configFunctions.getProperty('settings.lot.lotNameSortNameFunction')); diff --git a/database/getPreviousLotId.ts b/database/getPreviousLotId.ts index 019b3d1a..488b8de7 100644 --- a/database/getPreviousLotId.ts +++ b/database/getPreviousLotId.ts @@ -1,7 +1,7 @@ -import { acquireConnection } from './pool.js' - import * as configFunctions from '../helpers/functions.config.js' +import { acquireConnection } from './pool.js' + export async function getPreviousLotId( lotId: number | string ): Promise { diff --git a/database/getReportData.js b/database/getReportData.js index 68a37f40..93e6dc01 100644 --- a/database/getReportData.js +++ b/database/getReportData.js @@ -1,40 +1,40 @@ -import { acquireConnection } from './pool.js'; -import * as configFunctions from '../helpers/functions.config.js'; import * as dateTimeFunctions from '@cityssm/utils-datetime'; import camelCase from 'camelcase'; +import * as configFunctions from '../helpers/functions.config.js'; +import { acquireConnection } from './pool.js'; const mapCamelCase = camelCase(configFunctions.getProperty('aliases.map')); -const mapNameAlias = mapCamelCase + 'Name'; -const mapDescriptionAlias = mapCamelCase + 'Description'; -const mapAddress1Alias = mapCamelCase + 'Address1'; -const mapAddress2Alias = mapCamelCase + 'Address2'; -const mapCityAlias = mapCamelCase + 'City'; -const mapProvinceAlias = mapCamelCase + 'Province'; -const mapPostalCodeAlias = mapCamelCase + 'PostalCode'; -const mapPhoneNumberAlias = mapCamelCase + 'PhoneNumber'; +const mapNameAlias = `${mapCamelCase}Name`; +const mapDescriptionAlias = `${mapCamelCase}Description`; +const mapAddress1Alias = `${mapCamelCase}Address1`; +const mapAddress2Alias = `${mapCamelCase}Address2`; +const mapCityAlias = `${mapCamelCase}City`; +const mapProvinceAlias = `${mapCamelCase}Province`; +const mapPostalCodeAlias = `${mapCamelCase}PostalCode`; +const mapPhoneNumberAlias = `${mapCamelCase}PhoneNumber`; const lotCamelCase = camelCase(configFunctions.getProperty('aliases.lot')); -const lotIdAlias = lotCamelCase + 'Id'; -const lotNameAlias = lotCamelCase + 'Name'; -const lotTypeAlias = lotCamelCase + 'Type'; -const lotStatusAlias = lotCamelCase + 'Status'; +const lotIdAlias = `${lotCamelCase}Id`; +const lotNameAlias = `${lotCamelCase}Name`; +const lotTypeAlias = `${lotCamelCase}Type`; +const lotStatusAlias = `${lotCamelCase}Status`; const occupancyCamelCase = camelCase(configFunctions.getProperty('aliases.occupancy')); -const lotOccupancyIdAlias = occupancyCamelCase + 'Id'; -const occupancyTypeAlias = occupancyCamelCase + 'Type'; -const occupancyStartDateAlias = occupancyCamelCase + 'StartDate'; -const occupancyEndDateAlias = occupancyCamelCase + 'EndDate'; +const lotOccupancyIdAlias = `${occupancyCamelCase}Id`; +const occupancyTypeAlias = `${occupancyCamelCase}Type`; +const occupancyStartDateAlias = `${occupancyCamelCase}StartDate`; +const occupancyEndDateAlias = `${occupancyCamelCase}EndDate`; const occupantCamelCase = camelCase(configFunctions.getProperty('aliases.occupant')); -const lotOccupantIndexAlias = occupantCamelCase + 'Index'; -const lotOccupantTypeAlias = occupantCamelCase + 'Type'; -const occupantNameAlias = occupantCamelCase + 'Name'; -const occupantFamilyNameAlias = occupantCamelCase + 'FamilyName'; -const occupantAddress1Alias = occupantCamelCase + 'Address1'; -const occupantAddress2Alias = occupantCamelCase + 'Address2'; -const occupantCityAlias = occupantCamelCase + 'City'; -const occupantProvinceAlias = occupantCamelCase + 'Province'; -const occupantPostalCodeAlias = occupantCamelCase + 'PostalCode'; -const occupantPhoneNumberAlias = occupantCamelCase + 'PhoneNumber'; -const occupantEmailAddressAlias = occupantCamelCase + 'EmailAddress'; -const occupantCommentTitleAlias = occupantCamelCase + 'CommentTitle'; -const occupantCommentAlias = occupantCamelCase + 'Comment'; +const lotOccupantIndexAlias = `${occupantCamelCase}Index`; +const lotOccupantTypeAlias = `${occupantCamelCase}Type`; +const occupantNameAlias = `${occupantCamelCase}Name`; +const occupantFamilyNameAlias = `${occupantCamelCase}FamilyName`; +const occupantAddress1Alias = `${occupantCamelCase}Address1`; +const occupantAddress2Alias = `${occupantCamelCase}Address2`; +const occupantCityAlias = `${occupantCamelCase}City`; +const occupantProvinceAlias = `${occupantCamelCase}Province`; +const occupantPostalCodeAlias = `${occupantCamelCase}PostalCode`; +const occupantPhoneNumberAlias = `${occupantCamelCase}PhoneNumber`; +const occupantEmailAddressAlias = `${occupantCamelCase}EmailAddress`; +const occupantCommentTitleAlias = `${occupantCamelCase}CommentTitle`; +const occupantCommentAlias = `${occupantCamelCase}Comment`; export async function getReportData(reportName, reportParameters = {}) { let sql; const sqlParameters = []; diff --git a/database/getReportData.ts b/database/getReportData.ts index 751a416b..f8392497 100644 --- a/database/getReportData.ts +++ b/database/getReportData.ts @@ -1,54 +1,55 @@ +// eslint-disable-next-line eslint-comments/disable-enable-pair /* eslint-disable no-case-declarations */ -import { acquireConnection } from './pool.js' +import * as dateTimeFunctions from '@cityssm/utils-datetime' +import camelCase from 'camelcase' import * as configFunctions from '../helpers/functions.config.js' -import * as dateTimeFunctions from '@cityssm/utils-datetime' -import camelCase from 'camelcase' +import { acquireConnection } from './pool.js' export type ReportParameters = Record const mapCamelCase = camelCase(configFunctions.getProperty('aliases.map')) -const mapNameAlias = mapCamelCase + 'Name' -const mapDescriptionAlias = mapCamelCase + 'Description' -const mapAddress1Alias = mapCamelCase + 'Address1' -const mapAddress2Alias = mapCamelCase + 'Address2' -const mapCityAlias = mapCamelCase + 'City' -const mapProvinceAlias = mapCamelCase + 'Province' -const mapPostalCodeAlias = mapCamelCase + 'PostalCode' -const mapPhoneNumberAlias = mapCamelCase + 'PhoneNumber' +const mapNameAlias = `${mapCamelCase}Name` +const mapDescriptionAlias = `${mapCamelCase}Description` +const mapAddress1Alias = `${mapCamelCase}Address1` +const mapAddress2Alias = `${mapCamelCase}Address2` +const mapCityAlias = `${mapCamelCase}City` +const mapProvinceAlias = `${mapCamelCase}Province` +const mapPostalCodeAlias = `${mapCamelCase}PostalCode` +const mapPhoneNumberAlias = `${mapCamelCase}PhoneNumber` const lotCamelCase = camelCase(configFunctions.getProperty('aliases.lot')) -const lotIdAlias = lotCamelCase + 'Id' -const lotNameAlias = lotCamelCase + 'Name' -const lotTypeAlias = lotCamelCase + 'Type' -const lotStatusAlias = lotCamelCase + 'Status' +const lotIdAlias = `${lotCamelCase}Id` +const lotNameAlias = `${lotCamelCase}Name` +const lotTypeAlias = `${lotCamelCase}Type` +const lotStatusAlias = `${lotCamelCase}Status` const occupancyCamelCase = camelCase( configFunctions.getProperty('aliases.occupancy') ) -const lotOccupancyIdAlias = occupancyCamelCase + 'Id' -const occupancyTypeAlias = occupancyCamelCase + 'Type' -const occupancyStartDateAlias = occupancyCamelCase + 'StartDate' -const occupancyEndDateAlias = occupancyCamelCase + 'EndDate' +const lotOccupancyIdAlias = `${occupancyCamelCase}Id` +const occupancyTypeAlias = `${occupancyCamelCase}Type` +const occupancyStartDateAlias = `${occupancyCamelCase}StartDate` +const occupancyEndDateAlias = `${occupancyCamelCase}EndDate` const occupantCamelCase = camelCase( configFunctions.getProperty('aliases.occupant') ) -const lotOccupantIndexAlias = occupantCamelCase + 'Index' -const lotOccupantTypeAlias = occupantCamelCase + 'Type' -const occupantNameAlias = occupantCamelCase + 'Name' -const occupantFamilyNameAlias = occupantCamelCase + 'FamilyName' -const occupantAddress1Alias = occupantCamelCase + 'Address1' -const occupantAddress2Alias = occupantCamelCase + 'Address2' -const occupantCityAlias = occupantCamelCase + 'City' -const occupantProvinceAlias = occupantCamelCase + 'Province' -const occupantPostalCodeAlias = occupantCamelCase + 'PostalCode' -const occupantPhoneNumberAlias = occupantCamelCase + 'PhoneNumber' -const occupantEmailAddressAlias = occupantCamelCase + 'EmailAddress' -const occupantCommentTitleAlias = occupantCamelCase + 'CommentTitle' -const occupantCommentAlias = occupantCamelCase + 'Comment' +const lotOccupantIndexAlias = `${occupantCamelCase}Index` +const lotOccupantTypeAlias = `${occupantCamelCase}Type` +const occupantNameAlias = `${occupantCamelCase}Name` +const occupantFamilyNameAlias = `${occupantCamelCase}FamilyName` +const occupantAddress1Alias = `${occupantCamelCase}Address1` +const occupantAddress2Alias = `${occupantCamelCase}Address2` +const occupantCityAlias = `${occupantCamelCase}City` +const occupantProvinceAlias = `${occupantCamelCase}Province` +const occupantPostalCodeAlias = `${occupantCamelCase}PostalCode` +const occupantPhoneNumberAlias = `${occupantCamelCase}PhoneNumber` +const occupantEmailAddressAlias = `${occupantCamelCase}EmailAddress` +const occupantCommentTitleAlias = `${occupantCamelCase}CommentTitle` +const occupantCommentAlias = `${occupantCamelCase}Comment` export async function getReportData( reportName: string, diff --git a/database/getWorkOrder.d.ts b/database/getWorkOrder.d.ts index 393fba4a..cc810bb3 100644 --- a/database/getWorkOrder.d.ts +++ b/database/getWorkOrder.d.ts @@ -1,10 +1,10 @@ import type { PoolConnection } from 'better-sqlite-pool'; -import type * as recordTypes from '../types/recordTypes.js'; +import type { WorkOrder } from '../types/recordTypes.js'; interface WorkOrderOptions { includeLotsAndLotOccupancies: boolean; includeComments: boolean; includeMilestones: boolean; } -export declare function getWorkOrderByWorkOrderNumber(workOrderNumber: string): Promise; -export declare function getWorkOrder(workOrderId: number | string, options: WorkOrderOptions, connectedDatabase?: PoolConnection): Promise; +export declare function getWorkOrderByWorkOrderNumber(workOrderNumber: string): Promise; +export declare function getWorkOrder(workOrderId: number | string, options: WorkOrderOptions, connectedDatabase?: PoolConnection): Promise; export default getWorkOrder; diff --git a/database/getWorkOrder.js b/database/getWorkOrder.js index 1648da0c..1c9abb0a 100644 --- a/database/getWorkOrder.js +++ b/database/getWorkOrder.js @@ -1,9 +1,9 @@ -import { acquireConnection } from './pool.js'; import { dateIntegerToString } from '@cityssm/utils-datetime'; -import { getLots } from './getLots.js'; import { getLotOccupancies } from './getLotOccupancies.js'; +import { getLots } from './getLots.js'; import { getWorkOrderComments } from './getWorkOrderComments.js'; import { getWorkOrderMilestones } from './getWorkOrderMilestones.js'; +import { acquireConnection } from './pool.js'; const baseSQL = `select w.workOrderId, w.workOrderTypeId, t.workOrderType, w.workOrderNumber, w.workOrderDescription, diff --git a/database/getWorkOrder.ts b/database/getWorkOrder.ts index 06b0d8fd..0adca751 100644 --- a/database/getWorkOrder.ts +++ b/database/getWorkOrder.ts @@ -1,17 +1,13 @@ -import { acquireConnection } from './pool.js' +import { dateIntegerToString } from '@cityssm/utils-datetime' import type { PoolConnection } from 'better-sqlite-pool' -import { dateIntegerToString } from '@cityssm/utils-datetime' - -import { getLots } from './getLots.js' +import type { WorkOrder } from '../types/recordTypes.js' import { getLotOccupancies } from './getLotOccupancies.js' - +import { getLots } from './getLots.js' import { getWorkOrderComments } from './getWorkOrderComments.js' - import { getWorkOrderMilestones } from './getWorkOrderMilestones.js' - -import type * as recordTypes from '../types/recordTypes.js' +import { acquireConnection } from './pool.js' interface WorkOrderOptions { includeLotsAndLotOccupancies: boolean @@ -34,13 +30,13 @@ async function _getWorkOrder( workOrderIdOrWorkOrderNumber: number | string, options: WorkOrderOptions, connectedDatabase?: PoolConnection -): Promise { +): Promise { const database = connectedDatabase ?? (await acquireConnection()) database.function('userFn_dateIntegerToString', dateIntegerToString) const workOrder = database.prepare(sql).get(workOrderIdOrWorkOrderNumber) as - | recordTypes.WorkOrder + | WorkOrder | undefined if (workOrder !== undefined) { @@ -79,7 +75,7 @@ async function _getWorkOrder( if (options.includeComments) { workOrder.workOrderComments = await getWorkOrderComments( - workOrder.workOrderId as number, + workOrder.workOrderId, database ) } @@ -107,7 +103,7 @@ async function _getWorkOrder( export async function getWorkOrderByWorkOrderNumber( workOrderNumber: string -): Promise { +): Promise { return await _getWorkOrder( baseSQL + ' and w.workOrderNumber = ?', workOrderNumber, @@ -123,7 +119,7 @@ export async function getWorkOrder( workOrderId: number | string, options: WorkOrderOptions, connectedDatabase?: PoolConnection -): Promise { +): Promise { return await _getWorkOrder( baseSQL + ' and w.workOrderId = ?', workOrderId, diff --git a/database/getWorkOrderComments.d.ts b/database/getWorkOrderComments.d.ts index 90e99750..4697df99 100644 --- a/database/getWorkOrderComments.d.ts +++ b/database/getWorkOrderComments.d.ts @@ -1,4 +1,4 @@ import type { PoolConnection } from 'better-sqlite-pool'; -import type * as recordTypes from '../types/recordTypes.js'; -export declare function getWorkOrderComments(workOrderId: number | string, connectedDatabase?: PoolConnection): Promise; +import type { WorkOrderComment } from '../types/recordTypes.js'; +export declare function getWorkOrderComments(workOrderId: number | string, connectedDatabase?: PoolConnection): Promise; export default getWorkOrderComments; diff --git a/database/getWorkOrderComments.js b/database/getWorkOrderComments.js index d4725343..95388afa 100644 --- a/database/getWorkOrderComments.js +++ b/database/getWorkOrderComments.js @@ -1,5 +1,5 @@ -import { acquireConnection } from './pool.js'; import { dateIntegerToString, timeIntegerToString, timeIntegerToPeriodString } from '@cityssm/utils-datetime'; +import { acquireConnection } from './pool.js'; export async function getWorkOrderComments(workOrderId, connectedDatabase) { const database = connectedDatabase ?? (await acquireConnection()); database.function('userFn_dateIntegerToString', dateIntegerToString); diff --git a/database/getWorkOrderComments.ts b/database/getWorkOrderComments.ts index 9e2324b8..55beeaea 100644 --- a/database/getWorkOrderComments.ts +++ b/database/getWorkOrderComments.ts @@ -1,23 +1,26 @@ -import { acquireConnection } from './pool.js' -import type { PoolConnection } from 'better-sqlite-pool' - import { dateIntegerToString, timeIntegerToString, timeIntegerToPeriodString } from '@cityssm/utils-datetime' +import type { PoolConnection } from 'better-sqlite-pool' -import type * as recordTypes from '../types/recordTypes.js' +import type { WorkOrderComment } from '../types/recordTypes.js' + +import { acquireConnection } from './pool.js' export async function getWorkOrderComments( workOrderId: number | string, connectedDatabase?: PoolConnection -): Promise { +): Promise { const database = connectedDatabase ?? (await acquireConnection()) database.function('userFn_dateIntegerToString', dateIntegerToString) database.function('userFn_timeIntegerToString', timeIntegerToString) - database.function('userFn_timeIntegerToPeriodString', timeIntegerToPeriodString) + database.function( + 'userFn_timeIntegerToPeriodString', + timeIntegerToPeriodString + ) const workOrderComments = database .prepare( @@ -33,7 +36,7 @@ export async function getWorkOrderComments( and workOrderId = ? order by workOrderCommentDate desc, workOrderCommentTime desc, workOrderCommentId desc` ) - .all(workOrderId) as recordTypes.WorkOrderComment[] + .all(workOrderId) as WorkOrderComment[] if (connectedDatabase === undefined) { database.release() diff --git a/database/getWorkOrderMilestoneTypes.d.ts b/database/getWorkOrderMilestoneTypes.d.ts index b0f8a236..dd4ad088 100644 --- a/database/getWorkOrderMilestoneTypes.d.ts +++ b/database/getWorkOrderMilestoneTypes.d.ts @@ -1,3 +1,3 @@ -import type * as recordTypes from '../types/recordTypes.js'; -export declare function getWorkOrderMilestoneTypes(): Promise; +import type { WorkOrderMilestoneType } from '../types/recordTypes.js'; +export declare function getWorkOrderMilestoneTypes(): Promise; export default getWorkOrderMilestoneTypes; diff --git a/database/getWorkOrderMilestoneTypes.ts b/database/getWorkOrderMilestoneTypes.ts index 2c7e6d3b..72ab2e08 100644 --- a/database/getWorkOrderMilestoneTypes.ts +++ b/database/getWorkOrderMilestoneTypes.ts @@ -1,10 +1,14 @@ -import { acquireConnection } from './pool.js' +// eslint-disable-next-line eslint-comments/disable-enable-pair +/* eslint-disable @typescript-eslint/indent */ +import type { WorkOrderMilestoneType } from '../types/recordTypes.js' + +import { acquireConnection } from './pool.js' import { updateRecordOrderNumber } from './updateRecordOrderNumber.js' -import type * as recordTypes from '../types/recordTypes.js' - -export async function getWorkOrderMilestoneTypes(): Promise { +export async function getWorkOrderMilestoneTypes(): Promise< + WorkOrderMilestoneType[] +> { const database = await acquireConnection() const workOrderMilestoneTypes = database @@ -14,7 +18,7 @@ export async function getWorkOrderMilestoneTypes(): Promise; +export declare function getWorkOrderMilestones(filters: WorkOrderMilestoneFilters, options: WorkOrderMilestoneOptions, connectedDatabase?: PoolConnection): Promise; export default getWorkOrderMilestones; diff --git a/database/getWorkOrderMilestones.js b/database/getWorkOrderMilestones.js index c2484fc3..d4782b1c 100644 --- a/database/getWorkOrderMilestones.js +++ b/database/getWorkOrderMilestones.js @@ -1,8 +1,8 @@ -import { acquireConnection } from './pool.js'; import { dateIntegerToString, dateStringToInteger, dateToInteger, timeIntegerToString, timeIntegerToPeriodString } from '@cityssm/utils-datetime'; import * as configFunctions from '../helpers/functions.config.js'; -import { getLots } from './getLots.js'; import { getLotOccupancies } from './getLotOccupancies.js'; +import { getLots } from './getLots.js'; +import { acquireConnection } from './pool.js'; const commaSeparatedNumbersRegex = /^\d+(,\d+)*$/; function buildWhereClause(filters) { let sqlWhereClause = ' where m.recordDelete_timeMillis is null and w.recordDelete_timeMillis is null'; @@ -86,31 +86,33 @@ export async function getWorkOrderMilestones(filters, options, connectedDatabase break; } } - const sql = 'select m.workOrderMilestoneId,' + - ' m.workOrderMilestoneTypeId, t.workOrderMilestoneType,' + - ' m.workOrderMilestoneDate, userFn_dateIntegerToString(m.workOrderMilestoneDate) as workOrderMilestoneDateString,' + - ' m.workOrderMilestoneTime,' + - ' userFn_timeIntegerToString(m.workOrderMilestoneTime) as workOrderMilestoneTimeString,' + - ' userFn_timeIntegerToPeriodString(m.workOrderMilestoneTime) as workOrderMilestoneTimePeriodString,' + - ' m.workOrderMilestoneDescription,' + - ' m.workOrderMilestoneCompletionDate, userFn_dateIntegerToString(m.workOrderMilestoneCompletionDate) as workOrderMilestoneCompletionDateString,' + - ' m.workOrderMilestoneCompletionTime,' + - ' userFn_timeIntegerToString(m.workOrderMilestoneCompletionTime) as workOrderMilestoneCompletionTimeString,' + - ' userFn_timeIntegerToPeriodString(m.workOrderMilestoneCompletionTime) as workOrderMilestoneCompletionTimePeriodString,' + - (options.includeWorkOrders ?? false - ? ' m.workOrderId, w.workOrderNumber, wt.workOrderType, w.workOrderDescription,' + - ' w.workOrderOpenDate, userFn_dateIntegerToString(w.workOrderOpenDate) as workOrderOpenDateString,' + - ' w.workOrderCloseDate, userFn_dateIntegerToString(w.workOrderCloseDate) as workOrderCloseDateString,' + - ' w.recordUpdate_timeMillis as workOrderRecordUpdate_timeMillis,' - : '') + - ' m.recordCreate_userName, m.recordCreate_timeMillis,' + - ' m.recordUpdate_userName, m.recordUpdate_timeMillis' + - ' from WorkOrderMilestones m' + - ' left join WorkOrderMilestoneTypes t on m.workOrderMilestoneTypeId = t.workOrderMilestoneTypeId' + - ' left join WorkOrders w on m.workOrderId = w.workOrderId' + - ' left join WorkOrderTypes wt on w.workOrderTypeId = wt.workOrderTypeId' + - sqlWhereClause + - orderByClause; + const sql = `select m.workOrderMilestoneId, + m.workOrderMilestoneTypeId, t.workOrderMilestoneType, + m.workOrderMilestoneDate, + userFn_dateIntegerToString(m.workOrderMilestoneDate) as workOrderMilestoneDateString, + m.workOrderMilestoneTime, + userFn_timeIntegerToString(m.workOrderMilestoneTime) as workOrderMilestoneTimeString, + userFn_timeIntegerToPeriodString(m.workOrderMilestoneTime) as workOrderMilestoneTimePeriodString, + m.workOrderMilestoneDescription, + m.workOrderMilestoneCompletionDate, + userFn_dateIntegerToString(m.workOrderMilestoneCompletionDate) as workOrderMilestoneCompletionDateString, + m.workOrderMilestoneCompletionTime, + userFn_timeIntegerToString(m.workOrderMilestoneCompletionTime) as workOrderMilestoneCompletionTimeString, + userFn_timeIntegerToPeriodString(m.workOrderMilestoneCompletionTime) as workOrderMilestoneCompletionTimePeriodString, + ${options.includeWorkOrders ?? false + ? ` m.workOrderId, w.workOrderNumber, wt.workOrderType, w.workOrderDescription, + w.workOrderOpenDate, userFn_dateIntegerToString(w.workOrderOpenDate) as workOrderOpenDateString, + w.workOrderCloseDate, userFn_dateIntegerToString(w.workOrderCloseDate) as workOrderCloseDateString, + w.recordUpdate_timeMillis as workOrderRecordUpdate_timeMillis,` + : ''} + m.recordCreate_userName, m.recordCreate_timeMillis, + m.recordUpdate_userName, m.recordUpdate_timeMillis + from WorkOrderMilestones m + left join WorkOrderMilestoneTypes t on m.workOrderMilestoneTypeId = t.workOrderMilestoneTypeId + left join WorkOrders w on m.workOrderId = w.workOrderId + left join WorkOrderTypes wt on w.workOrderTypeId = wt.workOrderTypeId + ${sqlWhereClause} + ${orderByClause}`; const workOrderMilestones = database .prepare(sql) .all(sqlParameters); diff --git a/database/getWorkOrderMilestones.ts b/database/getWorkOrderMilestones.ts index 84891795..b2bbc04f 100644 --- a/database/getWorkOrderMilestones.ts +++ b/database/getWorkOrderMilestones.ts @@ -1,8 +1,6 @@ +// eslint-disable-next-line eslint-comments/disable-enable-pair /* eslint-disable @typescript-eslint/indent */ -import { acquireConnection } from './pool.js' -import type { PoolConnection } from 'better-sqlite-pool' - import { dateIntegerToString, dateStringToInteger, @@ -10,13 +8,14 @@ import { timeIntegerToString, timeIntegerToPeriodString } from '@cityssm/utils-datetime' +import type { PoolConnection } from 'better-sqlite-pool' import * as configFunctions from '../helpers/functions.config.js' +import type { WorkOrderMilestone } from '../types/recordTypes.js' -import { getLots } from './getLots.js' import { getLotOccupancies } from './getLotOccupancies.js' - -import type * as recordTypes from '../types/recordTypes.js' +import { getLots } from './getLots.js' +import { acquireConnection } from './pool.js' export interface WorkOrderMilestoneFilters { workOrderId?: number | string @@ -136,7 +135,7 @@ export async function getWorkOrderMilestones( filters: WorkOrderMilestoneFilters, options: WorkOrderMilestoneOptions, connectedDatabase?: PoolConnection -): Promise { +): Promise { const database = connectedDatabase ?? (await acquireConnection()) database.function('userFn_dateIntegerToString', dateIntegerToString) @@ -171,36 +170,39 @@ export async function getWorkOrderMilestones( } // Query - const sql = - 'select m.workOrderMilestoneId,' + - ' m.workOrderMilestoneTypeId, t.workOrderMilestoneType,' + - ' m.workOrderMilestoneDate, userFn_dateIntegerToString(m.workOrderMilestoneDate) as workOrderMilestoneDateString,' + - ' m.workOrderMilestoneTime,' + - ' userFn_timeIntegerToString(m.workOrderMilestoneTime) as workOrderMilestoneTimeString,' + - ' userFn_timeIntegerToPeriodString(m.workOrderMilestoneTime) as workOrderMilestoneTimePeriodString,' + - ' m.workOrderMilestoneDescription,' + - ' m.workOrderMilestoneCompletionDate, userFn_dateIntegerToString(m.workOrderMilestoneCompletionDate) as workOrderMilestoneCompletionDateString,' + - ' m.workOrderMilestoneCompletionTime,' + - ' userFn_timeIntegerToString(m.workOrderMilestoneCompletionTime) as workOrderMilestoneCompletionTimeString,' + - ' userFn_timeIntegerToPeriodString(m.workOrderMilestoneCompletionTime) as workOrderMilestoneCompletionTimePeriodString,' + - (options.includeWorkOrders ?? false - ? ' m.workOrderId, w.workOrderNumber, wt.workOrderType, w.workOrderDescription,' + - ' w.workOrderOpenDate, userFn_dateIntegerToString(w.workOrderOpenDate) as workOrderOpenDateString,' + - ' w.workOrderCloseDate, userFn_dateIntegerToString(w.workOrderCloseDate) as workOrderCloseDateString,' + - ' w.recordUpdate_timeMillis as workOrderRecordUpdate_timeMillis,' - : '') + - ' m.recordCreate_userName, m.recordCreate_timeMillis,' + - ' m.recordUpdate_userName, m.recordUpdate_timeMillis' + - ' from WorkOrderMilestones m' + - ' left join WorkOrderMilestoneTypes t on m.workOrderMilestoneTypeId = t.workOrderMilestoneTypeId' + - ' left join WorkOrders w on m.workOrderId = w.workOrderId' + - ' left join WorkOrderTypes wt on w.workOrderTypeId = wt.workOrderTypeId' + - sqlWhereClause + - orderByClause + const sql = `select m.workOrderMilestoneId, + m.workOrderMilestoneTypeId, t.workOrderMilestoneType, + m.workOrderMilestoneDate, + userFn_dateIntegerToString(m.workOrderMilestoneDate) as workOrderMilestoneDateString, + m.workOrderMilestoneTime, + userFn_timeIntegerToString(m.workOrderMilestoneTime) as workOrderMilestoneTimeString, + userFn_timeIntegerToPeriodString(m.workOrderMilestoneTime) as workOrderMilestoneTimePeriodString, + m.workOrderMilestoneDescription, + m.workOrderMilestoneCompletionDate, + userFn_dateIntegerToString(m.workOrderMilestoneCompletionDate) as workOrderMilestoneCompletionDateString, + m.workOrderMilestoneCompletionTime, + userFn_timeIntegerToString(m.workOrderMilestoneCompletionTime) as workOrderMilestoneCompletionTimeString, + userFn_timeIntegerToPeriodString(m.workOrderMilestoneCompletionTime) as workOrderMilestoneCompletionTimePeriodString, + ${ + options.includeWorkOrders ?? false + ? ` m.workOrderId, w.workOrderNumber, wt.workOrderType, w.workOrderDescription, + w.workOrderOpenDate, userFn_dateIntegerToString(w.workOrderOpenDate) as workOrderOpenDateString, + w.workOrderCloseDate, userFn_dateIntegerToString(w.workOrderCloseDate) as workOrderCloseDateString, + w.recordUpdate_timeMillis as workOrderRecordUpdate_timeMillis,` + : '' + } + m.recordCreate_userName, m.recordCreate_timeMillis, + m.recordUpdate_userName, m.recordUpdate_timeMillis + from WorkOrderMilestones m + left join WorkOrderMilestoneTypes t on m.workOrderMilestoneTypeId = t.workOrderMilestoneTypeId + left join WorkOrders w on m.workOrderId = w.workOrderId + left join WorkOrderTypes wt on w.workOrderTypeId = wt.workOrderTypeId + ${sqlWhereClause} + ${orderByClause}` const workOrderMilestones = database .prepare(sql) - .all(sqlParameters) as recordTypes.WorkOrderMilestone[] + .all(sqlParameters) as WorkOrderMilestone[] if (options.includeWorkOrders ?? false) { for (const workOrderMilestone of workOrderMilestones) { diff --git a/database/getWorkOrderTypes.d.ts b/database/getWorkOrderTypes.d.ts index 81a4667e..db095a8d 100644 --- a/database/getWorkOrderTypes.d.ts +++ b/database/getWorkOrderTypes.d.ts @@ -1,3 +1,3 @@ -import type * as recordTypes from '../types/recordTypes.js'; -export declare function getWorkOrderTypes(): Promise; +import type { WorkOrderType } from '../types/recordTypes.js'; +export declare function getWorkOrderTypes(): Promise; export default getWorkOrderTypes; diff --git a/database/getWorkOrderTypes.ts b/database/getWorkOrderTypes.ts index 298356a6..2815579c 100644 --- a/database/getWorkOrderTypes.ts +++ b/database/getWorkOrderTypes.ts @@ -1,14 +1,12 @@ +// eslint-disable-next-line eslint-comments/disable-enable-pair /* eslint-disable @typescript-eslint/indent */ -import { acquireConnection } from './pool.js' +import type { WorkOrderType } from '../types/recordTypes.js' +import { acquireConnection } from './pool.js' import { updateRecordOrderNumber } from './updateRecordOrderNumber.js' -import type * as recordTypes from '../types/recordTypes.js' - -export async function getWorkOrderTypes(): Promise< - recordTypes.WorkOrderType[] -> { +export async function getWorkOrderTypes(): Promise { const database = await acquireConnection() const workOrderTypes = database @@ -18,7 +16,7 @@ export async function getWorkOrderTypes(): Promise< where recordDelete_timeMillis is null order by orderNumber, workOrderType` ) - .all() as recordTypes.WorkOrderType[] + .all() as WorkOrderType[] let expectedOrderNumber = 0 diff --git a/database/getWorkOrders.d.ts b/database/getWorkOrders.d.ts index 84c57d95..4d9fab70 100644 --- a/database/getWorkOrders.d.ts +++ b/database/getWorkOrders.d.ts @@ -1,5 +1,5 @@ import type { PoolConnection } from 'better-sqlite-pool'; -import type * as recordTypes from '../types/recordTypes.js'; +import type { WorkOrder } from '../types/recordTypes.js'; interface GetWorkOrdersFilters { workOrderTypeId?: number | string; workOrderOpenStatus?: '' | 'open' | 'closed'; @@ -17,6 +17,6 @@ interface GetWorkOrdersOptions { } export declare function getWorkOrders(filters: GetWorkOrdersFilters, options: GetWorkOrdersOptions, connectedDatabase?: PoolConnection): Promise<{ count: number; - workOrders: recordTypes.WorkOrder[]; + workOrders: WorkOrder[]; }>; export default getWorkOrders; diff --git a/database/getWorkOrders.js b/database/getWorkOrders.js index d2ee7585..4581e70c 100644 --- a/database/getWorkOrders.js +++ b/database/getWorkOrders.js @@ -1,10 +1,10 @@ -import { acquireConnection } from './pool.js'; import { dateIntegerToString, dateStringToInteger } from '@cityssm/utils-datetime'; -import { getWorkOrderComments } from './getWorkOrderComments.js'; -import { getLots } from './getLots.js'; -import { getLotOccupancies } from './getLotOccupancies.js'; -import { getWorkOrderMilestones } from './getWorkOrderMilestones.js'; import { getLotNameWhereClause, getOccupantNameWhereClause } from '../helpers/functions.sqlFilters.js'; +import { getLotOccupancies } from './getLotOccupancies.js'; +import { getLots } from './getLots.js'; +import { getWorkOrderComments } from './getWorkOrderComments.js'; +import { getWorkOrderMilestones } from './getWorkOrderMilestones.js'; +import { acquireConnection } from './pool.js'; function buildWhereClause(filters) { let sqlWhereClause = ' where w.recordDelete_timeMillis is null'; const sqlParameters = []; diff --git a/database/getWorkOrders.ts b/database/getWorkOrders.ts index 612ca4d5..64a1ca91 100644 --- a/database/getWorkOrders.ts +++ b/database/getWorkOrders.ts @@ -1,23 +1,23 @@ +// eslint-disable-next-line eslint-comments/disable-enable-pair /* eslint-disable @typescript-eslint/indent */ -import { acquireConnection } from './pool.js' -import type { PoolConnection } from 'better-sqlite-pool' - import { dateIntegerToString, dateStringToInteger } from '@cityssm/utils-datetime' +import type { PoolConnection } from 'better-sqlite-pool' -import { getWorkOrderComments } from './getWorkOrderComments.js' -import { getLots } from './getLots.js' -import { getLotOccupancies } from './getLotOccupancies.js' -import { getWorkOrderMilestones } from './getWorkOrderMilestones.js' - -import type * as recordTypes from '../types/recordTypes.js' import { getLotNameWhereClause, getOccupantNameWhereClause } from '../helpers/functions.sqlFilters.js' +import type { WorkOrder } from '../types/recordTypes.js' + +import { getLotOccupancies } from './getLotOccupancies.js' +import { getLots } from './getLots.js' +import { getWorkOrderComments } from './getWorkOrderComments.js' +import { getWorkOrderMilestones } from './getWorkOrderMilestones.js' +import { acquireConnection } from './pool.js' interface GetWorkOrdersFilters { workOrderTypeId?: number | string @@ -100,10 +100,10 @@ function buildWhereClause(filters: GetWorkOrdersFilters): { } async function addInclusions( - workOrder: recordTypes.WorkOrder, + workOrder: WorkOrder, options: GetWorkOrdersOptions, database: PoolConnection -): Promise { +): Promise { if (options.includeComments ?? false) { workOrder.workOrderComments = await getWorkOrderComments( workOrder.workOrderId!, @@ -169,7 +169,7 @@ export async function getWorkOrders( filters: GetWorkOrdersFilters, options: GetWorkOrdersOptions, connectedDatabase?: PoolConnection -): Promise<{ count: number; workOrders: recordTypes.WorkOrder[] }> { +): Promise<{ count: number; workOrders: WorkOrder[] }> { const database = connectedDatabase ?? (await acquireConnection()) database.function('userFn_dateIntegerToString', dateIntegerToString) @@ -186,7 +186,7 @@ export async function getWorkOrders( .get(sqlParameters) as { recordCount: number } ).recordCount - let workOrders: recordTypes.WorkOrder[] = [] + let workOrders: WorkOrder[] = [] if (count > 0) { workOrders = database @@ -221,7 +221,7 @@ export async function getWorkOrders( : ` limit ${options.limit} offset ${options.offset}` }` ) - .all(sqlParameters) as recordTypes.WorkOrder[] + .all(sqlParameters) as WorkOrder[] } const hasInclusions = diff --git a/database/moveFee.js b/database/moveFee.js index 8dd266ea..5cfd66b4 100644 --- a/database/moveFee.js +++ b/database/moveFee.js @@ -1,5 +1,5 @@ -import { acquireConnection } from './pool.js'; import { getFee } from './getFee.js'; +import { acquireConnection } from './pool.js'; import { updateRecordOrderNumber } from './updateRecordOrderNumber.js'; export async function moveFeeDown(feeId) { const database = await acquireConnection(); diff --git a/database/moveFee.ts b/database/moveFee.ts index 03de2c26..dadec48a 100644 --- a/database/moveFee.ts +++ b/database/moveFee.ts @@ -1,6 +1,5 @@ -import { acquireConnection } from './pool.js' - import { getFee } from './getFee.js' +import { acquireConnection } from './pool.js' import { updateRecordOrderNumber } from './updateRecordOrderNumber.js' export async function moveFeeDown(feeId: number | string): Promise { diff --git a/database/moveLotTypeField.js b/database/moveLotTypeField.js index 994b6f65..3faab9e8 100644 --- a/database/moveLotTypeField.js +++ b/database/moveLotTypeField.js @@ -1,11 +1,10 @@ -import { acquireConnection } from './pool.js'; import { clearCacheByTableName } from '../helpers/functions.cache.js'; +import { acquireConnection } from './pool.js'; import { updateRecordOrderNumber } from './updateRecordOrderNumber.js'; function getCurrentField(lotTypeFieldId, connectedDatabase) { - const currentField = connectedDatabase + return connectedDatabase .prepare('select lotTypeId, orderNumber from LotTypeFields where lotTypeFieldId = ?') .get(lotTypeFieldId); - return currentField; } export async function moveLotTypeFieldDown(lotTypeFieldId) { const database = await acquireConnection(); @@ -26,9 +25,9 @@ export async function moveLotTypeFieldDownToBottom(lotTypeFieldId) { const currentField = getCurrentField(lotTypeFieldId, database); const maxOrderNumber = database .prepare(`select max(orderNumber) as maxOrderNumber - from LotTypeFields - where recordDelete_timeMillis is null - and lotTypeId = ?`) + from LotTypeFields + where recordDelete_timeMillis is null + and lotTypeId = ?`) .get(currentField.lotTypeId).maxOrderNumber; if (currentField.orderNumber !== maxOrderNumber) { updateRecordOrderNumber('LotTypeFields', lotTypeFieldId, maxOrderNumber + 1, database); @@ -70,10 +69,10 @@ export async function moveLotTypeFieldUpToTop(lotTypeFieldId) { updateRecordOrderNumber('LotTypeFields', lotTypeFieldId, -1, database); database .prepare(`update LotTypeFields - set orderNumber = orderNumber + 1 - where recordDelete_timeMillis is null - and lotTypeId = ? - and orderNumber < ?`) + set orderNumber = orderNumber + 1 + where recordDelete_timeMillis is null + and lotTypeId = ? + and orderNumber < ?`) .run(currentField.lotTypeId, currentField.orderNumber); } database.release(); diff --git a/database/moveLotTypeField.ts b/database/moveLotTypeField.ts index 4a2e7d38..a98dcfaa 100644 --- a/database/moveLotTypeField.ts +++ b/database/moveLotTypeField.ts @@ -1,20 +1,19 @@ -import { acquireConnection } from './pool.js' import type { PoolConnection } from 'better-sqlite-pool' import { clearCacheByTableName } from '../helpers/functions.cache.js' + +import { acquireConnection } from './pool.js' import { updateRecordOrderNumber } from './updateRecordOrderNumber.js' function getCurrentField( lotTypeFieldId: number | string, connectedDatabase: PoolConnection ): { lotTypeId?: number; orderNumber: number } { - const currentField = connectedDatabase + return connectedDatabase .prepare( 'select lotTypeId, orderNumber from LotTypeFields where lotTypeFieldId = ?' ) .get(lotTypeFieldId) as { lotTypeId?: number; orderNumber: number } - - return currentField } export async function moveLotTypeFieldDown( @@ -58,9 +57,9 @@ export async function moveLotTypeFieldDownToBottom( database .prepare( `select max(orderNumber) as maxOrderNumber - from LotTypeFields - where recordDelete_timeMillis is null - and lotTypeId = ?` + from LotTypeFields + where recordDelete_timeMillis is null + and lotTypeId = ?` ) .get(currentField.lotTypeId) as { maxOrderNumber: number } ).maxOrderNumber @@ -140,10 +139,10 @@ export async function moveLotTypeFieldUpToTop( database .prepare( `update LotTypeFields - set orderNumber = orderNumber + 1 - where recordDelete_timeMillis is null - and lotTypeId = ? - and orderNumber < ?` + set orderNumber = orderNumber + 1 + where recordDelete_timeMillis is null + and lotTypeId = ? + and orderNumber < ?` ) .run(currentField.lotTypeId, currentField.orderNumber) } diff --git a/database/moveOccupancyTypeField.js b/database/moveOccupancyTypeField.js index b73aa22e..d147817b 100644 --- a/database/moveOccupancyTypeField.js +++ b/database/moveOccupancyTypeField.js @@ -1,27 +1,24 @@ -import { acquireConnection } from './pool.js'; import { clearCacheByTableName } from '../helpers/functions.cache.js'; +import { acquireConnection } from './pool.js'; import { updateRecordOrderNumber } from './updateRecordOrderNumber.js'; function getCurrentField(occupancyTypeFieldId, connectedDatabase) { - const currentField = connectedDatabase + return connectedDatabase .prepare(`select occupancyTypeId, orderNumber - from OccupancyTypeFields - where occupancyTypeFieldId = ?`) + from OccupancyTypeFields + where occupancyTypeFieldId = ?`) .get(occupancyTypeFieldId); - return currentField; } export async function moveOccupancyTypeFieldDown(occupancyTypeFieldId) { const database = await acquireConnection(); const currentField = getCurrentField(occupancyTypeFieldId, database); database - .prepare('update OccupancyTypeFields' + - ' set orderNumber = orderNumber - 1' + - ' where recordDelete_timeMillis is null' + - (currentField.occupancyTypeId - ? " and occupancyTypeId = '" + - currentField.occupancyTypeId.toString() + - "'" - : ' and occupancyTypeId is null') + - ' and orderNumber = ? + 1') + .prepare(`update OccupancyTypeFields + set orderNumber = orderNumber - 1 + where recordDelete_timeMillis is null + ${currentField.occupancyTypeId === undefined + ? ' and occupancyTypeId is null' + : ` and occupancyTypeId = '${currentField.occupancyTypeId.toString()}'`} + and orderNumber = ? + 1`) .run(currentField.orderNumber); const success = updateRecordOrderNumber('OccupancyTypeFields', occupancyTypeFieldId, currentField.orderNumber + 1, database); database.release(); @@ -36,24 +33,23 @@ export async function moveOccupancyTypeFieldDownToBottom(occupancyTypeFieldId) { occupancyTypeParameters.push(currentField.occupancyTypeId); } const maxOrderNumber = database - .prepare('select max(orderNumber) as maxOrderNumber' + - ' from OccupancyTypeFields' + - ' where recordDelete_timeMillis is null' + - (currentField.occupancyTypeId - ? ' and occupancyTypeId = ?' - : ' and occupancyTypeId is null')) + .prepare(`select max(orderNumber) as maxOrderNumber + from OccupancyTypeFields + where recordDelete_timeMillis is null + ${currentField.occupancyTypeId === undefined + ? ' and occupancyTypeId is null' + : ' and occupancyTypeId = ?'}`) .get(occupancyTypeParameters).maxOrderNumber; if (currentField.orderNumber !== maxOrderNumber) { updateRecordOrderNumber('OccupancyTypeFields', occupancyTypeFieldId, maxOrderNumber + 1, database); occupancyTypeParameters.push(currentField.orderNumber); database - .prepare('update OccupancyTypeFields' + - ' set orderNumber = orderNumber - 1' + - ' where recordDelete_timeMillis is null' + - (currentField.occupancyTypeId - ? ' and occupancyTypeId = ?' - : ' and occupancyTypeId is null') + - ' and orderNumber > ?') + .prepare(`update OccupancyTypeFields set orderNumber = orderNumber - 1 + where recordDelete_timeMillis is null + ${currentField.occupancyTypeId === undefined + ? ' and occupancyTypeId is null' + : ' and occupancyTypeId = ?'} + and orderNumber > ?`) .run(occupancyTypeParameters); } database.release(); @@ -68,15 +64,13 @@ export async function moveOccupancyTypeFieldUp(occupancyTypeFieldId) { return true; } database - .prepare('update OccupancyTypeFields' + - ' set orderNumber = orderNumber + 1' + - ' where recordDelete_timeMillis is null' + - (currentField.occupancyTypeId - ? " and occupancyTypeId = '" + - currentField.occupancyTypeId.toString() + - "'" - : ' and occupancyTypeId is null') + - ' and orderNumber = ? - 1') + .prepare(`update OccupancyTypeFields + set orderNumber = orderNumber + 1 + where recordDelete_timeMillis is null + ${currentField.occupancyTypeId === undefined + ? ' and occupancyTypeId is null' + : ` and occupancyTypeId = '${currentField.occupancyTypeId.toString()}'`} + and orderNumber = ? - 1`) .run(currentField.orderNumber); const success = updateRecordOrderNumber('OccupancyTypeFields', occupancyTypeFieldId, currentField.orderNumber - 1, database); database.release(); @@ -94,13 +88,12 @@ export async function moveOccupancyTypeFieldUpToTop(occupancyTypeFieldId) { } occupancyTypeParameters.push(currentField.orderNumber); database - .prepare('update OccupancyTypeFields' + - ' set orderNumber = orderNumber + 1' + - ' where recordDelete_timeMillis is null' + - (currentField.occupancyTypeId - ? ' and occupancyTypeId = ?' - : ' and occupancyTypeId is null') + - ' and orderNumber < ?') + .prepare(`update OccupancyTypeFields + set orderNumber = orderNumber + 1 + where recordDelete_timeMillis is null + ${currentField.occupancyTypeId + ? ' and occupancyTypeId = ?' + : ' and occupancyTypeId is null'} and orderNumber < ?`) .run(occupancyTypeParameters); } database.release(); diff --git a/database/moveOccupancyTypeField.ts b/database/moveOccupancyTypeField.ts index 9d8d4031..718ab4de 100644 --- a/database/moveOccupancyTypeField.ts +++ b/database/moveOccupancyTypeField.ts @@ -1,25 +1,24 @@ -import { acquireConnection } from './pool.js' import type { PoolConnection } from 'better-sqlite-pool' import { clearCacheByTableName } from '../helpers/functions.cache.js' + +import { acquireConnection } from './pool.js' import { updateRecordOrderNumber } from './updateRecordOrderNumber.js' function getCurrentField( occupancyTypeFieldId: number, connectedDatabase: PoolConnection ): { occupancyTypeId?: number; orderNumber: number } { - const currentField = connectedDatabase + return connectedDatabase .prepare( `select occupancyTypeId, orderNumber - from OccupancyTypeFields - where occupancyTypeFieldId = ?` + from OccupancyTypeFields + where occupancyTypeFieldId = ?` ) .get(occupancyTypeFieldId) as { occupancyTypeId?: number orderNumber: number } - - return currentField } export async function moveOccupancyTypeFieldDown( @@ -31,15 +30,15 @@ export async function moveOccupancyTypeFieldDown( database .prepare( - 'update OccupancyTypeFields' + - ' set orderNumber = orderNumber - 1' + - ' where recordDelete_timeMillis is null' + - (currentField.occupancyTypeId - ? " and occupancyTypeId = '" + - currentField.occupancyTypeId.toString() + - "'" - : ' and occupancyTypeId is null') + - ' and orderNumber = ? + 1' + `update OccupancyTypeFields + set orderNumber = orderNumber - 1 + where recordDelete_timeMillis is null + ${ + currentField.occupancyTypeId === undefined + ? ' and occupancyTypeId is null' + : ` and occupancyTypeId = '${currentField.occupancyTypeId.toString()}'` + } + and orderNumber = ? + 1` ) .run(currentField.orderNumber) @@ -73,12 +72,14 @@ export async function moveOccupancyTypeFieldDownToBottom( const maxOrderNumber: number = ( database .prepare( - 'select max(orderNumber) as maxOrderNumber' + - ' from OccupancyTypeFields' + - ' where recordDelete_timeMillis is null' + - (currentField.occupancyTypeId - ? ' and occupancyTypeId = ?' - : ' and occupancyTypeId is null') + `select max(orderNumber) as maxOrderNumber + from OccupancyTypeFields + where recordDelete_timeMillis is null + ${ + currentField.occupancyTypeId === undefined + ? ' and occupancyTypeId is null' + : ' and occupancyTypeId = ?' + }` ) .get(occupancyTypeParameters) as { maxOrderNumber: number } ).maxOrderNumber @@ -95,13 +96,14 @@ export async function moveOccupancyTypeFieldDownToBottom( database .prepare( - 'update OccupancyTypeFields' + - ' set orderNumber = orderNumber - 1' + - ' where recordDelete_timeMillis is null' + - (currentField.occupancyTypeId - ? ' and occupancyTypeId = ?' - : ' and occupancyTypeId is null') + - ' and orderNumber > ?' + `update OccupancyTypeFields set orderNumber = orderNumber - 1 + where recordDelete_timeMillis is null + ${ + currentField.occupancyTypeId === undefined + ? ' and occupancyTypeId is null' + : ' and occupancyTypeId = ?' + } + and orderNumber > ?` ) .run(occupancyTypeParameters) } @@ -127,15 +129,15 @@ export async function moveOccupancyTypeFieldUp( database .prepare( - 'update OccupancyTypeFields' + - ' set orderNumber = orderNumber + 1' + - ' where recordDelete_timeMillis is null' + - (currentField.occupancyTypeId - ? " and occupancyTypeId = '" + - currentField.occupancyTypeId.toString() + - "'" - : ' and occupancyTypeId is null') + - ' and orderNumber = ? - 1' + `update OccupancyTypeFields + set orderNumber = orderNumber + 1 + where recordDelete_timeMillis is null + ${ + currentField.occupancyTypeId === undefined + ? ' and occupancyTypeId is null' + : ` and occupancyTypeId = '${currentField.occupancyTypeId.toString()}'` + } + and orderNumber = ? - 1` ) .run(currentField.orderNumber) @@ -178,13 +180,14 @@ export async function moveOccupancyTypeFieldUpToTop( database .prepare( - 'update OccupancyTypeFields' + - ' set orderNumber = orderNumber + 1' + - ' where recordDelete_timeMillis is null' + - (currentField.occupancyTypeId - ? ' and occupancyTypeId = ?' - : ' and occupancyTypeId is null') + - ' and orderNumber < ?' + `update OccupancyTypeFields + set orderNumber = orderNumber + 1 + where recordDelete_timeMillis is null + ${ + currentField.occupancyTypeId + ? ' and occupancyTypeId = ?' + : ' and occupancyTypeId is null' + } and orderNumber < ?` ) .run(occupancyTypeParameters) } diff --git a/database/moveOccupancyTypePrintDown.js b/database/moveOccupancyTypePrintDown.js index fb6d19af..6bac50ec 100644 --- a/database/moveOccupancyTypePrintDown.js +++ b/database/moveOccupancyTypePrintDown.js @@ -1,5 +1,5 @@ -import { acquireConnection } from './pool.js'; import { clearCacheByTableName } from '../helpers/functions.cache.js'; +import { acquireConnection } from './pool.js'; export async function moveOccupancyTypePrintDown(occupancyTypeId, printEJS) { const database = await acquireConnection(); const currentOrderNumber = database diff --git a/database/moveOccupancyTypePrintDown.ts b/database/moveOccupancyTypePrintDown.ts index 62b2c544..5dcc374f 100644 --- a/database/moveOccupancyTypePrintDown.ts +++ b/database/moveOccupancyTypePrintDown.ts @@ -1,7 +1,7 @@ -import { acquireConnection } from './pool.js' - import { clearCacheByTableName } from '../helpers/functions.cache.js' +import { acquireConnection } from './pool.js' + export async function moveOccupancyTypePrintDown( occupancyTypeId: number | string, printEJS: string diff --git a/database/moveOccupancyTypePrintUp.js b/database/moveOccupancyTypePrintUp.js index 9cf51f96..d6c6827c 100644 --- a/database/moveOccupancyTypePrintUp.js +++ b/database/moveOccupancyTypePrintUp.js @@ -1,5 +1,5 @@ -import { acquireConnection } from './pool.js'; import { clearCacheByTableName } from '../helpers/functions.cache.js'; +import { acquireConnection } from './pool.js'; export async function moveOccupancyTypePrintUp(occupancyTypeId, printEJS) { const database = await acquireConnection(); const currentOrderNumber = database diff --git a/database/moveOccupancyTypePrintUp.ts b/database/moveOccupancyTypePrintUp.ts index f2aba430..a0ba9aa8 100644 --- a/database/moveOccupancyTypePrintUp.ts +++ b/database/moveOccupancyTypePrintUp.ts @@ -1,7 +1,7 @@ -import { acquireConnection } from './pool.js' - import { clearCacheByTableName } from '../helpers/functions.cache.js' +import { acquireConnection } from './pool.js' + export async function moveOccupancyTypePrintUp( occupancyTypeId: number | string, printEJS: string diff --git a/database/moveRecord.js b/database/moveRecord.js index 39d09b7d..3ecd40a0 100644 --- a/database/moveRecord.js +++ b/database/moveRecord.js @@ -1,5 +1,5 @@ -import { acquireConnection } from './pool.js'; import { clearCacheByTableName } from '../helpers/functions.cache.js'; +import { acquireConnection } from './pool.js'; import { updateRecordOrderNumber } from './updateRecordOrderNumber.js'; const recordIdColumns = new Map(); recordIdColumns.set('FeeCategories', 'feeCategoryId'); diff --git a/database/moveRecord.ts b/database/moveRecord.ts index 14c277d8..2ee03a23 100644 --- a/database/moveRecord.ts +++ b/database/moveRecord.ts @@ -1,7 +1,8 @@ import type sqlite from 'better-sqlite3' -import { acquireConnection } from './pool.js' import { clearCacheByTableName } from '../helpers/functions.cache.js' + +import { acquireConnection } from './pool.js' import { updateRecordOrderNumber } from './updateRecordOrderNumber.js' type RecordTable = diff --git a/database/pool.js b/database/pool.js index 6b55c6f2..2bcd4a3d 100644 --- a/database/pool.js +++ b/database/pool.js @@ -1,12 +1,11 @@ import { Pool } from 'better-sqlite-pool'; -import { lotOccupancyDB as databasePath } from '../data/databasePaths.js'; -import exitHook from 'exit-hook'; import Debug from 'debug'; +import exitHook from 'exit-hook'; +import { lotOccupancyDB as databasePath } from '../data/databasePaths.js'; const debug = Debug('lot-occupancy-system:lotOccupancyDB:pool'); const pool = new Pool(databasePath); export async function acquireConnection() { - const connection = await pool.acquire(); - return connection; + return await pool.acquire(); } exitHook(() => { debug('Closing database pool'); diff --git a/database/pool.ts b/database/pool.ts index 95078de6..fdce4bb3 100644 --- a/database/pool.ts +++ b/database/pool.ts @@ -1,17 +1,15 @@ import { Pool, type PoolConnection } from 'better-sqlite-pool' +import Debug from 'debug' +import exitHook from 'exit-hook' import { lotOccupancyDB as databasePath } from '../data/databasePaths.js' -import exitHook from 'exit-hook' - -import Debug from 'debug' const debug = Debug('lot-occupancy-system:lotOccupancyDB:pool') const pool = new Pool(databasePath) export async function acquireConnection(): Promise { - const connection = await pool.acquire() - return connection + return await pool.acquire() } exitHook(() => { diff --git a/database/updateLot.js b/database/updateLot.js index d2b6d4da..fb1797ef 100644 --- a/database/updateLot.js +++ b/database/updateLot.js @@ -20,13 +20,13 @@ export async function updateLot(lotForm, user) { if (result.changes > 0) { const lotTypeFieldIds = (lotForm.lotTypeFieldIds ?? '').split(','); for (const lotTypeFieldId of lotTypeFieldIds) { - const lotFieldValue = lotForm['lotFieldValue_' + lotTypeFieldId]; + const lotFieldValue = lotForm[`lotFieldValue_${lotTypeFieldId}`]; await ((lotFieldValue ?? '') === '' ? deleteLotField(lotForm.lotId, lotTypeFieldId, user, database) : addOrUpdateLotField({ lotId: lotForm.lotId, lotTypeFieldId, - lotFieldValue: lotFieldValue + lotFieldValue: lotFieldValue ?? '' }, user, database)); } } diff --git a/database/updateLot.ts b/database/updateLot.ts index 1f912a50..347b9c99 100644 --- a/database/updateLot.ts +++ b/database/updateLot.ts @@ -59,7 +59,7 @@ export async function updateLot( const lotTypeFieldIds = (lotForm.lotTypeFieldIds ?? '').split(',') for (const lotTypeFieldId of lotTypeFieldIds) { - const lotFieldValue = lotForm['lotFieldValue_' + lotTypeFieldId] as + const lotFieldValue = lotForm[`lotFieldValue_${lotTypeFieldId}`] as | string | undefined @@ -69,7 +69,7 @@ export async function updateLot( { lotId: lotForm.lotId, lotTypeFieldId, - lotFieldValue: lotFieldValue! + lotFieldValue: lotFieldValue ?? '' }, user, database diff --git a/database/updateLotOccupancy.js b/database/updateLotOccupancy.js index ffe7da8d..9771dd32 100644 --- a/database/updateLotOccupancy.js +++ b/database/updateLotOccupancy.js @@ -20,7 +20,7 @@ export async function updateLotOccupancy(lotOccupancyForm, user) { if (result.changes > 0) { const occupancyTypeFieldIds = (lotOccupancyForm.occupancyTypeFieldIds ?? '').split(','); for (const occupancyTypeFieldId of occupancyTypeFieldIds) { - const lotOccupancyFieldValue = lotOccupancyForm['lotOccupancyFieldValue_' + occupancyTypeFieldId]; + const lotOccupancyFieldValue = lotOccupancyForm[`lotOccupancyFieldValue_${occupancyTypeFieldId}`]; await ((lotOccupancyFieldValue ?? '') === '' ? deleteLotOccupancyField(lotOccupancyForm.lotOccupancyId, occupancyTypeFieldId, user, database) : addOrUpdateLotOccupancyField({ diff --git a/database/updateLotOccupancy.ts b/database/updateLotOccupancy.ts index 17ad7c49..fb4e8fa5 100644 --- a/database/updateLotOccupancy.ts +++ b/database/updateLotOccupancy.ts @@ -56,7 +56,7 @@ export async function updateLotOccupancy( for (const occupancyTypeFieldId of occupancyTypeFieldIds) { const lotOccupancyFieldValue = lotOccupancyForm[ - 'lotOccupancyFieldValue_' + occupancyTypeFieldId + `lotOccupancyFieldValue_${occupancyTypeFieldId}` ] as string await ((lotOccupancyFieldValue ?? '') === '' diff --git a/handlers/api-get/milestoneICS.js b/handlers/api-get/milestoneICS.js index 7cb32ac3..c6e5ac47 100644 --- a/handlers/api-get/milestoneICS.js +++ b/handlers/api-get/milestoneICS.js @@ -40,7 +40,7 @@ function buildEventSummary(milestone) { } } if (occupantCount > 1) { - summary += ' plus ' + (occupantCount - 1).toString(); + summary += ` plus ${(occupantCount - 1).toString()}`; } return summary; } @@ -80,13 +80,7 @@ function buildEventDescriptionHTML_occupancies(request, milestone) { `; for (const occupant of occupancy.lotOccupancyOccupants) { - descriptionHTML += - escapeHTML(occupant.lotOccupantType) + - ': ' + - escapeHTML(occupant.occupantName) + - ' ' + - escapeHTML(occupant.occupantFamilyName) + - '
'; + descriptionHTML += `${escapeHTML(occupant.lotOccupantType)}: ${escapeHTML(occupant.occupantName)} ${escapeHTML(occupant.occupantFamilyName)}
`; } descriptionHTML += ''; } @@ -98,33 +92,32 @@ function buildEventDescriptionHTML_lots(request, milestone) { let descriptionHTML = ''; if (milestone.workOrderLots.length > 0) { const urlRoot = getUrlRoot(request); - descriptionHTML += - '

Related ' + - escapeHTML(configFunctions.getProperty('aliases.lots')) + - '

' + - '' + - ` - - ` + - '' + - '' + - ''; + descriptionHTML += `

+ Related ${escapeHTML(configFunctions.getProperty('aliases.lots'))} +

+
- ${escapeHTML(configFunctions.getProperty('aliases.lot'))} Type - - ${escapeHTML(configFunctions.getProperty('aliases.map'))} - - ${escapeHTML(configFunctions.getProperty('aliases.lot'))} Type - Status
+ + + + + + `; for (const lot of milestone.workOrderLots) { descriptionHTML += ` - - - - + + + + `; } descriptionHTML += '
+ ${escapeHTML(configFunctions.getProperty('aliases.lot'))} Type + + ${escapeHTML(configFunctions.getProperty('aliases.map'))} + + ${escapeHTML(configFunctions.getProperty('aliases.lot'))} Type + Status
- - ${escapeHTML(lot.lotName ?? '')} - - ${escapeHTML(lot.mapName ?? '')}${escapeHTML(lot.lotType ?? '')}${escapeHTML(lot.lotStatus ?? '')} + + ${escapeHTML(lot.lotName ?? '')} + + ${escapeHTML(lot.mapName ?? '')}${escapeHTML(lot.lotType ?? '')}${escapeHTML(lot.lotStatus ?? '')}
'; @@ -140,16 +133,10 @@ function buildEventDescriptionHTML_prints(request, milestone) { for (const printName of prints) { const printConfig = getPrintConfig(printName); if (printConfig) { - descriptionHTML += - '

' + - escapeHTML(printConfig.title) + - '
' + - (urlRoot + - '/print/' + - printName + - '/?workOrderId=' + - milestone.workOrderId.toString()) + - '

'; + descriptionHTML += `

+ ${escapeHTML(printConfig.title)}
+ ${urlRoot}/print/${printName}/?workOrderId=${milestone.workOrderId.toString()} +

`; } } } @@ -158,10 +145,10 @@ function buildEventDescriptionHTML_prints(request, milestone) { function buildEventDescriptionHTML(request, milestone) { const workOrderUrl = getWorkOrderUrl(request, milestone); let descriptionHTML = `

Milestone Description

-

${escapeHTML(milestone.workOrderMilestoneDescription ?? '')}

-

Work Order #${milestone.workOrderNumber ?? ''}

-

${escapeHTML(milestone.workOrderDescription ?? '')}

-

${workOrderUrl}

`; +

${escapeHTML(milestone.workOrderMilestoneDescription ?? '')}

+

Work Order #${milestone.workOrderNumber ?? ''}

+

${escapeHTML(milestone.workOrderDescription ?? '')}

+

${workOrderUrl}

`; descriptionHTML += buildEventDescriptionHTML_occupancies(request, milestone); descriptionHTML += buildEventDescriptionHTML_lots(request, milestone); descriptionHTML += buildEventDescriptionHTML_prints(request, milestone); @@ -205,20 +192,18 @@ export async function handler(request, response) { }); const calendar = ical({ name: 'Work Order Milestone Calendar', - url: urlRoot + '/workOrders' + url: `${urlRoot}/workOrders` }); if (request.query.workOrderId && workOrderMilestones.length > 0) { calendar.name(`Work Order #${workOrderMilestones[0].workOrderNumber}`); - calendar.url(urlRoot + '/workOrders/' + workOrderMilestones[0].workOrderId.toString()); + calendar.url(`${urlRoot}/workOrders/${workOrderMilestones[0].workOrderId.toString()}`); } calendar.prodId({ company: calendarCompany, product: calendarProduct }); for (const milestone of workOrderMilestones) { - const milestoneTimePieces = (milestone.workOrderMilestoneDateString + - ' ' + - milestone.workOrderMilestoneTimeString).split(timeStringSplitRegex); + const milestoneTimePieces = `${milestone.workOrderMilestoneDateString} ${milestone.workOrderMilestoneTimeString}`.split(timeStringSplitRegex); const milestoneDate = new Date(Number.parseInt(milestoneTimePieces[0], 10), Number.parseInt(milestoneTimePieces[1], 10) - 1, Number.parseInt(milestoneTimePieces[2], 10), Number.parseInt(milestoneTimePieces[3], 10), Number.parseInt(milestoneTimePieces[4], 10)); const milestoneEndDate = new Date(milestoneDate.getTime()); milestoneEndDate.setHours(milestoneEndDate.getHours() + 1); diff --git a/handlers/api-get/milestoneICS.ts b/handlers/api-get/milestoneICS.ts index f7892c29..96644fca 100644 --- a/handlers/api-get/milestoneICS.ts +++ b/handlers/api-get/milestoneICS.ts @@ -71,7 +71,7 @@ function buildEventSummary(milestone: WorkOrderMilestone): string { } if (occupantCount > 1) { - summary += ' plus ' + (occupantCount - 1).toString() + summary += ` plus ${(occupantCount - 1).toString()}` } return summary @@ -125,13 +125,11 @@ function buildEventDescriptionHTML_occupancies( ` for (const occupant of occupancy.lotOccupancyOccupants!) { - descriptionHTML += - escapeHTML(occupant.lotOccupantType!) + - ': ' + - escapeHTML(occupant.occupantName!) + - ' ' + - escapeHTML(occupant.occupantFamilyName!) + - '
' + descriptionHTML += `${escapeHTML( + occupant.lotOccupantType! + )}: ${escapeHTML(occupant.occupantName!)} ${escapeHTML( + occupant.occupantFamilyName! + )}
` } descriptionHTML += '' @@ -153,34 +151,33 @@ function buildEventDescriptionHTML_lots( if (milestone.workOrderLots!.length > 0) { const urlRoot = getUrlRoot(request) - descriptionHTML += - '

Related ' + - escapeHTML(configFunctions.getProperty('aliases.lots')) + - '

' + - '' + - ` - - ` + - '' + - '' + - '' + descriptionHTML += `

+ Related ${escapeHTML(configFunctions.getProperty('aliases.lots'))} +

+
- ${escapeHTML(configFunctions.getProperty('aliases.lot'))} Type - - ${escapeHTML(configFunctions.getProperty('aliases.map'))} - - ${escapeHTML(configFunctions.getProperty('aliases.lot'))} Type - Status
+ + + + + + ` for (const lot of milestone.workOrderLots!) { descriptionHTML += ` - - - - + + + + ` } @@ -208,16 +205,10 @@ function buildEventDescriptionHTML_prints( const printConfig = getPrintConfig(printName) if (printConfig) { - descriptionHTML += - '

' + - escapeHTML(printConfig.title) + - '
' + - (urlRoot + - '/print/' + - printName + - '/?workOrderId=' + - milestone.workOrderId!.toString()) + - '

' + descriptionHTML += `

+ ${escapeHTML(printConfig.title)}
+ ${urlRoot}/print/${printName}/?workOrderId=${milestone.workOrderId!.toString()} +

` } } } @@ -232,10 +223,10 @@ function buildEventDescriptionHTML( const workOrderUrl = getWorkOrderUrl(request, milestone) let descriptionHTML = `

Milestone Description

-

${escapeHTML(milestone.workOrderMilestoneDescription ?? '')}

-

Work Order #${milestone.workOrderNumber ?? ''}

-

${escapeHTML(milestone.workOrderDescription ?? '')}

-

${workOrderUrl}

` +

${escapeHTML(milestone.workOrderMilestoneDescription ?? '')}

+

Work Order #${milestone.workOrderNumber ?? ''}

+

${escapeHTML(milestone.workOrderDescription ?? '')}

+

${workOrderUrl}

` descriptionHTML += buildEventDescriptionHTML_occupancies(request, milestone) descriptionHTML += buildEventDescriptionHTML_lots(request, milestone) @@ -306,13 +297,13 @@ export async function handler( */ const calendar = ical({ name: 'Work Order Milestone Calendar', - url: urlRoot + '/workOrders' + url: `${urlRoot}/workOrders` }) if (request.query.workOrderId && workOrderMilestones.length > 0) { - calendar.name(`Work Order #${workOrderMilestones[0].workOrderNumber!}`) + calendar.name(`Work Order #${workOrderMilestones[0].workOrderNumber}`) calendar.url( - urlRoot + '/workOrders/' + workOrderMilestones[0].workOrderId!.toString() + `${urlRoot}/workOrders/${workOrderMilestones[0].workOrderId!.toString()}` ) } @@ -325,11 +316,10 @@ export async function handler( * Loop through milestones */ for (const milestone of workOrderMilestones) { - const milestoneTimePieces = ( - milestone.workOrderMilestoneDateString + - ' ' + - milestone.workOrderMilestoneTimeString - ).split(timeStringSplitRegex) + const milestoneTimePieces = + `${milestone.workOrderMilestoneDateString} ${milestone.workOrderMilestoneTimeString}`.split( + timeStringSplitRegex + ) const milestoneDate = new Date( Number.parseInt(milestoneTimePieces[0], 10), diff --git a/types/recordTypes.d.ts b/types/recordTypes.d.ts index d664d5ec..06ce5d25 100644 --- a/types/recordTypes.d.ts +++ b/types/recordTypes.d.ts @@ -89,7 +89,7 @@ export interface OccupancyType extends Record { occupancyTypePrints?: string[]; } export interface OccupancyTypeField { - occupancyTypeFieldId?: number; + occupancyTypeFieldId: number; occupancyTypeId?: number; occupancyTypeField?: string; occupancyTypeFieldValues?: string; @@ -251,7 +251,7 @@ export interface WorkOrderMilestone extends Record, WorkOrder { workOrderRecordUpdate_timeMillis?: number; } export interface WorkOrder extends Record { - workOrderId?: number; + workOrderId: number; workOrderTypeId?: number; workOrderType?: string; workOrderNumber?: string; diff --git a/types/recordTypes.ts b/types/recordTypes.ts index fe75aa4f..f6e220e2 100644 --- a/types/recordTypes.ts +++ b/types/recordTypes.ts @@ -120,7 +120,7 @@ export interface OccupancyType extends Record { } export interface OccupancyTypeField { - occupancyTypeFieldId?: number + occupancyTypeFieldId: number occupancyTypeId?: number occupancyTypeField?: string occupancyTypeFieldValues?: string @@ -335,7 +335,7 @@ export interface WorkOrderMilestone extends Record, WorkOrder { } export interface WorkOrder extends Record { - workOrderId?: number + workOrderId: number workOrderTypeId?: number workOrderType?: string
+ ${escapeHTML(configFunctions.getProperty('aliases.lot'))} Type + + ${escapeHTML(configFunctions.getProperty('aliases.map'))} + + ${escapeHTML(configFunctions.getProperty('aliases.lot'))} Type + Status
- - ${escapeHTML(lot.lotName ?? '')} - - ${escapeHTML(lot.mapName ?? '')}${escapeHTML(lot.lotType ?? '')}${escapeHTML(lot.lotStatus ?? '')} + + ${escapeHTML(lot.lotName ?? '')} + + ${escapeHTML(lot.mapName ?? '')}${escapeHTML(lot.lotType ?? '')}${escapeHTML(lot.lotStatus ?? '')}