deepsource-autofix-76c6eb20
Dan Gowans 2023-01-19 13:48:58 -05:00
parent 82c7f047cf
commit 5276c7e962
24 changed files with 343 additions and 223 deletions

View File

@ -146,7 +146,7 @@ function buildEventDescriptionHTML_lots(
): string { ): string {
let descriptionHTML = '' let descriptionHTML = ''
if (milestone.workOrderLots.length > 0) { if (milestone.workOrderLots!.length > 0) {
const urlRoot = getUrlRoot(request) const urlRoot = getUrlRoot(request)
descriptionHTML += descriptionHTML +=
@ -388,10 +388,10 @@ export async function handler(request: Request, response: Response): Promise<voi
calendarEvent.location(location) calendarEvent.location(location)
// Set organizer / attendees // Set organizer / attendees
if (milestone.workOrderLotOccupancies.length > 0) { if (milestone.workOrderLotOccupancies!.length > 0) {
let organizerSet = false let organizerSet = false
for (const lotOccupancy of milestone.workOrderLotOccupancies) { for (const lotOccupancy of milestone.workOrderLotOccupancies!) {
for (const occupant of lotOccupancy.lotOccupancyOccupants) { for (const occupant of lotOccupancy.lotOccupancyOccupants!) {
if (organizerSet) { if (organizerSet) {
calendarEvent.createAttendee({ calendarEvent.createAttendee({
name: occupant.occupantName, name: occupant.occupantName,

View File

@ -23,17 +23,17 @@ async function saveApiKeys() {
} }
} }
function generateApiKey(apiKeyPrefix) { function generateApiKey(apiKeyPrefix) {
return apiKeyPrefix + '-' + uuidv4() + '-' + Date.now(); return `${apiKeyPrefix}-${uuidv4()}-${Date.now()}`;
} }
export async function regenerateApiKey(userName) { export async function regenerateApiKey(userName) {
apiKeys[userName] = generateApiKey(userName); apiKeys[userName] = generateApiKey(userName);
await saveApiKeys(); await saveApiKeys();
} }
export async function getApiKey(userName) { export async function getApiKey(userName) {
if (!apiKeys) { if (apiKeys === undefined) {
await loadApiKeys(); await loadApiKeys();
} }
if (!apiKeys[userName]) { if (!Object.hasOwn(apiKeys, userName)) {
await regenerateApiKey(userName); await regenerateApiKey(userName);
} }
return apiKeys[userName]; return apiKeys[userName];
@ -42,7 +42,7 @@ export async function getApiKeyFromSession(session) {
return await getApiKey(session.user.userName); return await getApiKey(session.user.userName);
} }
export async function getUserNameFromApiKey(apiKey) { export async function getUserNameFromApiKey(apiKey) {
if (!apiKeys) { if (apiKeys === undefined) {
await loadApiKeys(); await loadApiKeys();
} }
for (const [userName, currentApiKey] of Object.entries(apiKeys)) { for (const [userName, currentApiKey] of Object.entries(apiKeys)) {

View File

@ -29,7 +29,7 @@ async function saveApiKeys(): Promise<void> {
} }
function generateApiKey(apiKeyPrefix: string): string { function generateApiKey(apiKeyPrefix: string): string {
return apiKeyPrefix + '-' + uuidv4() + '-' + Date.now() return `${apiKeyPrefix}-${uuidv4()}-${Date.now()}`
} }
export async function regenerateApiKey(userName: string): Promise<void> { export async function regenerateApiKey(userName: string): Promise<void> {
@ -38,11 +38,11 @@ export async function regenerateApiKey(userName: string): Promise<void> {
} }
export async function getApiKey(userName: string): Promise<string> { export async function getApiKey(userName: string): Promise<string> {
if (!apiKeys) { if (apiKeys === undefined) {
await loadApiKeys() await loadApiKeys()
} }
if (!apiKeys[userName]) { if (!Object.hasOwn(apiKeys, userName)) {
await regenerateApiKey(userName) await regenerateApiKey(userName)
} }
@ -58,7 +58,7 @@ export async function getApiKeyFromSession(
export async function getUserNameFromApiKey( export async function getUserNameFromApiKey(
apiKey: string apiKey: string
): Promise<string | undefined> { ): Promise<string | undefined> {
if (!apiKeys) { if (apiKeys === undefined) {
await loadApiKeys() await loadApiKeys()
} }

View File

@ -20,7 +20,7 @@ async function authenticateViaActiveDirectory(userName, password) {
}); });
} }
export async function authenticate(userName, password) { export async function authenticate(userName, password) {
if (!userName || userName === '' || !password || password === '') { if ((userName ?? '') === '' || (password ?? '') === '') {
return false; return false;
} }
return await authenticateViaActiveDirectory(userName, password); return await authenticateViaActiveDirectory(userName, password);

View File

@ -33,7 +33,7 @@ export async function authenticate(
userName: string, userName: string,
password: string password: string
): Promise<boolean> { ): Promise<boolean> {
if (!userName || userName === '' || !password || password === '') { if ((userName ?? '') === '' || (password ?? '') === '') {
return false return false
} }

View File

@ -12,11 +12,11 @@ export function getFieldValueByOccupancyTypeField(lotOccupancy, occupancyTypeFie
return (possibleField.occupancyTypeField.toLowerCase() === return (possibleField.occupancyTypeField.toLowerCase() ===
occupancyTypeFieldLowerCase); occupancyTypeFieldLowerCase);
}); });
if (field) { if (field === undefined) {
return field.lotOccupancyFieldValue;
}
return undefined; return undefined;
} }
return field.lotOccupancyFieldValue;
}
export function getFeesByFeeCategory(lotOccupancy, feeCategory, feeCategoryContains = false) { export function getFeesByFeeCategory(lotOccupancy, feeCategory, feeCategoryContains = false) {
const feeCategoryLowerCase = feeCategory.toLowerCase(); const feeCategoryLowerCase = feeCategory.toLowerCase();
const fees = (lotOccupancy.lotOccupancyFees ?? []).filter((possibleFee) => { const fees = (lotOccupancy.lotOccupancyFees ?? []).filter((possibleFee) => {

View File

@ -33,11 +33,11 @@ export function getFieldValueByOccupancyTypeField(
} }
) )
if (field) { if (field === undefined) {
return field.lotOccupancyFieldValue return undefined
} }
return undefined return field.lotOccupancyFieldValue
} }
export function getFeesByFeeCategory( export function getFeesByFeeCategory(

View File

@ -1,7 +1,7 @@
import fs from 'node:fs/promises'; import fs from 'node:fs/promises';
let mapSVGs; let mapSVGs;
export async function getMapSVGs() { export async function getMapSVGs() {
if (!mapSVGs) { if (mapSVGs === undefined) {
const files = await fs.readdir('./public/images/maps/'); const files = await fs.readdir('./public/images/maps/');
const SVGs = []; const SVGs = [];
for (const file of files) { for (const file of files) {

View File

@ -3,7 +3,7 @@ import fs from 'node:fs/promises'
let mapSVGs: string[] let mapSVGs: string[]
export async function getMapSVGs(): Promise<string[]> { export async function getMapSVGs(): Promise<string[]> {
if (!mapSVGs) { if (mapSVGs === undefined) {
const files = await fs.readdir('./public/images/maps/') const files = await fs.readdir('./public/images/maps/')
const SVGs: string[] = [] const SVGs: string[] = []

View File

@ -32,9 +32,8 @@ export function getLotNameWhereClause(lotName = '', lotNameSearchType, lotsTable
export function getOccupancyTimeWhereClause(occupancyTime, lotOccupanciesTableAlias = 'o') { export function getOccupancyTimeWhereClause(occupancyTime, lotOccupanciesTableAlias = 'o') {
let sqlWhereClause = ''; let sqlWhereClause = '';
const sqlParameters = []; const sqlParameters = [];
if (occupancyTime) {
const currentDateString = dateToInteger(new Date()); const currentDateString = dateToInteger(new Date());
switch (occupancyTime) { switch (occupancyTime ?? '') {
case 'current': { case 'current': {
sqlWhereClause += sqlWhereClause +=
' and ' + ' and ' +
@ -60,7 +59,6 @@ export function getOccupancyTimeWhereClause(occupancyTime, lotOccupanciesTableAl
break; break;
} }
} }
}
return { return {
sqlWhereClause, sqlWhereClause,
sqlParameters sqlParameters
@ -72,7 +70,7 @@ export function getOccupantNameWhereClause(occupantName = '', tableAlias = 'o')
if (occupantName !== '') { if (occupantName !== '') {
const occupantNamePieces = occupantName.toLowerCase().split(' '); const occupantNamePieces = occupantName.toLowerCase().split(' ');
for (const occupantNamePiece of occupantNamePieces) { for (const occupantNamePiece of occupantNamePieces) {
sqlWhereClause += ' and instr(lower(' + tableAlias + '.occupantName), ?)'; sqlWhereClause += ` and instr(lower(${tableAlias}.occupantName), ?)`;
sqlParameters.push(occupantNamePiece); sqlParameters.push(occupantNamePiece);
} }
} }

View File

@ -53,10 +53,9 @@ export function getOccupancyTimeWhereClause(
let sqlWhereClause = '' let sqlWhereClause = ''
const sqlParameters: unknown[] = [] const sqlParameters: unknown[] = []
if (occupancyTime) {
const currentDateString = dateToInteger(new Date()) const currentDateString = dateToInteger(new Date())
switch (occupancyTime) { switch (occupancyTime ?? '') {
case 'current': { case 'current': {
sqlWhereClause += sqlWhereClause +=
' and ' + ' and ' +
@ -84,7 +83,6 @@ export function getOccupancyTimeWhereClause(
break break
} }
} }
}
return { return {
sqlWhereClause, sqlWhereClause,
@ -102,7 +100,7 @@ export function getOccupantNameWhereClause(
if (occupantName !== '') { if (occupantName !== '') {
const occupantNamePieces = occupantName.toLowerCase().split(' ') const occupantNamePieces = occupantName.toLowerCase().split(' ')
for (const occupantNamePiece of occupantNamePieces) { for (const occupantNamePiece of occupantNamePieces) {
sqlWhereClause += ' and instr(lower(' + tableAlias + '.occupantName), ?)' sqlWhereClause += ` and instr(lower(${tableAlias}.occupantName), ?)`
sqlParameters.push(occupantNamePiece) sqlParameters.push(occupantNamePiece)
} }
} }

View File

@ -54,7 +54,7 @@ export function initializeDatabase() {
const row = lotOccupancyDB const row = lotOccupancyDB
.prepare("select name from sqlite_master where type = 'table' and name = 'WorkOrderMilestones'") .prepare("select name from sqlite_master where type = 'table' and name = 'WorkOrderMilestones'")
.get(); .get();
if (!row) { if (row === undefined) {
debugSQL('Creating ' + databasePath); debugSQL('Creating ' + databasePath);
for (const sql of createStatements) { for (const sql of createStatements) {
lotOccupancyDB.prepare(sql).run(); lotOccupancyDB.prepare(sql).run();

View File

@ -74,7 +74,7 @@ export function initializeDatabase(): boolean {
) )
.get() .get()
if (!row) { if (row === undefined) {
debugSQL('Creating ' + databasePath) debugSQL('Creating ' + databasePath)
for (const sql of createStatements) { for (const sql of createStatements) {

View File

@ -1,10 +1,13 @@
import { Pool } from 'better-sqlite-pool'; import { Pool } from 'better-sqlite-pool';
import { lotOccupancyDB as databasePath } from '../../data/databasePaths.js'; import { lotOccupancyDB as databasePath } from '../../data/databasePaths.js';
import exitHook from 'exit-hook'; import exitHook from 'exit-hook';
import Debug from 'debug';
const debug = Debug('lot-occupancy-system:lotOccupancyDB:pool');
const pool = new Pool(databasePath); const pool = new Pool(databasePath);
export async function acquireConnection() { export async function acquireConnection() {
return await pool.acquire(); return await pool.acquire();
} }
exitHook(() => { exitHook(() => {
debug('Closing database pool');
pool.close(); pool.close();
}); });

View File

@ -4,6 +4,9 @@ import { lotOccupancyDB as databasePath } from '../../data/databasePaths.js'
import exitHook from 'exit-hook' import exitHook from 'exit-hook'
import Debug from 'debug'
const debug = Debug('lot-occupancy-system:lotOccupancyDB:pool')
const pool = new Pool(databasePath) const pool = new Pool(databasePath)
export async function acquireConnection(): Promise<PoolConnection> { export async function acquireConnection(): Promise<PoolConnection> {
@ -11,5 +14,6 @@ export async function acquireConnection(): Promise<PoolConnection> {
} }
exitHook(() => { exitHook(() => {
debug('Closing database pool')
pool.close() pool.close()
}) })

View File

@ -1,4 +1,4 @@
import { Router } from 'express' import { Router, RequestHandler } from 'express'
// Fee Management // Fee Management
@ -96,174 +96,261 @@ export const router = Router()
* Fees * Fees
*/ */
router.get('/fees', handler_fees) router.get('/fees', handler_fees as RequestHandler)
router.post('/doAddFeeCategory', handler_doAddFeeCategory) router.post('/doAddFeeCategory', handler_doAddFeeCategory as RequestHandler)
router.post('/doUpdateFeeCategory', handler_doUpdateFeeCategory) router.post(
'/doUpdateFeeCategory',
handler_doUpdateFeeCategory as RequestHandler
)
router.post('/doMoveFeeCategoryUp', handler_doMoveFeeCategoryUp) router.post(
'/doMoveFeeCategoryUp',
handler_doMoveFeeCategoryUp as RequestHandler
)
router.post('/doMoveFeeCategoryDown', handler_doMoveFeeCategoryDown) router.post(
'/doMoveFeeCategoryDown',
handler_doMoveFeeCategoryDown as RequestHandler
)
router.post('/doDeleteFeeCategory', handler_doDeleteFeeCategory) router.post(
'/doDeleteFeeCategory',
handler_doDeleteFeeCategory as RequestHandler
)
router.post('/doAddFee', handler_doAddFee) router.post('/doAddFee', handler_doAddFee as RequestHandler)
router.post('/doUpdateFee', handler_doUpdateFee) router.post('/doUpdateFee', handler_doUpdateFee as RequestHandler)
router.post('/doMoveFeeUp', handler_doMoveFeeUp) router.post('/doMoveFeeUp', handler_doMoveFeeUp as RequestHandler)
router.post('/doMoveFeeDown', handler_doMoveFeeDown) router.post('/doMoveFeeDown', handler_doMoveFeeDown as RequestHandler)
router.post('/doDeleteFee', handler_doDeleteFee) router.post('/doDeleteFee', handler_doDeleteFee as RequestHandler)
/* /*
* Occupancy Type Management * Occupancy Type Management
*/ */
router.get('/occupancyTypes', handler_occupancyTypes) router.get('/occupancyTypes', handler_occupancyTypes as RequestHandler)
router.post('/doAddOccupancyType', handler_doAddOccupancyType) router.post('/doAddOccupancyType', handler_doAddOccupancyType as RequestHandler)
router.post('/doUpdateOccupancyType', handler_doUpdateOccupancyType) router.post(
'/doUpdateOccupancyType',
handler_doUpdateOccupancyType as RequestHandler
)
router.post('/doMoveOccupancyTypeUp', handler_doMoveOccupancyTypeUp) router.post(
'/doMoveOccupancyTypeUp',
handler_doMoveOccupancyTypeUp as RequestHandler
)
router.post('/doMoveOccupancyTypeDown', handler_doMoveOccupancyTypeDown) router.post(
'/doMoveOccupancyTypeDown',
handler_doMoveOccupancyTypeDown as RequestHandler
)
router.post('/doDeleteOccupancyType', handler_doDeleteOccupancyType) router.post(
'/doDeleteOccupancyType',
handler_doDeleteOccupancyType as RequestHandler
)
// Occupancy Type Fields // Occupancy Type Fields
router.post('/doAddOccupancyTypeField', handler_doAddOccupancyTypeField) router.post(
'/doAddOccupancyTypeField',
handler_doAddOccupancyTypeField as RequestHandler
)
router.post('/doUpdateOccupancyTypeField', handler_doUpdateOccupancyTypeField) router.post(
'/doUpdateOccupancyTypeField',
handler_doUpdateOccupancyTypeField as RequestHandler
)
router.post('/doMoveOccupancyTypeFieldUp', handler_doMoveOccupancyTypeFieldUp) router.post(
'/doMoveOccupancyTypeFieldUp',
handler_doMoveOccupancyTypeFieldUp as RequestHandler
)
router.post( router.post(
'/doMoveOccupancyTypeFieldDown', '/doMoveOccupancyTypeFieldDown',
handler_doMoveOccupancyTypeFieldDown handler_doMoveOccupancyTypeFieldDown as RequestHandler
) )
router.post('/doDeleteOccupancyTypeField', handler_doDeleteOccupancyTypeField) router.post(
'/doDeleteOccupancyTypeField',
handler_doDeleteOccupancyTypeField as RequestHandler
)
// Occupancy Type Prints // Occupancy Type Prints
router.post('/doAddOccupancyTypePrint', handler_doAddOccupancyTypePrint) router.post(
'/doAddOccupancyTypePrint',
handler_doAddOccupancyTypePrint as RequestHandler
)
router.post('/doMoveOccupancyTypePrintUp', handler_doMoveOccupancyTypePrintUp) router.post(
'/doMoveOccupancyTypePrintUp',
handler_doMoveOccupancyTypePrintUp as RequestHandler
)
router.post( router.post(
'/doMoveOccupancyTypePrintDown', '/doMoveOccupancyTypePrintDown',
handler_doMoveOccupancyTypePrintDown handler_doMoveOccupancyTypePrintDown as RequestHandler
) )
router.post('/doDeleteOccupancyTypePrint', handler_doDeleteOccupancyTypePrint) router.post(
'/doDeleteOccupancyTypePrint',
handler_doDeleteOccupancyTypePrint as RequestHandler
)
/* /*
* Lot Type Management * Lot Type Management
*/ */
router.get('/lotTypes', handler_lotTypes) router.get('/lotTypes', handler_lotTypes as RequestHandler)
router.post('/doAddLotType', handler_doAddLotType) router.post('/doAddLotType', handler_doAddLotType as RequestHandler)
router.post('/doUpdateLotType', handler_doUpdateLotType) router.post('/doUpdateLotType', handler_doUpdateLotType as RequestHandler)
router.post('/doMoveLotTypeUp', handler_doMoveLotTypeUp) router.post('/doMoveLotTypeUp', handler_doMoveLotTypeUp as RequestHandler)
router.post('/doMoveLotTypeDown', handler_doMoveLotTypeDown) router.post('/doMoveLotTypeDown', handler_doMoveLotTypeDown as RequestHandler)
router.post('/doDeleteLotType', handler_doDeleteLotType) router.post('/doDeleteLotType', handler_doDeleteLotType as RequestHandler)
// Lot Type Fields // Lot Type Fields
router.post('/doAddLotTypeField', handler_doAddLotTypeField) router.post('/doAddLotTypeField', handler_doAddLotTypeField as RequestHandler)
router.post('/doUpdateLotTypeField', handler_doUpdateLotTypeField) router.post(
'/doUpdateLotTypeField',
handler_doUpdateLotTypeField as RequestHandler
)
router.post('/doMoveLotTypeFieldUp', handler_doMoveLotTypeFieldUp) router.post(
'/doMoveLotTypeFieldUp',
handler_doMoveLotTypeFieldUp as RequestHandler
)
router.post('/doMoveLotTypeFieldDown', handler_doMoveLotTypeFieldDown) router.post(
'/doMoveLotTypeFieldDown',
handler_doMoveLotTypeFieldDown as RequestHandler
)
router.post('/doDeleteLotTypeField', handler_doDeleteLotTypeField) router.post(
'/doDeleteLotTypeField',
handler_doDeleteLotTypeField as RequestHandler
)
/* /*
* Config Tables * Config Tables
*/ */
router.get('/tables', handler_tables) router.get('/tables', handler_tables as RequestHandler)
// Config Tables - Work Order Types // Config Tables - Work Order Types
router.post('/doAddWorkOrderType', handler_doAddWorkOrderType) router.post('/doAddWorkOrderType', handler_doAddWorkOrderType as RequestHandler)
router.post('/doUpdateWorkOrderType', handler_doUpdateWorkOrderType) router.post(
'/doUpdateWorkOrderType',
handler_doUpdateWorkOrderType as RequestHandler
)
router.post('/doMoveWorkOrderTypeUp', handler_doMoveWorkOrderTypeUp) router.post(
'/doMoveWorkOrderTypeUp',
handler_doMoveWorkOrderTypeUp as RequestHandler
)
router.post('/doMoveWorkOrderTypeDown', handler_doMoveWorkOrderTypeDown) router.post(
'/doMoveWorkOrderTypeDown',
handler_doMoveWorkOrderTypeDown as RequestHandler
)
router.post('/doDeleteWorkOrderType', handler_doDeleteWorkOrderType) router.post(
'/doDeleteWorkOrderType',
handler_doDeleteWorkOrderType as RequestHandler
)
// Config Tables - Work Order Milestone Types // Config Tables - Work Order Milestone Types
router.post( router.post(
'/doAddWorkOrderMilestoneType', '/doAddWorkOrderMilestoneType',
handler_doAddWorkOrderMilestoneType handler_doAddWorkOrderMilestoneType as RequestHandler
) )
router.post( router.post(
'/doUpdateWorkOrderMilestoneType', '/doUpdateWorkOrderMilestoneType',
handler_doUpdateWorkOrderMilestoneType handler_doUpdateWorkOrderMilestoneType as RequestHandler
) )
router.post( router.post(
'/doMoveWorkOrderMilestoneTypeUp', '/doMoveWorkOrderMilestoneTypeUp',
handler_doMoveWorkOrderMilestoneTypeUp handler_doMoveWorkOrderMilestoneTypeUp as RequestHandler
) )
router.post( router.post(
'/doMoveWorkOrderMilestoneTypeDown', '/doMoveWorkOrderMilestoneTypeDown',
handler_doMoveWorkOrderMilestoneTypeDown handler_doMoveWorkOrderMilestoneTypeDown as RequestHandler
) )
router.post( router.post(
'/doDeleteWorkOrderMilestoneType', '/doDeleteWorkOrderMilestoneType',
handler_doDeleteWorkOrderMilestoneType handler_doDeleteWorkOrderMilestoneType as RequestHandler
) )
// Config Tables - Lot Statuses // Config Tables - Lot Statuses
router.post('/doAddLotStatus', handler_doAddLotStatus) router.post('/doAddLotStatus', handler_doAddLotStatus as RequestHandler)
router.post('/doUpdateLotStatus', handler_doUpdateLotStatus) router.post('/doUpdateLotStatus', handler_doUpdateLotStatus as RequestHandler)
router.post('/doMoveLotStatusUp', handler_doMoveLotStatusUp) router.post('/doMoveLotStatusUp', handler_doMoveLotStatusUp as RequestHandler)
router.post('/doMoveLotStatusDown', handler_doMoveLotStatusDown) router.post(
'/doMoveLotStatusDown',
handler_doMoveLotStatusDown as RequestHandler
)
router.post('/doDeleteLotStatus', handler_doDeleteLotStatus) router.post('/doDeleteLotStatus', handler_doDeleteLotStatus as RequestHandler)
// Config Tables - Lot Occupant Types // Config Tables - Lot Occupant Types
router.post('/doAddLotOccupantType', handler_doAddLotOccupantType) router.post(
'/doAddLotOccupantType',
handler_doAddLotOccupantType as RequestHandler
)
router.post('/doUpdateLotOccupantType', handler_doUpdateLotOccupantType) router.post(
'/doUpdateLotOccupantType',
handler_doUpdateLotOccupantType as RequestHandler
)
router.post('/doMoveLotOccupantTypeUp', handler_doMoveLotOccupantTypeUp) router.post(
'/doMoveLotOccupantTypeUp',
handler_doMoveLotOccupantTypeUp as RequestHandler
)
router.post('/doMoveLotOccupantTypeDown', handler_doMoveLotOccupantTypeDown) router.post(
'/doMoveLotOccupantTypeDown',
handler_doMoveLotOccupantTypeDown as RequestHandler
)
router.post('/doDeleteLotOccupantType', handler_doDeleteLotOccupantType) router.post(
'/doDeleteLotOccupantType',
handler_doDeleteLotOccupantType as RequestHandler
)
// Cleanup // Cleanup
router.get('/cleanup', handler_cleanup) router.get('/cleanup', handler_cleanup)
router.post('/doCleanupDatabase', handler_doCleanupDatabase) router.post('/doCleanupDatabase', handler_doCleanupDatabase as RequestHandler)
// Ntfy Startup // Ntfy Startup

View File

@ -1,9 +1,9 @@
import { Router } from 'express' import { Router, RequestHandler } from 'express'
import handler_milestoneICS from '../handlers/api-get/milestoneICS.js' import handler_milestoneICS from '../handlers/api-get/milestoneICS.js'
export const router = Router() export const router = Router()
router.get('/milestoneICS', handler_milestoneICS) router.get('/milestoneICS', handler_milestoneICS as RequestHandler)
export default router export default router

View File

@ -1,9 +1,9 @@
import { Router } from 'express' import { Router, RequestHandler } from 'express'
import handler_dashboard from '../handlers/dashboard-get/dashboard.js' import handler_dashboard from '../handlers/dashboard-get/dashboard.js'
export const router = Router() export const router = Router()
router.get('/', handler_dashboard) router.get('/', handler_dashboard as RequestHandler)
export default router export default router

View File

@ -1,4 +1,4 @@
import { Router } from 'express' import { RequestHandler, Router } from 'express'
import handler_search from '../handlers/lotOccupancies-get/search.js' import handler_search from '../handlers/lotOccupancies-get/search.js'
import handler_doSearchLotOccupancies from '../handlers/lotOccupancies-post/doSearchLotOccupancies.js' import handler_doSearchLotOccupancies from '../handlers/lotOccupancies-post/doSearchLotOccupancies.js'
@ -36,54 +36,61 @@ export const router = Router()
// Search // Search
router.get('/', handler_search) router.get('/', handler_search as RequestHandler)
router.post('/doSearchLotOccupancies', handler_doSearchLotOccupancies) router.post(
'/doSearchLotOccupancies',
handler_doSearchLotOccupancies as RequestHandler
)
// Create // Create
router.get('/new', permissionHandlers.updateGetHandler, handler_new) router.get(
'/new',
permissionHandlers.updateGetHandler,
handler_new as RequestHandler
)
router.post( router.post(
'/doGetOccupancyTypeFields', '/doGetOccupancyTypeFields',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doGetOccupancyTypeFields handler_doGetOccupancyTypeFields as RequestHandler
) )
router.post( router.post(
'/doCreateLotOccupancy', '/doCreateLotOccupancy',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doCreateLotOccupancy handler_doCreateLotOccupancy as RequestHandler
) )
// View // View
router.get('/:lotOccupancyId', handler_view) router.get('/:lotOccupancyId', handler_view as RequestHandler)
// Edit // Edit
router.get( router.get(
'/:lotOccupancyId/edit', '/:lotOccupancyId/edit',
permissionHandlers.updateGetHandler, permissionHandlers.updateGetHandler,
handler_edit handler_edit as RequestHandler
) )
router.post( router.post(
'/doUpdateLotOccupancy', '/doUpdateLotOccupancy',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doUpdateLotOccupancy handler_doUpdateLotOccupancy as RequestHandler
) )
router.post( router.post(
'/doCopyLotOccupancy', '/doCopyLotOccupancy',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doCopyLotOccupancy handler_doCopyLotOccupancy as RequestHandler
) )
router.post( router.post(
'/doDeleteLotOccupancy', '/doDeleteLotOccupancy',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doDeleteLotOccupancy handler_doDeleteLotOccupancy as RequestHandler
) )
// Occupants // Occupants
@ -91,25 +98,25 @@ router.post(
router.post( router.post(
'/doSearchPastOccupants', '/doSearchPastOccupants',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doSearchPastOccupants handler_doSearchPastOccupants as RequestHandler
) )
router.post( router.post(
'/doAddLotOccupancyOccupant', '/doAddLotOccupancyOccupant',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doAddLotOccupancyOccupant handler_doAddLotOccupancyOccupant as RequestHandler
) )
router.post( router.post(
'/doUpdateLotOccupancyOccupant', '/doUpdateLotOccupancyOccupant',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doUpdateLotOccupancyOccupant handler_doUpdateLotOccupancyOccupant as RequestHandler
) )
router.post( router.post(
'/doDeleteLotOccupancyOccupant', '/doDeleteLotOccupancyOccupant',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doDeleteLotOccupancyOccupant handler_doDeleteLotOccupancyOccupant as RequestHandler
) )
// Comments // Comments
@ -117,19 +124,19 @@ router.post(
router.post( router.post(
'/doAddLotOccupancyComment', '/doAddLotOccupancyComment',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doAddLotOccupancyComment handler_doAddLotOccupancyComment as RequestHandler
) )
router.post( router.post(
'/doUpdateLotOccupancyComment', '/doUpdateLotOccupancyComment',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doUpdateLotOccupancyComment handler_doUpdateLotOccupancyComment as RequestHandler
) )
router.post( router.post(
'/doDeleteLotOccupancyComment', '/doDeleteLotOccupancyComment',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doDeleteLotOccupancyComment handler_doDeleteLotOccupancyComment as RequestHandler
) )
// Fees // Fees
@ -137,19 +144,19 @@ router.post(
router.post( router.post(
'/doGetFees', '/doGetFees',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doGetFees handler_doGetFees as RequestHandler
) )
router.post( router.post(
'/doAddLotOccupancyFee', '/doAddLotOccupancyFee',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doAddLotOccupancyFee handler_doAddLotOccupancyFee as RequestHandler
) )
router.post( router.post(
'/doDeleteLotOccupancyFee', '/doDeleteLotOccupancyFee',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doDeleteLotOccupancyFee handler_doDeleteLotOccupancyFee as RequestHandler
) )
// Transactions // Transactions
@ -157,13 +164,13 @@ router.post(
router.post( router.post(
'/doAddLotOccupancyTransaction', '/doAddLotOccupancyTransaction',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doAddLotOccupancyTransaction handler_doAddLotOccupancyTransaction as RequestHandler
) )
router.post( router.post(
'/doDeleteLotOccupancyTransaction', '/doDeleteLotOccupancyTransaction',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doDeleteLotOccupancyTransaction handler_doDeleteLotOccupancyTransaction as RequestHandler
) )
export default router export default router

View File

@ -1,4 +1,4 @@
import { Router } from 'express' import { RequestHandler, Router } from 'express'
import * as permissionHandlers from '../handlers/permissions.js' import * as permissionHandlers from '../handlers/permissions.js'
@ -28,64 +28,72 @@ export const router = Router()
* Lot Search * Lot Search
*/ */
router.get('/', handler_search) router.get('/', handler_search as RequestHandler)
router.post('/doSearchLots', handler_doSearchLots) router.post('/doSearchLots', handler_doSearchLots as RequestHandler)
/* /*
* Lot View / Edit * Lot View / Edit
*/ */
router.get('/new', permissionHandlers.updateGetHandler, handler_new) router.get(
'/new',
permissionHandlers.updateGetHandler,
handler_new as RequestHandler
)
router.get('/:lotId', handler_view) router.get('/:lotId', handler_view as RequestHandler)
router.get('/:lotId/next', handler_next) router.get('/:lotId/next', handler_next as RequestHandler)
router.get('/:lotId/previous', handler_previous) router.get('/:lotId/previous', handler_previous as RequestHandler)
router.get('/:lotId/edit', permissionHandlers.updateGetHandler, handler_edit) router.get(
'/:lotId/edit',
permissionHandlers.updateGetHandler,
handler_edit as RequestHandler
)
router.post( router.post(
'/doGetLotTypeFields', '/doGetLotTypeFields',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doGetLotTypeFields handler_doGetLotTypeFields as RequestHandler
) )
router.post( router.post(
'/doCreateLot', '/doCreateLot',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doCreateLot handler_doCreateLot as RequestHandler
) )
router.post( router.post(
'/doUpdateLot', '/doUpdateLot',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doUpdateLot handler_doUpdateLot as RequestHandler
) )
router.post( router.post(
'/doDeleteLot', '/doDeleteLot',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doDeleteLot handler_doDeleteLot as RequestHandler
) )
router.post( router.post(
'/doAddLotComment', '/doAddLotComment',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doAddLotComment handler_doAddLotComment as RequestHandler
) )
router.post( router.post(
'/doUpdateLotComment', '/doUpdateLotComment',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doUpdateLotComment handler_doUpdateLotComment as RequestHandler
) )
router.post( router.post(
'/doDeleteLotComment', '/doDeleteLotComment',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doDeleteLotComment handler_doDeleteLotComment as RequestHandler
) )
export default router export default router

View File

@ -1,4 +1,4 @@
import { Router } from 'express' import { RequestHandler, Router } from 'express'
import * as permissionHandlers from '../handlers/permissions.js' import * as permissionHandlers from '../handlers/permissions.js'
@ -14,30 +14,38 @@ import handler_doDeleteMap from '../handlers/maps-post/doDeleteMap.js'
export const router = Router() export const router = Router()
router.get('/', handler_search) router.get('/', handler_search as RequestHandler)
router.get('/new', permissionHandlers.updateGetHandler, handler_new) router.get(
'/new',
permissionHandlers.updateGetHandler,
handler_new as RequestHandler
)
router.get('/:mapId', handler_view) router.get('/:mapId', handler_view as RequestHandler)
router.get('/:mapId/edit', permissionHandlers.updateGetHandler, handler_edit) router.get(
'/:mapId/edit',
permissionHandlers.updateGetHandler,
handler_edit as RequestHandler
)
router.post( router.post(
'/doCreateMap', '/doCreateMap',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doCreateMap handler_doCreateMap as RequestHandler
) )
router.post( router.post(
'/doUpdateMap', '/doUpdateMap',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doUpdateMap handler_doUpdateMap as RequestHandler
) )
router.post( router.post(
'/doDeleteMap', '/doDeleteMap',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doDeleteMap handler_doDeleteMap as RequestHandler
) )
export default router export default router

View File

@ -1,12 +1,12 @@
import { Router } from 'express' import { RequestHandler, Router } from 'express'
import handler_screen from '../handlers/print-get/screen.js' import handler_screen from '../handlers/print-get/screen.js'
import handler_pdf from '../handlers/print-get/pdf.js' import handler_pdf from '../handlers/print-get/pdf.js'
export const router = Router() export const router = Router()
router.get('/screen/:printName', handler_screen) router.get('/screen/:printName', handler_screen as RequestHandler)
router.get('/pdf/:printName', handler_pdf) router.get('/pdf/:printName', handler_pdf as RequestHandler)
export default router export default router

View File

@ -1,12 +1,12 @@
import { Router } from 'express' import { RequestHandler, Router } from 'express'
import handler_search from '../handlers/reports-get/search.js' import handler_search from '../handlers/reports-get/search.js'
import handler_reportName from '../handlers/reports-get/reportName.js' import handler_reportName from '../handlers/reports-get/reportName.js'
export const router = Router() export const router = Router()
router.get('/', handler_search) router.get('/', handler_search as RequestHandler)
router.all('/:reportName', handler_reportName) router.all('/:reportName', handler_reportName as RequestHandler)
export default router export default router

View File

@ -1,4 +1,4 @@
import { Router } from 'express' import { RequestHandler, Router } from 'express'
import * as permissionHandlers from '../handlers/permissions.js' import * as permissionHandlers from '../handlers/permissions.js'
@ -42,38 +42,45 @@ export const router = Router()
// Search // Search
router.get('/', handler_search) router.get('/', handler_search as RequestHandler)
router.post('/doSearchWorkOrders', handler_doSearchWorkOrders) router.post('/doSearchWorkOrders', handler_doSearchWorkOrders as RequestHandler)
// Milestone Calendar // Milestone Calendar
router.get('/milestoneCalendar', handler_milestoneCalendar) router.get('/milestoneCalendar', handler_milestoneCalendar as RequestHandler)
router.post('/doGetWorkOrderMilestones', handler_doGetWorkOrderMilestones) router.post(
'/doGetWorkOrderMilestones',
handler_doGetWorkOrderMilestones as RequestHandler
)
// Outlook Integration // Outlook Integration
router.get('/outlook', handler_outlook) router.get('/outlook', handler_outlook as RequestHandler)
// New // New
router.get('/new', permissionHandlers.adminGetHandler, handler_new) router.get(
'/new',
permissionHandlers.adminGetHandler,
handler_new as RequestHandler
)
router.post( router.post(
'/doCreateWorkOrder', '/doCreateWorkOrder',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doCreateWorkOrder handler_doCreateWorkOrder as RequestHandler
) )
// View // View
router.get('/:workOrderId', handler_view) router.get('/:workOrderId', handler_view as RequestHandler)
router.post( router.post(
'/doReopenWorkOrder', '/doReopenWorkOrder',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doReopenWorkOrder handler_doReopenWorkOrder as RequestHandler
) )
// Edit // Edit
@ -81,25 +88,25 @@ router.post(
router.get( router.get(
'/:workOrderId/edit', '/:workOrderId/edit',
permissionHandlers.updateGetHandler, permissionHandlers.updateGetHandler,
handler_edit handler_edit as RequestHandler
) )
router.post( router.post(
'/doUpdateWorkOrder', '/doUpdateWorkOrder',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doUpdateWorkOrder handler_doUpdateWorkOrder as RequestHandler
) )
router.post( router.post(
'/doCloseWorkOrder', '/doCloseWorkOrder',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doCloseWorkOrder handler_doCloseWorkOrder as RequestHandler
) )
router.post( router.post(
'/doDeleteWorkOrder', '/doDeleteWorkOrder',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doDeleteWorkOrder handler_doDeleteWorkOrder as RequestHandler
) )
// Lot Occupancy // Lot Occupancy
@ -107,31 +114,31 @@ router.post(
router.post( router.post(
'/doAddWorkOrderLotOccupancy', '/doAddWorkOrderLotOccupancy',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doAddWorkOrderLotOccupancy handler_doAddWorkOrderLotOccupancy as RequestHandler
) )
router.post( router.post(
'/doDeleteWorkOrderLotOccupancy', '/doDeleteWorkOrderLotOccupancy',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doDeleteWorkOrderLotOccupancy handler_doDeleteWorkOrderLotOccupancy as RequestHandler
) )
router.post( router.post(
'/doAddWorkOrderLot', '/doAddWorkOrderLot',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doAddWorkOrderLot handler_doAddWorkOrderLot as RequestHandler
) )
router.post( router.post(
'/doUpdateLotStatus', '/doUpdateLotStatus',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doUpdateLotStatus handler_doUpdateLotStatus as RequestHandler
) )
router.post( router.post(
'/doDeleteWorkOrderLot', '/doDeleteWorkOrderLot',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doDeleteWorkOrderLot handler_doDeleteWorkOrderLot as RequestHandler
) )
// Comments // Comments
@ -139,19 +146,19 @@ router.post(
router.post( router.post(
'/doAddWorkOrderComment', '/doAddWorkOrderComment',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doAddWorkOrderComment handler_doAddWorkOrderComment as RequestHandler
) )
router.post( router.post(
'/doUpdateWorkOrderComment', '/doUpdateWorkOrderComment',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doUpdateWorkOrderComment handler_doUpdateWorkOrderComment as RequestHandler
) )
router.post( router.post(
'/doDeleteWorkOrderComment', '/doDeleteWorkOrderComment',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doDeleteWorkOrderComment handler_doDeleteWorkOrderComment as RequestHandler
) )
// Milestones // Milestones
@ -159,31 +166,31 @@ router.post(
router.post( router.post(
'/doAddWorkOrderMilestone', '/doAddWorkOrderMilestone',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doAddWorkOrderMilestone handler_doAddWorkOrderMilestone as RequestHandler
) )
router.post( router.post(
'/doUpdateWorkOrderMilestone', '/doUpdateWorkOrderMilestone',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doUpdateWorkOrderMilestone handler_doUpdateWorkOrderMilestone as RequestHandler
) )
router.post( router.post(
'/doCompleteWorkOrderMilestone', '/doCompleteWorkOrderMilestone',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doCompleteWorkOrderMilestone handler_doCompleteWorkOrderMilestone as RequestHandler
) )
router.post( router.post(
'/doReopenWorkOrderMilestone', '/doReopenWorkOrderMilestone',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doReopenWorkOrderMilestone handler_doReopenWorkOrderMilestone as RequestHandler
) )
router.post( router.post(
'/doDeleteWorkOrderMilestone', '/doDeleteWorkOrderMilestone',
permissionHandlers.updatePostHandler, permissionHandlers.updatePostHandler,
handler_doDeleteWorkOrderMilestone handler_doDeleteWorkOrderMilestone as RequestHandler
) )
export default router export default router