linting
parent
7011ab1adc
commit
33e2bbe751
2
app.ts
2
app.ts
|
|
@ -229,7 +229,7 @@ app.use(`${urlPrefix}/dashboard`, sessionChecker, routerDashboard)
|
|||
|
||||
app.use(
|
||||
`${urlPrefix}/api/:apiKey`,
|
||||
permissionHandlers.apiGetHandler as RequestHandler,
|
||||
permissionHandlers.apiGetHandler,
|
||||
routerApi
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
export declare function moveFeeDown(feeId: number | string): Promise<boolean>;
|
||||
export declare function moveFeeDownToBottom(feeId: number | string): Promise<boolean>;
|
||||
export declare function moveFeeUp(feeId: number): Promise<boolean>;
|
||||
export declare function moveFeeUp(feeId: number | string): Promise<boolean>;
|
||||
export declare function moveFeeUpToTop(feeId: number | string): Promise<boolean>;
|
||||
export default moveFeeUp;
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ export async function moveFeeDownToBottom(
|
|||
return true
|
||||
}
|
||||
|
||||
export async function moveFeeUp(feeId: number): Promise<boolean> {
|
||||
export async function moveFeeUp(feeId: number | string): Promise<boolean> {
|
||||
const database = await acquireConnection()
|
||||
|
||||
const currentFee = (await getFee(feeId, database)) as Fee
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
export declare function moveOccupancyTypeFieldDown(occupancyTypeFieldId: number): Promise<boolean>;
|
||||
export declare function moveOccupancyTypeFieldDownToBottom(occupancyTypeFieldId: number): Promise<boolean>;
|
||||
export declare function moveOccupancyTypeFieldUp(occupancyTypeFieldId: number): Promise<boolean>;
|
||||
export declare function moveOccupancyTypeFieldUpToTop(occupancyTypeFieldId: number): Promise<boolean>;
|
||||
export declare function moveOccupancyTypeFieldDown(occupancyTypeFieldId: number | string): Promise<boolean>;
|
||||
export declare function moveOccupancyTypeFieldDownToBottom(occupancyTypeFieldId: number | string): Promise<boolean>;
|
||||
export declare function moveOccupancyTypeFieldUp(occupancyTypeFieldId: number | string): Promise<boolean>;
|
||||
export declare function moveOccupancyTypeFieldUpToTop(occupancyTypeFieldId: number | string): Promise<boolean>;
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import { acquireConnection } from './pool.js'
|
|||
import { updateRecordOrderNumber } from './updateRecordOrderNumber.js'
|
||||
|
||||
function getCurrentField(
|
||||
occupancyTypeFieldId: number,
|
||||
occupancyTypeFieldId: number | string,
|
||||
connectedDatabase: PoolConnection
|
||||
): { occupancyTypeId?: number; orderNumber: number } {
|
||||
return connectedDatabase
|
||||
|
|
@ -22,7 +22,7 @@ function getCurrentField(
|
|||
}
|
||||
|
||||
export async function moveOccupancyTypeFieldDown(
|
||||
occupancyTypeFieldId: number
|
||||
occupancyTypeFieldId: number | string
|
||||
): Promise<boolean> {
|
||||
const database = await acquireConnection()
|
||||
|
||||
|
|
@ -57,7 +57,7 @@ export async function moveOccupancyTypeFieldDown(
|
|||
}
|
||||
|
||||
export async function moveOccupancyTypeFieldDownToBottom(
|
||||
occupancyTypeFieldId: number
|
||||
occupancyTypeFieldId: number | string
|
||||
): Promise<boolean> {
|
||||
const database = await acquireConnection()
|
||||
|
||||
|
|
@ -116,7 +116,7 @@ export async function moveOccupancyTypeFieldDownToBottom(
|
|||
}
|
||||
|
||||
export async function moveOccupancyTypeFieldUp(
|
||||
occupancyTypeFieldId: number
|
||||
occupancyTypeFieldId: number | string
|
||||
): Promise<boolean> {
|
||||
const database = await acquireConnection()
|
||||
|
||||
|
|
@ -156,7 +156,7 @@ export async function moveOccupancyTypeFieldUp(
|
|||
}
|
||||
|
||||
export async function moveOccupancyTypeFieldUpToTop(
|
||||
occupancyTypeFieldId: number
|
||||
occupancyTypeFieldId: number | string
|
||||
): Promise<boolean> {
|
||||
const database = await acquireConnection()
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
type RecordTable = 'FeeCategories' | 'LotOccupantTypes' | 'LotStatuses' | 'LotTypes' | 'OccupancyTypes' | 'WorkOrderMilestoneTypes' | 'WorkOrderTypes';
|
||||
export declare function moveRecordDown(recordTable: RecordTable, recordId: number): Promise<boolean>;
|
||||
export declare function moveRecordDownToBottom(recordTable: RecordTable, recordId: number): Promise<boolean>;
|
||||
export declare function moveRecordUp(recordTable: RecordTable, recordId: number): Promise<boolean>;
|
||||
export declare function moveRecordUpToTop(recordTable: RecordTable, recordId: number): Promise<boolean>;
|
||||
export declare function moveRecordDown(recordTable: RecordTable, recordId: number | string): Promise<boolean>;
|
||||
export declare function moveRecordDownToBottom(recordTable: RecordTable, recordId: number | string): Promise<boolean>;
|
||||
export declare function moveRecordUp(recordTable: RecordTable, recordId: number | string): Promise<boolean>;
|
||||
export declare function moveRecordUpToTop(recordTable: RecordTable, recordId: number | string): Promise<boolean>;
|
||||
export {};
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ function getCurrentOrderNumber(
|
|||
.prepare(
|
||||
`select orderNumber
|
||||
from ${recordTable}
|
||||
where ${recordIdColumns.get(recordTable)!} = ?`
|
||||
where ${recordIdColumns.get(recordTable)} = ?`
|
||||
)
|
||||
.get(recordId) as { orderNumber: number }
|
||||
).orderNumber
|
||||
|
|
@ -43,7 +43,7 @@ function getCurrentOrderNumber(
|
|||
|
||||
export async function moveRecordDown(
|
||||
recordTable: RecordTable,
|
||||
recordId: number
|
||||
recordId: number | string
|
||||
): Promise<boolean> {
|
||||
const database = await acquireConnection()
|
||||
|
||||
|
|
@ -78,7 +78,7 @@ export async function moveRecordDown(
|
|||
|
||||
export async function moveRecordDownToBottom(
|
||||
recordTable: RecordTable,
|
||||
recordId: number
|
||||
recordId: number | string
|
||||
): Promise<boolean> {
|
||||
const database = await acquireConnection()
|
||||
|
||||
|
|
@ -120,7 +120,7 @@ export async function moveRecordDownToBottom(
|
|||
|
||||
export async function moveRecordUp(
|
||||
recordTable: RecordTable,
|
||||
recordId: number
|
||||
recordId: number | string
|
||||
): Promise<boolean> {
|
||||
const database = await acquireConnection()
|
||||
|
||||
|
|
@ -160,7 +160,7 @@ export async function moveRecordUp(
|
|||
|
||||
export async function moveRecordUpToTop(
|
||||
recordTable: RecordTable,
|
||||
recordId: number
|
||||
recordId: number | string
|
||||
): Promise<boolean> {
|
||||
const database = await acquireConnection()
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ export const config = tseslint.config(...configWebApp, {
|
|||
'warn',
|
||||
{
|
||||
cspell: {
|
||||
words: [...cspellWords, 'ical', 'ntfy']
|
||||
words: [...cspellWords, 'ical', 'preneed', 'ntfy']
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ export const config = tseslint.config(...configWebApp, {
|
|||
'warn',
|
||||
{
|
||||
cspell: {
|
||||
words: [...cspellWords, 'ical', 'ntfy']
|
||||
words: [...cspellWords, 'ical', 'preneed', 'ntfy']
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
|
|||
|
|
@ -1,5 +1,3 @@
|
|||
// eslint-disable-next-line @eslint-community/eslint-comments/disable-enable-pair
|
||||
/* eslint-disable @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return, n/no-unpublished-import */
|
||||
import gulp from 'gulp';
|
||||
import gulpSass from 'gulp-sass';
|
||||
import * as dartSass from 'sass';
|
||||
|
|
|
|||
|
|
@ -1,6 +1,3 @@
|
|||
// eslint-disable-next-line @eslint-community/eslint-comments/disable-enable-pair
|
||||
/* eslint-disable @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return, n/no-unpublished-import */
|
||||
|
||||
import gulp from 'gulp'
|
||||
import gulpSass from 'gulp-sass'
|
||||
import * as dartSass from 'sass'
|
||||
|
|
|
|||
|
|
@ -1,2 +1,4 @@
|
|||
import type { Request, Response } from 'express';
|
||||
export default function handler(request: Request, response: Response): Promise<void>;
|
||||
export default function handler(request: Request<unknown, unknown, {
|
||||
workOrderTypeId: string;
|
||||
}>, response: Response): Promise<void>;
|
||||
|
|
|
|||
|
|
@ -4,12 +4,12 @@ import { deleteRecord } from '../../database/deleteRecord.js'
|
|||
import { getWorkOrderTypes } from '../../helpers/functions.cache.js'
|
||||
|
||||
export default async function handler(
|
||||
request: Request,
|
||||
request: Request<unknown, unknown, { workOrderTypeId: string }>,
|
||||
response: Response
|
||||
): Promise<void> {
|
||||
const success = await deleteRecord(
|
||||
'WorkOrderTypes',
|
||||
request.body.workOrderTypeId as string,
|
||||
request.body.workOrderTypeId,
|
||||
request.session.user as User
|
||||
)
|
||||
|
||||
|
|
@ -20,4 +20,3 @@ export default async function handler(
|
|||
workOrderTypes
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,2 +1,5 @@
|
|||
import type { Request, Response } from 'express';
|
||||
export default function handler(request: Request, response: Response): Promise<void>;
|
||||
export default function handler(request: Request<unknown, unknown, {
|
||||
feeCategoryId: string;
|
||||
moveToEnd: '0' | '1';
|
||||
}>, response: Response): Promise<void>;
|
||||
|
|
|
|||
|
|
@ -7,7 +7,11 @@ import {
|
|||
} from '../../database/moveRecord.js'
|
||||
|
||||
export default async function handler(
|
||||
request: Request,
|
||||
request: Request<
|
||||
unknown,
|
||||
unknown,
|
||||
{ feeCategoryId: string; moveToEnd: '0' | '1' }
|
||||
>,
|
||||
response: Response
|
||||
): Promise<void> {
|
||||
const success =
|
||||
|
|
|
|||
|
|
@ -1,2 +1,5 @@
|
|||
import type { Request, Response } from 'express';
|
||||
export default function handler(request: Request, response: Response): Promise<void>;
|
||||
export default function handler(request: Request<unknown, unknown, {
|
||||
feeCategoryId: string;
|
||||
moveToEnd: '0' | '1';
|
||||
}>, response: Response): Promise<void>;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import getFeeCategories from '../../database/getFeeCategories.js'
|
|||
import { moveRecordUp, moveRecordUpToTop } from '../../database/moveRecord.js'
|
||||
|
||||
export default async function handler(
|
||||
request: Request,
|
||||
request: Request<unknown, unknown, { feeCategoryId: string; moveToEnd: '0' | '1' }>,
|
||||
response: Response
|
||||
): Promise<void> {
|
||||
const success =
|
||||
|
|
|
|||
|
|
@ -1,2 +1,5 @@
|
|||
import type { Request, Response } from 'express';
|
||||
export default function handler(request: Request, response: Response): Promise<void>;
|
||||
export default function handler(request: Request<unknown, unknown, {
|
||||
feeId: string;
|
||||
moveToEnd: '0' | '1';
|
||||
}>, response: Response): Promise<void>;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import getFeeCategories from '../../database/getFeeCategories.js'
|
|||
import { moveFeeDown, moveFeeDownToBottom } from '../../database/moveFee.js'
|
||||
|
||||
export default async function handler(
|
||||
request: Request,
|
||||
request: Request<unknown, unknown, { feeId: string; moveToEnd: '0' | '1' }>,
|
||||
response: Response
|
||||
): Promise<void> {
|
||||
const success =
|
||||
|
|
|
|||
|
|
@ -1,2 +1,5 @@
|
|||
import type { Request, Response } from 'express';
|
||||
export default function handler(request: Request, response: Response): Promise<void>;
|
||||
export default function handler(request: Request<unknown, unknown, {
|
||||
feeId: string;
|
||||
moveToEnd: '0' | '1';
|
||||
}>, response: Response): Promise<void>;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import getFeeCategories from '../../database/getFeeCategories.js'
|
|||
import { moveFeeUp, moveFeeUpToTop } from '../../database/moveFee.js'
|
||||
|
||||
export default async function handler(
|
||||
request: Request,
|
||||
request: Request<unknown, unknown, { feeId: string; moveToEnd: '0' | '1' }>,
|
||||
response: Response
|
||||
): Promise<void> {
|
||||
const success =
|
||||
|
|
|
|||
|
|
@ -1,2 +1,5 @@
|
|||
import type { Request, Response } from 'express';
|
||||
export default function handler(request: Request, response: Response): Promise<void>;
|
||||
export default function handler(request: Request<unknown, unknown, {
|
||||
lotOccupantTypeId: string;
|
||||
moveToEnd: '0' | '1';
|
||||
}>, response: Response): Promise<void>;
|
||||
|
|
|
|||
|
|
@ -7,7 +7,11 @@ import {
|
|||
import { getLotOccupantTypes } from '../../helpers/functions.cache.js'
|
||||
|
||||
export default async function handler(
|
||||
request: Request,
|
||||
request: Request<
|
||||
unknown,
|
||||
unknown,
|
||||
{ lotOccupantTypeId: string; moveToEnd: '0' | '1' }
|
||||
>,
|
||||
response: Response
|
||||
): Promise<void> {
|
||||
const success =
|
||||
|
|
@ -25,4 +29,3 @@ export default async function handler(
|
|||
lotOccupantTypes
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,2 +1,5 @@
|
|||
import type { Request, Response } from 'express';
|
||||
export default function handler(request: Request, response: Response): Promise<void>;
|
||||
export default function handler(request: Request<unknown, unknown, {
|
||||
lotOccupantTypeId: string;
|
||||
moveToEnd: '0' | '1';
|
||||
}>, response: Response): Promise<void>;
|
||||
|
|
|
|||
|
|
@ -1,18 +1,22 @@
|
|||
import type { Request, Response } from 'express'
|
||||
|
||||
import {
|
||||
moveRecordUp,
|
||||
moveRecordUpToTop
|
||||
} from '../../database/moveRecord.js'
|
||||
import { moveRecordUp, moveRecordUpToTop } from '../../database/moveRecord.js'
|
||||
import { getLotOccupantTypes } from '../../helpers/functions.cache.js'
|
||||
|
||||
export default async function handler(
|
||||
request: Request,
|
||||
request: Request<
|
||||
unknown,
|
||||
unknown,
|
||||
{ lotOccupantTypeId: string; moveToEnd: '0' | '1' }
|
||||
>,
|
||||
response: Response
|
||||
): Promise<void> {
|
||||
const success =
|
||||
request.body.moveToEnd === '1'
|
||||
? await moveRecordUpToTop('LotOccupantTypes', request.body.lotOccupantTypeId)
|
||||
? await moveRecordUpToTop(
|
||||
'LotOccupantTypes',
|
||||
request.body.lotOccupantTypeId
|
||||
)
|
||||
: await moveRecordUp('LotOccupantTypes', request.body.lotOccupantTypeId)
|
||||
|
||||
const lotOccupantTypes = await getLotOccupantTypes()
|
||||
|
|
@ -22,4 +26,3 @@ export default async function handler(
|
|||
lotOccupantTypes
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,2 +1,5 @@
|
|||
import type { Request, Response } from 'express';
|
||||
export default function handler(request: Request, response: Response): Promise<void>;
|
||||
export default function handler(request: Request<unknown, unknown, {
|
||||
lotStatusId: string;
|
||||
moveToEnd: '0' | '1';
|
||||
}>, response: Response): Promise<void>;
|
||||
|
|
|
|||
|
|
@ -7,7 +7,11 @@ import {
|
|||
import { getLotStatuses } from '../../helpers/functions.cache.js'
|
||||
|
||||
export default async function handler(
|
||||
request: Request,
|
||||
request: Request<
|
||||
unknown,
|
||||
unknown,
|
||||
{ lotStatusId: string; moveToEnd: '0' | '1' }
|
||||
>,
|
||||
response: Response
|
||||
): Promise<void> {
|
||||
const success =
|
||||
|
|
@ -22,4 +26,3 @@ export default async function handler(
|
|||
lotStatuses
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,2 +1,5 @@
|
|||
import type { Request, Response } from 'express';
|
||||
export default function handler(request: Request, response: Response): Promise<void>;
|
||||
export default function handler(request: Request<unknown, unknown, {
|
||||
lotStatusId: string;
|
||||
moveToEnd: '0' | '1';
|
||||
}>, response: Response): Promise<void>;
|
||||
|
|
|
|||
|
|
@ -1,13 +1,14 @@
|
|||
import type { Request, Response } from 'express'
|
||||
|
||||
import {
|
||||
moveRecordUp,
|
||||
moveRecordUpToTop
|
||||
} from '../../database/moveRecord.js'
|
||||
import { moveRecordUp, moveRecordUpToTop } from '../../database/moveRecord.js'
|
||||
import { getLotStatuses } from '../../helpers/functions.cache.js'
|
||||
|
||||
export default async function handler(
|
||||
request: Request,
|
||||
request: Request<
|
||||
unknown,
|
||||
unknown,
|
||||
{ lotStatusId: string; moveToEnd: '0' | '1' }
|
||||
>,
|
||||
response: Response
|
||||
): Promise<void> {
|
||||
const success =
|
||||
|
|
@ -22,4 +23,3 @@ export default async function handler(
|
|||
lotStatuses
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,2 +1,5 @@
|
|||
import type { Request, Response } from 'express';
|
||||
export default function handler(request: Request, response: Response): Promise<void>;
|
||||
export default function handler(request: Request<unknown, unknown, {
|
||||
lotTypeId: string;
|
||||
moveToEnd: '0' | '1';
|
||||
}>, response: Response): Promise<void>;
|
||||
|
|
|
|||
|
|
@ -7,7 +7,11 @@ import {
|
|||
import { getLotTypes } from '../../helpers/functions.cache.js'
|
||||
|
||||
export default async function handler(
|
||||
request: Request,
|
||||
request: Request<
|
||||
unknown,
|
||||
unknown,
|
||||
{ lotTypeId: string; moveToEnd: '0' | '1' }
|
||||
>,
|
||||
response: Response
|
||||
): Promise<void> {
|
||||
const success =
|
||||
|
|
@ -22,4 +26,3 @@ export default async function handler(
|
|||
lotTypes
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,2 +1,5 @@
|
|||
import type { Request, Response } from 'express';
|
||||
export default function handler(request: Request, response: Response): Promise<void>;
|
||||
export default function handler(request: Request<unknown, unknown, {
|
||||
lotTypeFieldId: string;
|
||||
moveToEnd: '0' | '1';
|
||||
}>, response: Response): Promise<void>;
|
||||
|
|
|
|||
|
|
@ -4,11 +4,14 @@ import {
|
|||
moveLotTypeFieldDown,
|
||||
moveLotTypeFieldDownToBottom
|
||||
} from '../../database/moveLotTypeField.js'
|
||||
|
||||
import { getLotTypes } from '../../helpers/functions.cache.js'
|
||||
|
||||
export default async function handler(
|
||||
request: Request,
|
||||
request: Request<
|
||||
unknown,
|
||||
unknown,
|
||||
{ lotTypeFieldId: string; moveToEnd: '0' | '1' }
|
||||
>,
|
||||
response: Response
|
||||
): Promise<void> {
|
||||
const success =
|
||||
|
|
@ -23,4 +26,3 @@ export default async function handler(
|
|||
lotTypes
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,2 +1,5 @@
|
|||
import type { Request, Response } from 'express';
|
||||
export default function handler(request: Request, response: Response): Promise<void>;
|
||||
export default function handler(request: Request<unknown, unknown, {
|
||||
lotTypeFieldId: string;
|
||||
moveToEnd: '0' | '1';
|
||||
}>, response: Response): Promise<void>;
|
||||
|
|
|
|||
|
|
@ -4,11 +4,14 @@ import {
|
|||
moveLotTypeFieldUp,
|
||||
moveLotTypeFieldUpToTop
|
||||
} from '../../database/moveLotTypeField.js'
|
||||
|
||||
import { getLotTypes } from '../../helpers/functions.cache.js'
|
||||
|
||||
export default async function handler(
|
||||
request: Request,
|
||||
request: Request<
|
||||
unknown,
|
||||
unknown,
|
||||
{ lotTypeFieldId: string; moveToEnd: '0' | '1' }
|
||||
>,
|
||||
response: Response
|
||||
): Promise<void> {
|
||||
const success =
|
||||
|
|
@ -23,4 +26,3 @@ export default async function handler(
|
|||
lotTypes
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,2 +1,5 @@
|
|||
import type { Request, Response } from 'express';
|
||||
export default function handler(request: Request, response: Response): Promise<void>;
|
||||
export default function handler(request: Request<unknown, unknown, {
|
||||
lotTypeId: string;
|
||||
moveToEnd: '0' | '1';
|
||||
}>, response: Response): Promise<void>;
|
||||
|
|
|
|||
|
|
@ -1,13 +1,14 @@
|
|||
import type { Request, Response } from 'express'
|
||||
|
||||
import {
|
||||
moveRecordUp,
|
||||
moveRecordUpToTop
|
||||
} from '../../database/moveRecord.js'
|
||||
import { moveRecordUp, moveRecordUpToTop } from '../../database/moveRecord.js'
|
||||
import { getLotTypes } from '../../helpers/functions.cache.js'
|
||||
|
||||
export default async function handler(
|
||||
request: Request,
|
||||
request: Request<
|
||||
unknown,
|
||||
unknown,
|
||||
{ lotTypeId: string; moveToEnd: '0' | '1' }
|
||||
>,
|
||||
response: Response
|
||||
): Promise<void> {
|
||||
const success =
|
||||
|
|
@ -22,4 +23,3 @@ export default async function handler(
|
|||
lotTypes
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,2 +1,5 @@
|
|||
import type { Request, Response } from 'express';
|
||||
export default function handler(request: Request, response: Response): Promise<void>;
|
||||
export default function handler(request: Request<unknown, unknown, {
|
||||
occupancyTypeId: string;
|
||||
moveToEnd: '0' | '1';
|
||||
}>, response: Response): Promise<void>;
|
||||
|
|
|
|||
|
|
@ -10,12 +10,19 @@ import {
|
|||
} from '../../helpers/functions.cache.js'
|
||||
|
||||
export default async function handler(
|
||||
request: Request,
|
||||
request: Request<
|
||||
unknown,
|
||||
unknown,
|
||||
{ occupancyTypeId: string; moveToEnd: '0' | '1' }
|
||||
>,
|
||||
response: Response
|
||||
): Promise<void> {
|
||||
const success =
|
||||
request.body.moveToEnd === '1'
|
||||
? await moveRecordDownToBottom('OccupancyTypes', request.body.occupancyTypeId)
|
||||
? await moveRecordDownToBottom(
|
||||
'OccupancyTypes',
|
||||
request.body.occupancyTypeId
|
||||
)
|
||||
: await moveRecordDown('OccupancyTypes', request.body.occupancyTypeId)
|
||||
|
||||
const occupancyTypes = await getOccupancyTypes()
|
||||
|
|
@ -27,4 +34,3 @@ export default async function handler(
|
|||
allOccupancyTypeFields
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,2 +1,5 @@
|
|||
import type { Request, Response } from 'express';
|
||||
export default function handler(request: Request, response: Response): Promise<void>;
|
||||
export default function handler(request: Request<unknown, unknown, {
|
||||
occupancyTypeFieldId: string;
|
||||
moveToEnd: '0' | '1';
|
||||
}>, response: Response): Promise<void>;
|
||||
|
|
|
|||
|
|
@ -1,10 +1,9 @@
|
|||
import { moveOccupancyTypeFieldDown, moveOccupancyTypeFieldDownToBottom } from '../../database/moveOccupancyTypeField.js';
|
||||
import { getAllOccupancyTypeFields, getOccupancyTypes } from '../../helpers/functions.cache.js';
|
||||
export default async function handler(request, response) {
|
||||
const occupancyTypeFieldId = Number.parseInt(request.body.occupancyTypeFieldId, 10);
|
||||
const success = request.body.moveToEnd === '1'
|
||||
? await moveOccupancyTypeFieldDownToBottom(occupancyTypeFieldId)
|
||||
: await moveOccupancyTypeFieldDown(occupancyTypeFieldId);
|
||||
? await moveOccupancyTypeFieldDownToBottom(request.body.occupancyTypeFieldId)
|
||||
: await moveOccupancyTypeFieldDown(request.body.occupancyTypeFieldId);
|
||||
const occupancyTypes = await getOccupancyTypes();
|
||||
const allOccupancyTypeFields = await getAllOccupancyTypeFields();
|
||||
response.json({
|
||||
|
|
|
|||
|
|
@ -4,25 +4,25 @@ import {
|
|||
moveOccupancyTypeFieldDown,
|
||||
moveOccupancyTypeFieldDownToBottom
|
||||
} from '../../database/moveOccupancyTypeField.js'
|
||||
|
||||
import {
|
||||
getAllOccupancyTypeFields,
|
||||
getOccupancyTypes
|
||||
} from '../../helpers/functions.cache.js'
|
||||
|
||||
export default async function handler(
|
||||
request: Request,
|
||||
request: Request<
|
||||
unknown,
|
||||
unknown,
|
||||
{ occupancyTypeFieldId: string; moveToEnd: '0' | '1' }
|
||||
>,
|
||||
response: Response
|
||||
): Promise<void> {
|
||||
const occupancyTypeFieldId = Number.parseInt(
|
||||
request.body.occupancyTypeFieldId,
|
||||
10
|
||||
)
|
||||
|
||||
const success =
|
||||
request.body.moveToEnd === '1'
|
||||
? await moveOccupancyTypeFieldDownToBottom(occupancyTypeFieldId)
|
||||
: await moveOccupancyTypeFieldDown(occupancyTypeFieldId)
|
||||
? await moveOccupancyTypeFieldDownToBottom(
|
||||
request.body.occupancyTypeFieldId
|
||||
)
|
||||
: await moveOccupancyTypeFieldDown(request.body.occupancyTypeFieldId)
|
||||
|
||||
const occupancyTypes = await getOccupancyTypes()
|
||||
const allOccupancyTypeFields = await getAllOccupancyTypeFields()
|
||||
|
|
@ -33,4 +33,3 @@ export default async function handler(
|
|||
allOccupancyTypeFields
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,2 +1,5 @@
|
|||
import type { Request, Response } from 'express';
|
||||
export default function handler(request: Request, response: Response): Promise<void>;
|
||||
export default function handler(request: Request<unknown, unknown, {
|
||||
occupancyTypeFieldId: string;
|
||||
moveToEnd: '0' | '1';
|
||||
}>, response: Response): Promise<void>;
|
||||
|
|
|
|||
|
|
@ -1,10 +1,9 @@
|
|||
import { moveOccupancyTypeFieldUp, moveOccupancyTypeFieldUpToTop } from '../../database/moveOccupancyTypeField.js';
|
||||
import { getAllOccupancyTypeFields, getOccupancyTypes } from '../../helpers/functions.cache.js';
|
||||
export default async function handler(request, response) {
|
||||
const occupancyTypeFieldId = Number.parseInt(request.body.occupancyTypeFieldId, 10);
|
||||
const success = request.body.moveToEnd === '1'
|
||||
? await moveOccupancyTypeFieldUpToTop(occupancyTypeFieldId)
|
||||
: await moveOccupancyTypeFieldUp(occupancyTypeFieldId);
|
||||
? await moveOccupancyTypeFieldUpToTop(request.body.occupancyTypeFieldId)
|
||||
: await moveOccupancyTypeFieldUp(request.body.occupancyTypeFieldId);
|
||||
const occupancyTypes = await getOccupancyTypes();
|
||||
const allOccupancyTypeFields = await getAllOccupancyTypeFields();
|
||||
response.json({
|
||||
|
|
|
|||
|
|
@ -4,25 +4,23 @@ import {
|
|||
moveOccupancyTypeFieldUp,
|
||||
moveOccupancyTypeFieldUpToTop
|
||||
} from '../../database/moveOccupancyTypeField.js'
|
||||
|
||||
import {
|
||||
getAllOccupancyTypeFields,
|
||||
getOccupancyTypes
|
||||
} from '../../helpers/functions.cache.js'
|
||||
|
||||
export default async function handler(
|
||||
request: Request,
|
||||
request: Request<
|
||||
unknown,
|
||||
unknown,
|
||||
{ occupancyTypeFieldId: string; moveToEnd: '0' | '1' }
|
||||
>,
|
||||
response: Response
|
||||
): Promise<void> {
|
||||
const occupancyTypeFieldId = Number.parseInt(
|
||||
request.body.occupancyTypeFieldId,
|
||||
10
|
||||
)
|
||||
|
||||
const success =
|
||||
request.body.moveToEnd === '1'
|
||||
? await moveOccupancyTypeFieldUpToTop(occupancyTypeFieldId)
|
||||
: await moveOccupancyTypeFieldUp(occupancyTypeFieldId)
|
||||
? await moveOccupancyTypeFieldUpToTop(request.body.occupancyTypeFieldId)
|
||||
: await moveOccupancyTypeFieldUp(request.body.occupancyTypeFieldId)
|
||||
|
||||
const occupancyTypes = await getOccupancyTypes()
|
||||
const allOccupancyTypeFields = await getAllOccupancyTypeFields()
|
||||
|
|
@ -33,4 +31,3 @@ export default async function handler(
|
|||
allOccupancyTypeFields
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,2 +1,6 @@
|
|||
import type { Request, Response } from 'express';
|
||||
export default function handler(request: Request, response: Response): Promise<void>;
|
||||
export default function handler(request: Request<unknown, unknown, {
|
||||
occupancyTypeId: string;
|
||||
printEJS: string;
|
||||
moveToEnd: '0' | '1';
|
||||
}>, response: Response): Promise<void>;
|
||||
|
|
|
|||
|
|
@ -10,7 +10,11 @@ import {
|
|||
} from '../../helpers/functions.cache.js'
|
||||
|
||||
export default async function handler(
|
||||
request: Request,
|
||||
request: Request<
|
||||
unknown,
|
||||
unknown,
|
||||
{ occupancyTypeId: string; printEJS: string; moveToEnd: '0' | '1' }
|
||||
>,
|
||||
response: Response
|
||||
): Promise<void> {
|
||||
const success =
|
||||
|
|
@ -33,4 +37,3 @@ export default async function handler(
|
|||
allOccupancyTypeFields
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,2 +1,6 @@
|
|||
import type { Request, Response } from 'express';
|
||||
export default function handler(request: Request, response: Response): Promise<void>;
|
||||
export default function handler(request: Request<unknown, unknown, {
|
||||
occupancyTypeId: string;
|
||||
printEJS: string;
|
||||
moveToEnd: '0' | '1';
|
||||
}>, response: Response): Promise<void>;
|
||||
|
|
|
|||
|
|
@ -10,7 +10,11 @@ import {
|
|||
} from '../../helpers/functions.cache.js'
|
||||
|
||||
export default async function handler(
|
||||
request: Request,
|
||||
request: Request<
|
||||
unknown,
|
||||
unknown,
|
||||
{ occupancyTypeId: string; printEJS: string; moveToEnd: '0' | '1' }
|
||||
>,
|
||||
response: Response
|
||||
): Promise<void> {
|
||||
const success =
|
||||
|
|
@ -33,4 +37,3 @@ export default async function handler(
|
|||
allOccupancyTypeFields
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,2 +1,5 @@
|
|||
import type { Request, Response } from 'express';
|
||||
export default function handler(request: Request, response: Response): Promise<void>;
|
||||
export default function handler(request: Request<unknown, unknown, {
|
||||
occupancyTypeId: string;
|
||||
moveToEnd: '0' | '1';
|
||||
}>, response: Response): Promise<void>;
|
||||
|
|
|
|||
|
|
@ -1,16 +1,17 @@
|
|||
import type { Request, Response } from 'express'
|
||||
|
||||
import {
|
||||
moveRecordUp,
|
||||
moveRecordUpToTop
|
||||
} from '../../database/moveRecord.js'
|
||||
import { moveRecordUp, moveRecordUpToTop } from '../../database/moveRecord.js'
|
||||
import {
|
||||
getAllOccupancyTypeFields,
|
||||
getOccupancyTypes
|
||||
} from '../../helpers/functions.cache.js'
|
||||
|
||||
export default async function handler(
|
||||
request: Request,
|
||||
request: Request<
|
||||
unknown,
|
||||
unknown,
|
||||
{ occupancyTypeId: string; moveToEnd: '0' | '1' }
|
||||
>,
|
||||
response: Response
|
||||
): Promise<void> {
|
||||
const success =
|
||||
|
|
@ -27,4 +28,3 @@ export default async function handler(
|
|||
allOccupancyTypeFields
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,2 +1,5 @@
|
|||
import type { Request, Response } from 'express';
|
||||
export default function handler(request: Request, response: Response): Promise<void>;
|
||||
export default function handler(request: Request<unknown, unknown, {
|
||||
workOrderMilestoneTypeId: string;
|
||||
moveToEnd: '0' | '1';
|
||||
}>, response: Response): Promise<void>;
|
||||
|
|
|
|||
|
|
@ -7,7 +7,11 @@ import {
|
|||
import { getWorkOrderMilestoneTypes } from '../../helpers/functions.cache.js'
|
||||
|
||||
export default async function handler(
|
||||
request: Request,
|
||||
request: Request<
|
||||
unknown,
|
||||
unknown,
|
||||
{ workOrderMilestoneTypeId: string; moveToEnd: '0' | '1' }
|
||||
>,
|
||||
response: Response
|
||||
): Promise<void> {
|
||||
const success =
|
||||
|
|
@ -28,4 +32,3 @@ export default async function handler(
|
|||
workOrderMilestoneTypes
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,2 +1,5 @@
|
|||
import type { Request, Response } from 'express';
|
||||
export default function handler(request: Request, response: Response): Promise<void>;
|
||||
export default function handler(request: Request<unknown, unknown, {
|
||||
workOrderMilestoneTypeId: string;
|
||||
moveToEnd: '0' | '1';
|
||||
}>, response: Response): Promise<void>;
|
||||
|
|
|
|||
|
|
@ -1,13 +1,14 @@
|
|||
import type { Request, Response } from 'express'
|
||||
|
||||
import {
|
||||
moveRecordUp,
|
||||
moveRecordUpToTop
|
||||
} from '../../database/moveRecord.js'
|
||||
import { moveRecordUp, moveRecordUpToTop } from '../../database/moveRecord.js'
|
||||
import { getWorkOrderMilestoneTypes } from '../../helpers/functions.cache.js'
|
||||
|
||||
export default async function handler(
|
||||
request: Request,
|
||||
request: Request<
|
||||
unknown,
|
||||
unknown,
|
||||
{ workOrderMilestoneTypeId: string; moveToEnd: '0' | '1' }
|
||||
>,
|
||||
response: Response
|
||||
): Promise<void> {
|
||||
const success =
|
||||
|
|
@ -28,4 +29,3 @@ export default async function handler(
|
|||
workOrderMilestoneTypes
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,2 +1,5 @@
|
|||
import type { Request, Response } from 'express';
|
||||
export default function handler(request: Request, response: Response): Promise<void>;
|
||||
export default function handler(request: Request<unknown, unknown, {
|
||||
workOrderTypeId: string;
|
||||
moveToEnd: '0' | '1';
|
||||
}>, response: Response): Promise<void>;
|
||||
|
|
|
|||
|
|
@ -7,12 +7,19 @@ import {
|
|||
import { getWorkOrderTypes } from '../../helpers/functions.cache.js'
|
||||
|
||||
export default async function handler(
|
||||
request: Request,
|
||||
request: Request<
|
||||
unknown,
|
||||
unknown,
|
||||
{ workOrderTypeId: string; moveToEnd: '0' | '1' }
|
||||
>,
|
||||
response: Response
|
||||
): Promise<void> {
|
||||
const success =
|
||||
request.body.moveToEnd === '1'
|
||||
? await moveRecordDownToBottom('WorkOrderTypes', request.body.workOrderTypeId)
|
||||
? await moveRecordDownToBottom(
|
||||
'WorkOrderTypes',
|
||||
request.body.workOrderTypeId
|
||||
)
|
||||
: await moveRecordDown('WorkOrderTypes', request.body.workOrderTypeId)
|
||||
|
||||
const workOrderTypes = await getWorkOrderTypes()
|
||||
|
|
@ -22,4 +29,3 @@ export default async function handler(
|
|||
workOrderTypes
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,2 +1,5 @@
|
|||
import type { Request, Response } from 'express';
|
||||
export default function handler(request: Request, response: Response): Promise<void>;
|
||||
export default function handler(request: Request<unknown, unknown, {
|
||||
workOrderTypeId: string;
|
||||
moveToEnd: '0' | '1';
|
||||
}>, response: Response): Promise<void>;
|
||||
|
|
|
|||
|
|
@ -1,13 +1,14 @@
|
|||
import type { Request, Response } from 'express'
|
||||
|
||||
import {
|
||||
moveRecordUp,
|
||||
moveRecordUpToTop
|
||||
} from '../../database/moveRecord.js'
|
||||
import { moveRecordUp, moveRecordUpToTop } from '../../database/moveRecord.js'
|
||||
import { getWorkOrderTypes } from '../../helpers/functions.cache.js'
|
||||
|
||||
export default async function handler(
|
||||
request: Request,
|
||||
request: Request<
|
||||
unknown,
|
||||
unknown,
|
||||
{ workOrderTypeId: string; moveToEnd: '0' | '1' }
|
||||
>,
|
||||
response: Response
|
||||
): Promise<void> {
|
||||
const success =
|
||||
|
|
@ -22,4 +23,3 @@ export default async function handler(
|
|||
workOrderTypes
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,2 +1,5 @@
|
|||
import type { Request, Response } from 'express';
|
||||
export default function handler(request: Request, response: Response): Promise<void>;
|
||||
export default function handler(request: Request<unknown, unknown, {
|
||||
lotStatusId: string;
|
||||
lotStatus: string;
|
||||
}>, response: Response): Promise<void>;
|
||||
|
|
|
|||
|
|
@ -4,13 +4,17 @@ import { updateRecord } from '../../database/updateRecord.js'
|
|||
import { getLotStatuses } from '../../helpers/functions.cache.js'
|
||||
|
||||
export default async function handler(
|
||||
request: Request,
|
||||
request: Request<
|
||||
unknown,
|
||||
unknown,
|
||||
{ lotStatusId: string; lotStatus: string }
|
||||
>,
|
||||
response: Response
|
||||
): Promise<void> {
|
||||
const success = await updateRecord(
|
||||
'LotStatuses',
|
||||
request.body.lotStatusId as string,
|
||||
request.body.lotStatus as string,
|
||||
request.body.lotStatusId,
|
||||
request.body.lotStatus,
|
||||
request.session.user as User
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,2 +1,5 @@
|
|||
import type { Request, Response } from 'express';
|
||||
export default function handler(request: Request, response: Response): Promise<void>;
|
||||
export default function handler(request: Request<unknown, unknown, {
|
||||
lotTypeId: string;
|
||||
lotType: string;
|
||||
}>, response: Response): Promise<void>;
|
||||
|
|
|
|||
|
|
@ -4,13 +4,13 @@ import { updateRecord } from '../../database/updateRecord.js'
|
|||
import { getLotTypes } from '../../helpers/functions.cache.js'
|
||||
|
||||
export default async function handler(
|
||||
request: Request,
|
||||
request: Request<unknown, unknown, { lotTypeId: string; lotType: string }>,
|
||||
response: Response
|
||||
): Promise<void> {
|
||||
const success = await updateRecord(
|
||||
'LotTypes',
|
||||
request.body.lotTypeId as string,
|
||||
request.body.lotType as string,
|
||||
request.body.lotTypeId,
|
||||
request.body.lotType,
|
||||
request.session.user as User
|
||||
)
|
||||
|
||||
|
|
@ -21,4 +21,3 @@ export default async function handler(
|
|||
lotTypes
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,2 +1,5 @@
|
|||
import type { Request, Response } from 'express';
|
||||
export default function handler(request: Request, response: Response): Promise<void>;
|
||||
export default function handler(request: Request<unknown, unknown, {
|
||||
occupancyTypeId: string;
|
||||
occupancyType: string;
|
||||
}>, response: Response): Promise<void>;
|
||||
|
|
|
|||
|
|
@ -7,13 +7,17 @@ import {
|
|||
} from '../../helpers/functions.cache.js'
|
||||
|
||||
export default async function handler(
|
||||
request: Request,
|
||||
request: Request<
|
||||
unknown,
|
||||
unknown,
|
||||
{ occupancyTypeId: string; occupancyType: string }
|
||||
>,
|
||||
response: Response
|
||||
): Promise<void> {
|
||||
const success = await updateRecord(
|
||||
'OccupancyTypes',
|
||||
request.body.occupancyTypeId as string,
|
||||
request.body.occupancyType as string,
|
||||
request.body.occupancyTypeId,
|
||||
request.body.occupancyType,
|
||||
request.session.user as User
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,2 +1,5 @@
|
|||
import type { Request, Response } from 'express';
|
||||
export default function handler(request: Request, response: Response): Promise<void>;
|
||||
export default function handler(request: Request<unknown, unknown, {
|
||||
workOrderMilestoneTypeId: string;
|
||||
workOrderMilestoneType: string;
|
||||
}>, response: Response): Promise<void>;
|
||||
|
|
|
|||
|
|
@ -4,13 +4,17 @@ import { updateRecord } from '../../database/updateRecord.js'
|
|||
import { getWorkOrderMilestoneTypes } from '../../helpers/functions.cache.js'
|
||||
|
||||
export default async function handler(
|
||||
request: Request,
|
||||
request: Request<
|
||||
unknown,
|
||||
unknown,
|
||||
{ workOrderMilestoneTypeId: string; workOrderMilestoneType: string }
|
||||
>,
|
||||
response: Response
|
||||
): Promise<void> {
|
||||
const success = await updateRecord(
|
||||
'WorkOrderMilestoneTypes',
|
||||
request.body.workOrderMilestoneTypeId as string,
|
||||
request.body.workOrderMilestoneType as string,
|
||||
request.body.workOrderMilestoneTypeId,
|
||||
request.body.workOrderMilestoneType,
|
||||
request.session.user as User
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,2 +1,5 @@
|
|||
import type { Request, Response } from 'express';
|
||||
export default function handler(request: Request, response: Response): Promise<void>;
|
||||
export default function handler(request: Request<unknown, unknown, {
|
||||
workOrderTypeId: string;
|
||||
workOrderType: string;
|
||||
}>, response: Response): Promise<void>;
|
||||
|
|
|
|||
|
|
@ -4,13 +4,13 @@ import { updateRecord } from '../../database/updateRecord.js'
|
|||
import { getWorkOrderTypes } from '../../helpers/functions.cache.js'
|
||||
|
||||
export default async function handler(
|
||||
request: Request,
|
||||
request: Request<unknown, unknown, {workOrderTypeId: string; workOrderType: string}>,
|
||||
response: Response
|
||||
): Promise<void> {
|
||||
const success = await updateRecord(
|
||||
'WorkOrderTypes',
|
||||
request.body.workOrderTypeId as string,
|
||||
request.body.workOrderType as string,
|
||||
request.body.workOrderTypeId,
|
||||
request.body.workOrderType,
|
||||
request.session.user as User
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import fs from 'node:fs/promises';
|
||||
import Debug from 'debug';
|
||||
import { v4 as uuidv4 } from 'uuid';
|
||||
import { v4 as uuidV4 } from 'uuid';
|
||||
const debug = Debug('lot-occupancy-system:functions.api');
|
||||
const apiKeyPath = 'data/apiKeys.json';
|
||||
let apiKeys;
|
||||
|
|
@ -23,7 +23,7 @@ async function saveApiKeys() {
|
|||
}
|
||||
}
|
||||
function generateApiKey(apiKeyPrefix) {
|
||||
return `${apiKeyPrefix}-${uuidv4()}-${Date.now().toString()}`;
|
||||
return `${apiKeyPrefix}-${uuidV4()}-${Date.now().toString()}`;
|
||||
}
|
||||
export async function regenerateApiKey(userName) {
|
||||
apiKeys[userName] = generateApiKey(userName);
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
import fs from 'node:fs/promises'
|
||||
|
||||
import Debug from 'debug'
|
||||
import { v4 as uuidv4 } from 'uuid'
|
||||
import { v4 as uuidV4 } from 'uuid'
|
||||
|
||||
const debug = Debug('lot-occupancy-system:functions.api')
|
||||
|
||||
const apiKeyPath = 'data/apiKeys.json'
|
||||
let apiKeys: Record<string, string>
|
||||
let apiKeys: Record<string, string> | undefined
|
||||
|
||||
async function loadApiKeys(): Promise<void> {
|
||||
try {
|
||||
|
|
@ -27,7 +27,7 @@ async function saveApiKeys(): Promise<void> {
|
|||
}
|
||||
|
||||
function generateApiKey(apiKeyPrefix: string): string {
|
||||
return `${apiKeyPrefix}-${uuidv4()}-${Date.now().toString()}`
|
||||
return `${apiKeyPrefix}-${uuidV4()}-${Date.now().toString()}`
|
||||
}
|
||||
|
||||
export async function regenerateApiKey(userName: string): Promise<void> {
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
export declare function authenticate(userName: string, password: string): Promise<boolean>;
|
||||
export declare function authenticate(userName: string | undefined, password: string | undefined): Promise<boolean>;
|
||||
export declare function getSafeRedirectURL(possibleRedirectURL?: string): string;
|
||||
|
|
|
|||
|
|
@ -23,8 +23,9 @@ export async function authenticate(userName, password) {
|
|||
if ((userName ?? '') === '' || (password ?? '') === '') {
|
||||
return false;
|
||||
}
|
||||
return await authenticateViaActiveDirectory(userName, password);
|
||||
return await authenticateViaActiveDirectory(userName ?? '', password ?? '');
|
||||
}
|
||||
/* eslint-disable @cspell/spellchecker */
|
||||
const safeRedirects = new Set([
|
||||
'/admin/cleanup',
|
||||
'/admin/fees',
|
||||
|
|
@ -43,6 +44,7 @@ const safeRedirects = new Set([
|
|||
'/workorders/outlook',
|
||||
'/reports'
|
||||
]);
|
||||
/* eslint-enable @cspell/spellchecker */
|
||||
const recordUrl = /^\/(?:maps|lots|lotoccupancies|workorders)\/\d+(?:\/edit)?$/;
|
||||
const printUrl = /^\/print\/(?:pdf|screen)\/[\d/=?A-Za-z-]+$/;
|
||||
export function getSafeRedirectURL(possibleRedirectURL = '') {
|
||||
|
|
|
|||
|
|
@ -30,16 +30,18 @@ async function authenticateViaActiveDirectory(
|
|||
}
|
||||
|
||||
export async function authenticate(
|
||||
userName: string,
|
||||
password: string
|
||||
userName: string | undefined,
|
||||
password: string | undefined
|
||||
): Promise<boolean> {
|
||||
if ((userName ?? '') === '' || (password ?? '') === '') {
|
||||
return false
|
||||
}
|
||||
|
||||
return await authenticateViaActiveDirectory(userName, password)
|
||||
return await authenticateViaActiveDirectory(userName ?? '', password ?? '')
|
||||
}
|
||||
|
||||
/* eslint-disable @cspell/spellchecker */
|
||||
|
||||
const safeRedirects = new Set([
|
||||
'/admin/cleanup',
|
||||
'/admin/fees',
|
||||
|
|
@ -59,6 +61,8 @@ const safeRedirects = new Set([
|
|||
'/reports'
|
||||
])
|
||||
|
||||
/* eslint-enable @cspell/spellchecker */
|
||||
|
||||
const recordUrl = /^\/(?:maps|lots|lotoccupancies|workorders)\/\d+(?:\/edit)?$/
|
||||
|
||||
const printUrl = /^\/print\/(?:pdf|screen)\/[\d/=?A-Za-z-]+$/
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import { Configurator } from '@cityssm/configurator';
|
||||
import { secondsToMillis } from '@cityssm/to-millis';
|
||||
import { configDefaultValues } from '../data/config.defaultValues.js';
|
||||
import { config } from '../data/config.js';
|
||||
const configurator = new Configurator(configDefaultValues, config);
|
||||
|
|
@ -6,5 +7,5 @@ export function getConfigProperty(propertyName, fallbackValue) {
|
|||
return configurator.getConfigProperty(propertyName, fallbackValue);
|
||||
}
|
||||
export const keepAliveMillis = getConfigProperty('session.doKeepAlive')
|
||||
? Math.max(getConfigProperty('session.maxAgeMillis') / 2, getConfigProperty('session.maxAgeMillis') - 10 * 60 * 1000)
|
||||
? Math.max(getConfigProperty('session.maxAgeMillis') / 2, getConfigProperty('session.maxAgeMillis') - secondsToMillis(10))
|
||||
: 0;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import { Configurator } from '@cityssm/configurator'
|
||||
import { secondsToMillis } from '@cityssm/to-millis'
|
||||
|
||||
import { configDefaultValues } from '../data/config.defaultValues.js'
|
||||
import { config } from '../data/config.js'
|
||||
|
|
@ -21,6 +22,6 @@ export function getConfigProperty<K extends keyof typeof configDefaultValues>(
|
|||
export const keepAliveMillis = getConfigProperty('session.doKeepAlive')
|
||||
? Math.max(
|
||||
getConfigProperty('session.maxAgeMillis') / 2,
|
||||
getConfigProperty('session.maxAgeMillis') - 10 * 60 * 1000
|
||||
getConfigProperty('session.maxAgeMillis') - secondsToMillis (10)
|
||||
)
|
||||
: 0
|
||||
|
|
|
|||
|
|
@ -1,16 +1,12 @@
|
|||
export function filterOccupantsByLotOccupantType(lotOccupancy, lotOccupantType) {
|
||||
const lotOccupantTypeLowerCase = lotOccupantType.toLowerCase();
|
||||
return (lotOccupancy.lotOccupancyOccupants ?? []).filter((possibleOccupant) => {
|
||||
return (possibleOccupant.lotOccupantType.toLowerCase() ===
|
||||
return (lotOccupancy.lotOccupancyOccupants ?? []).filter((possibleOccupant) => possibleOccupant.lotOccupantType.toLowerCase() ===
|
||||
lotOccupantTypeLowerCase);
|
||||
});
|
||||
}
|
||||
export function getFieldValueByOccupancyTypeField(lotOccupancy, occupancyTypeField) {
|
||||
const occupancyTypeFieldLowerCase = occupancyTypeField.toLowerCase();
|
||||
const field = (lotOccupancy.lotOccupancyFields ?? []).find((possibleField) => {
|
||||
return (possibleField.occupancyTypeField.toLowerCase() ===
|
||||
const field = (lotOccupancy.lotOccupancyFields ?? []).find((possibleField) => possibleField.occupancyTypeField.toLowerCase() ===
|
||||
occupancyTypeFieldLowerCase);
|
||||
});
|
||||
if (field === undefined) {
|
||||
return undefined;
|
||||
}
|
||||
|
|
@ -18,14 +14,12 @@ export function getFieldValueByOccupancyTypeField(lotOccupancy, occupancyTypeFie
|
|||
}
|
||||
export function getFeesByFeeCategory(lotOccupancy, feeCategory, feeCategoryContains = false) {
|
||||
const feeCategoryLowerCase = feeCategory.toLowerCase();
|
||||
return (lotOccupancy.lotOccupancyFees ?? []).filter((possibleFee) => {
|
||||
return feeCategoryContains
|
||||
return (lotOccupancy.lotOccupancyFees ?? []).filter((possibleFee) => feeCategoryContains
|
||||
? possibleFee.feeCategory
|
||||
.toLowerCase()
|
||||
.includes(feeCategoryLowerCase)
|
||||
: possibleFee.feeCategory.toLowerCase() ===
|
||||
feeCategoryLowerCase;
|
||||
});
|
||||
feeCategoryLowerCase);
|
||||
}
|
||||
export function getTransactionTotal(lotOccupancy) {
|
||||
let transactionTotal = 0;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,8 @@
|
|||
import type { LotOccupancy, LotOccupancyFee, LotOccupancyOccupant } from '../types/recordTypes'
|
||||
import type {
|
||||
LotOccupancy,
|
||||
LotOccupancyFee,
|
||||
LotOccupancyOccupant
|
||||
} from '../types/recordTypes'
|
||||
|
||||
export function filterOccupantsByLotOccupantType(
|
||||
lotOccupancy: LotOccupancy,
|
||||
|
|
@ -7,13 +11,10 @@ export function filterOccupantsByLotOccupantType(
|
|||
const lotOccupantTypeLowerCase = lotOccupantType.toLowerCase()
|
||||
|
||||
return (lotOccupancy.lotOccupancyOccupants ?? []).filter(
|
||||
(possibleOccupant) => {
|
||||
return (
|
||||
(possibleOccupant) =>
|
||||
(possibleOccupant.lotOccupantType as string).toLowerCase() ===
|
||||
lotOccupantTypeLowerCase
|
||||
)
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
export function getFieldValueByOccupancyTypeField(
|
||||
|
|
@ -23,13 +24,10 @@ export function getFieldValueByOccupancyTypeField(
|
|||
const occupancyTypeFieldLowerCase = occupancyTypeField.toLowerCase()
|
||||
|
||||
const field = (lotOccupancy.lotOccupancyFields ?? []).find(
|
||||
(possibleField) => {
|
||||
return (
|
||||
(possibleField) =>
|
||||
(possibleField.occupancyTypeField as string).toLowerCase() ===
|
||||
occupancyTypeFieldLowerCase
|
||||
)
|
||||
}
|
||||
)
|
||||
|
||||
if (field === undefined) {
|
||||
return undefined
|
||||
|
|
@ -45,19 +43,17 @@ export function getFeesByFeeCategory(
|
|||
): LotOccupancyFee[] {
|
||||
const feeCategoryLowerCase = feeCategory.toLowerCase()
|
||||
|
||||
return (lotOccupancy.lotOccupancyFees ?? []).filter((possibleFee) => {
|
||||
return feeCategoryContains
|
||||
return (lotOccupancy.lotOccupancyFees ?? []).filter((possibleFee) =>
|
||||
feeCategoryContains
|
||||
? (possibleFee.feeCategory as string)
|
||||
.toLowerCase()
|
||||
.includes(feeCategoryLowerCase)
|
||||
: (possibleFee.feeCategory as string).toLowerCase() ===
|
||||
feeCategoryLowerCase
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
export function getTransactionTotal(
|
||||
lotOccupancy: LotOccupancy
|
||||
): number {
|
||||
export function getTransactionTotal(lotOccupancy: LotOccupancy): number {
|
||||
let transactionTotal = 0
|
||||
|
||||
for (const transaction of lotOccupancy.lotOccupancyTransactions ?? []) {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import fs from 'node:fs/promises'
|
||||
|
||||
let mapSVGs: string[]
|
||||
let mapSVGs: string[] | undefined
|
||||
|
||||
export async function getMapSVGs(): Promise<string[]> {
|
||||
if (mapSVGs === undefined) {
|
||||
|
|
|
|||
|
|
@ -1,11 +1,8 @@
|
|||
// skipcq: JS-C1003 - Added to ReportData
|
||||
import * as dateTimeFunctions from '@cityssm/utils-datetime';
|
||||
import getLot from '../database/getLot.js';
|
||||
import getLotOccupancy from '../database/getLotOccupancy.js';
|
||||
import getWorkOrder from '../database/getWorkOrder.js';
|
||||
// skipcq: JS-C1003 - Added to ReportData
|
||||
import * as configFunctions from './functions.config.js';
|
||||
// skipcq: JS-C1003 - Added to ReportData
|
||||
import * as lotOccupancyFunctions from './functions.lotOccupancy.js';
|
||||
const screenPrintConfigs = {
|
||||
lotOccupancy: {
|
||||
|
|
@ -60,7 +57,7 @@ export async function getReportData(printConfig, requestQuery) {
|
|||
if (printConfig.params.includes('lotOccupancyId') &&
|
||||
typeof requestQuery.lotOccupancyId === 'string') {
|
||||
const lotOccupancy = await getLotOccupancy(requestQuery.lotOccupancyId);
|
||||
if (lotOccupancy !== undefined && (lotOccupancy?.lotId ?? -1) !== -1) {
|
||||
if (lotOccupancy !== undefined && (lotOccupancy.lotId ?? -1) !== -1) {
|
||||
reportData.lot = await getLot(lotOccupancy.lotId ?? -1);
|
||||
}
|
||||
reportData.lotOccupancy = lotOccupancy;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
// skipcq: JS-C1003 - Added to ReportData
|
||||
import * as dateTimeFunctions from '@cityssm/utils-datetime'
|
||||
|
||||
import getLot from '../database/getLot.js'
|
||||
|
|
@ -6,9 +5,7 @@ import getLotOccupancy from '../database/getLotOccupancy.js'
|
|||
import getWorkOrder from '../database/getWorkOrder.js'
|
||||
import type { Lot, LotOccupancy, WorkOrder } from '../types/recordTypes.js'
|
||||
|
||||
// skipcq: JS-C1003 - Added to ReportData
|
||||
import * as configFunctions from './functions.config.js'
|
||||
// skipcq: JS-C1003 - Added to ReportData
|
||||
import * as lotOccupancyFunctions from './functions.lotOccupancy.js'
|
||||
|
||||
interface PrintConfig {
|
||||
|
|
@ -102,7 +99,7 @@ export async function getReportData(
|
|||
) {
|
||||
const lotOccupancy = await getLotOccupancy(requestQuery.lotOccupancyId)
|
||||
|
||||
if (lotOccupancy !== undefined && (lotOccupancy?.lotId ?? -1) !== -1) {
|
||||
if (lotOccupancy !== undefined && (lotOccupancy.lotId ?? -1) !== -1) {
|
||||
reportData.lot = await getLot(lotOccupancy.lotId ?? -1)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -15,7 +15,5 @@ export async function apiKeyIsValid(request) {
|
|||
if (userName === undefined) {
|
||||
return false;
|
||||
}
|
||||
return getConfigProperty('users.canLogin').some((currentUserName) => {
|
||||
return userName === currentUserName.toLowerCase();
|
||||
});
|
||||
return getConfigProperty('users.canLogin').some((currentUserName) => userName === currentUserName.toLowerCase());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ export async function apiKeyIsValid(request: APIRequest): Promise<boolean> {
|
|||
return false
|
||||
}
|
||||
|
||||
return getConfigProperty('users.canLogin').some((currentUserName) => {
|
||||
return userName === currentUserName.toLowerCase()
|
||||
})
|
||||
return getConfigProperty('users.canLogin').some(
|
||||
(currentUserName) => userName === currentUserName.toLowerCase()
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
// eslint-disable-next-line @eslint-community/eslint-comments/disable-enable-pair
|
||||
/* eslint-disable @typescript-eslint/no-magic-numbers */
|
||||
import Debug from 'debug';
|
||||
import { lotOccupancyDB as databasePath } from '../data/databasePaths.js';
|
||||
import addFeeCategory from '../database/addFeeCategory.js';
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
// eslint-disable-next-line @eslint-community/eslint-comments/disable-enable-pair
|
||||
/* eslint-disable @typescript-eslint/no-magic-numbers */
|
||||
|
||||
import Debug from 'debug'
|
||||
|
||||
import { lotOccupancyDB as databasePath } from '../data/databasePaths.js'
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
// eslint-disable-next-line @eslint-community/eslint-comments/disable-enable-pair
|
||||
/* eslint-disable @cspell/spellchecker, no-secrets/no-secrets */
|
||||
import sqlite from 'better-sqlite3';
|
||||
import debug from 'debug';
|
||||
import { lotOccupancyDB as databasePath } from '../data/databasePaths.js';
|
||||
|
|
@ -46,7 +48,6 @@ const createStatements = [
|
|||
occupancyTypeFieldValues text, isRequired bit not null default 0, pattern varchar(100),
|
||||
minimumLength smallint not null default 1 check (minimumLength >= 0), maximumLength smallint not null default 100 check (maximumLength >= 0), orderNumber smallint not null default 0, ${recordColumns},
|
||||
foreign key (occupancyTypeId) references OccupancyTypes (occupancyTypeId))`,
|
||||
// eslint-disable-next-line no-secrets/no-secrets
|
||||
'create index if not exists idx_occupancytypefields_ordernumber on OccupancyTypeFields (occupancyTypeId, orderNumber, occupancyTypeField)',
|
||||
`create table if not exists OccupancyTypePrints (occupancyTypeId integer not null, printEJS varchar(100) not null, orderNumber smallint not null default 0, ${recordColumns}, primary key (occupancyTypeId, printEJS), foreign key (occupancyTypeId) references OccupancyTypes (occupancyTypeId))`,
|
||||
'create index if not exists idx_occupancytypeprints_ordernumber on OccupancyTypePrints (occupancyTypeId, orderNumber, printEJS)',
|
||||
|
|
@ -57,7 +58,6 @@ const createStatements = [
|
|||
occupantCommentTitle varchar(50) not null default '',
|
||||
orderNumber smallint not null default 0,
|
||||
${recordColumns})`,
|
||||
// eslint-disable-next-line no-secrets/no-secrets
|
||||
'create index if not exists idx_lotoccupanttypes_ordernumber on LotOccupantTypes (orderNumber, lotOccupantType)',
|
||||
`create table if not exists LotOccupancies (lotOccupancyId integer not null primary key autoincrement, occupancyTypeId integer not null, lotId integer, occupancyStartDate integer not null check (occupancyStartDate > 0), occupancyEndDate integer check (occupancyEndDate > 0), ${recordColumns}, foreign key (lotId) references Lots (lotId), foreign key (occupancyTypeId) references OccupancyTypes (occupancyTypeId))`,
|
||||
`create table if not exists LotOccupancyOccupants (lotOccupancyId integer not null, lotOccupantIndex integer not null, occupantName varchar(200) not null, occupantAddress1 varchar(50), occupantAddress2 varchar(50), occupantCity varchar(20), occupantProvince varchar(2), occupantPostalCode varchar(7), occupantPhoneNumber varchar(30), occupantEmailAddress varchar(200), lotOccupantTypeId integer not null, occupantComment text not null default '', ${recordColumns}, primary key (lotOccupancyId, lotOccupantIndex), foreign key (lotOccupancyId) references LotOccupancies (lotOccupancyId), foreign key (lotOccupantTypeId) references LotOccupantTypes (lotOccupantTypeId)) without rowid`,
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
// eslint-disable-next-line @eslint-community/eslint-comments/disable-enable-pair
|
||||
/* eslint-disable @cspell/spellchecker, no-secrets/no-secrets */
|
||||
|
||||
import sqlite from 'better-sqlite3'
|
||||
import debug from 'debug'
|
||||
|
||||
|
|
@ -62,7 +65,6 @@ const createStatements = [
|
|||
minimumLength smallint not null default 1 check (minimumLength >= 0), maximumLength smallint not null default 100 check (maximumLength >= 0), orderNumber smallint not null default 0, ${recordColumns},
|
||||
foreign key (occupancyTypeId) references OccupancyTypes (occupancyTypeId))`,
|
||||
|
||||
// eslint-disable-next-line no-secrets/no-secrets
|
||||
'create index if not exists idx_occupancytypefields_ordernumber on OccupancyTypeFields (occupancyTypeId, orderNumber, occupancyTypeField)',
|
||||
`create table if not exists OccupancyTypePrints (occupancyTypeId integer not null, printEJS varchar(100) not null, orderNumber smallint not null default 0, ${recordColumns}, primary key (occupancyTypeId, printEJS), foreign key (occupancyTypeId) references OccupancyTypes (occupancyTypeId))`,
|
||||
'create index if not exists idx_occupancytypeprints_ordernumber on OccupancyTypePrints (occupancyTypeId, orderNumber, printEJS)',
|
||||
|
|
@ -73,7 +75,7 @@ const createStatements = [
|
|||
occupantCommentTitle varchar(50) not null default '',
|
||||
orderNumber smallint not null default 0,
|
||||
${recordColumns})`,
|
||||
// eslint-disable-next-line no-secrets/no-secrets
|
||||
|
||||
'create index if not exists idx_lotoccupanttypes_ordernumber on LotOccupantTypes (orderNumber, lotOccupantType)',
|
||||
`create table if not exists LotOccupancies (lotOccupancyId integer not null primary key autoincrement, occupancyTypeId integer not null, lotId integer, occupancyStartDate integer not null check (occupancyStartDate > 0), occupancyEndDate integer check (occupancyEndDate > 0), ${recordColumns}, foreign key (lotId) references Lots (lotId), foreign key (occupancyTypeId) references OccupancyTypes (occupancyTypeId))`,
|
||||
`create table if not exists LotOccupancyOccupants (lotOccupancyId integer not null, lotOccupantIndex integer not null, occupantName varchar(200) not null, occupantAddress1 varchar(50), occupantAddress2 varchar(50), occupantCity varchar(20), occupantProvince varchar(2), occupantPostalCode varchar(7), occupantPhoneNumber varchar(30), occupantEmailAddress varchar(200), lotOccupantTypeId integer not null, occupantComment text not null default '', ${recordColumns}, primary key (lotOccupancyId, lotOccupantIndex), foreign key (lotOccupancyId) references LotOccupancies (lotOccupancyId), foreign key (lotOccupantTypeId) references LotOccupantTypes (lotOccupantTypeId)) without rowid`,
|
||||
|
|
|
|||
|
|
@ -86,7 +86,7 @@
|
|||
"gulp-sass": "^5.1.0",
|
||||
"nodemon": "^3.1.7",
|
||||
"prettier-config-cityssm": "^1.0.0",
|
||||
"sass": "^1.80.4"
|
||||
"sass": "^1.80.5"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18.0.0"
|
||||
|
|
@ -14651,9 +14651,9 @@
|
|||
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
|
||||
},
|
||||
"node_modules/sass": {
|
||||
"version": "1.80.4",
|
||||
"resolved": "https://registry.npmjs.org/sass/-/sass-1.80.4.tgz",
|
||||
"integrity": "sha512-rhMQ2tSF5CsuuspvC94nPM9rToiAFw2h3JTrLlgmNw1MH79v8Cr3DH6KF6o6r+8oofY3iYVPUf66KzC8yuVN1w==",
|
||||
"version": "1.80.5",
|
||||
"resolved": "https://registry.npmjs.org/sass/-/sass-1.80.5.tgz",
|
||||
"integrity": "sha512-TQd2aoQl/+zsxRMEDSxVdpPIqeq9UFc6pr7PzkugiTx3VYCFPUaa3P4RrBQsqok4PO200Vkz0vXQBNlg7W907g==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
|
|
|
|||
|
|
@ -110,6 +110,6 @@
|
|||
"gulp-sass": "^5.1.0",
|
||||
"nodemon": "^3.1.7",
|
||||
"prettier-config-cityssm": "^1.0.0",
|
||||
"sass": "^1.80.4"
|
||||
"sass": "^1.80.5"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,4 @@
|
|||
"use strict";
|
||||
// eslint-disable-next-line @eslint-community/eslint-comments/disable-enable-pair
|
||||
/* eslint-disable unicorn/prefer-module */
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
(() => {
|
||||
const los = exports.los;
|
||||
|
|
@ -64,9 +62,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
}
|
||||
function openEditOccupancyType(clickEvent) {
|
||||
const occupancyTypeId = Number.parseInt(clickEvent.currentTarget.closest('.container--occupancyType').dataset.occupancyTypeId ?? '', 10);
|
||||
const occupancyType = occupancyTypes.find((currentOccupancyType) => {
|
||||
return occupancyTypeId === currentOccupancyType.occupancyTypeId;
|
||||
});
|
||||
const occupancyType = occupancyTypes.find((currentOccupancyType) => occupancyTypeId === currentOccupancyType.occupancyTypeId);
|
||||
let editCloseModalFunction;
|
||||
function doEdit(submitEvent) {
|
||||
submitEvent.preventDefault();
|
||||
|
|
@ -142,15 +138,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
function openEditOccupancyTypeField(occupancyTypeId, occupancyTypeFieldId) {
|
||||
let occupancyType;
|
||||
if (occupancyTypeId) {
|
||||
occupancyType = occupancyTypes.find((currentOccupancyType) => {
|
||||
return currentOccupancyType.occupancyTypeId === occupancyTypeId;
|
||||
});
|
||||
occupancyType = occupancyTypes.find((currentOccupancyType) => currentOccupancyType.occupancyTypeId === occupancyTypeId);
|
||||
}
|
||||
const occupancyTypeField = (occupancyType
|
||||
? occupancyType.occupancyTypeFields ?? []
|
||||
: allOccupancyTypeFields).find((currentOccupancyTypeField) => {
|
||||
return (currentOccupancyTypeField.occupancyTypeFieldId === occupancyTypeFieldId);
|
||||
});
|
||||
: allOccupancyTypeFields).find((currentOccupancyTypeField) => currentOccupancyTypeField.occupancyTypeFieldId === occupancyTypeFieldId);
|
||||
let fieldTypeElement;
|
||||
let minimumLengthElement;
|
||||
let maximumLengthElement;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,3 @@
|
|||
// eslint-disable-next-line @eslint-community/eslint-comments/disable-enable-pair
|
||||
/* eslint-disable unicorn/prefer-module */
|
||||
|
||||
import type { BulmaJS } from '@cityssm/bulma-js/types.js'
|
||||
import type { cityssmGlobal } from '@cityssm/bulma-webapp-js/src/types.js'
|
||||
|
||||
|
|
@ -139,9 +136,10 @@ type ResponseJSON =
|
|||
10
|
||||
)
|
||||
|
||||
const occupancyType = occupancyTypes.find((currentOccupancyType) => {
|
||||
return occupancyTypeId === currentOccupancyType.occupancyTypeId
|
||||
}) as OccupancyType
|
||||
const occupancyType = occupancyTypes.find(
|
||||
(currentOccupancyType) =>
|
||||
occupancyTypeId === currentOccupancyType.occupancyTypeId
|
||||
) as OccupancyType
|
||||
|
||||
let editCloseModalFunction: () => void
|
||||
|
||||
|
|
@ -289,20 +287,20 @@ type ResponseJSON =
|
|||
let occupancyType: OccupancyType | undefined
|
||||
|
||||
if (occupancyTypeId) {
|
||||
occupancyType = occupancyTypes.find((currentOccupancyType) => {
|
||||
return currentOccupancyType.occupancyTypeId === occupancyTypeId
|
||||
})
|
||||
occupancyType = occupancyTypes.find(
|
||||
(currentOccupancyType) =>
|
||||
currentOccupancyType.occupancyTypeId === occupancyTypeId
|
||||
)
|
||||
}
|
||||
|
||||
const occupancyTypeField = (
|
||||
occupancyType
|
||||
? occupancyType.occupancyTypeFields ?? []
|
||||
: allOccupancyTypeFields
|
||||
).find((currentOccupancyTypeField) => {
|
||||
return (
|
||||
).find(
|
||||
(currentOccupancyTypeField) =>
|
||||
currentOccupancyTypeField.occupancyTypeFieldId === occupancyTypeFieldId
|
||||
)
|
||||
}) as OccupancyTypeField
|
||||
) as OccupancyTypeField
|
||||
|
||||
let fieldTypeElement: HTMLSelectElement
|
||||
let minimumLengthElement: HTMLInputElement
|
||||
|
|
|
|||
|
|
@ -5,9 +5,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
function refreshFontAwesomeIcon(changeEvent) {
|
||||
const inputElement = changeEvent.currentTarget;
|
||||
const fontAwesomeIconClass = inputElement.value;
|
||||
(inputElement.closest('.field')?.querySelectorAll('.button.is-static'
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
))[1].innerHTML =
|
||||
(inputElement
|
||||
.closest('.field')
|
||||
?.querySelectorAll('.button.is-static'))[1].innerHTML =
|
||||
`<i class="fas fa-fw fa-${fontAwesomeIconClass}" aria-hidden="true"></i>`;
|
||||
}
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -23,10 +23,9 @@ declare const bulmaJS: BulmaJS
|
|||
|
||||
// eslint-disable-next-line no-unsanitized/property
|
||||
;(
|
||||
inputElement.closest('.field')?.querySelectorAll(
|
||||
'.button.is-static'
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
) as NodeListOf<HTMLButtonElement>
|
||||
inputElement
|
||||
.closest('.field')
|
||||
?.querySelectorAll('.button.is-static') as NodeListOf<HTMLButtonElement>
|
||||
)[1].innerHTML =
|
||||
`<i class="fas fa-fw fa-${fontAwesomeIconClass}" aria-hidden="true"></i>`
|
||||
}
|
||||
|
|
|
|||
211
routes/admin.ts
211
routes/admin.ts
|
|
@ -1,4 +1,4 @@
|
|||
import { type RequestHandler, Router } from 'express'
|
||||
import { Router } from 'express'
|
||||
|
||||
import handler_database from '../handlers/admin-get/database.js'
|
||||
import handler_fees from '../handlers/admin-get/fees.js'
|
||||
|
|
@ -72,257 +72,170 @@ export const router = Router()
|
|||
* Fees
|
||||
*/
|
||||
|
||||
router.get('/fees', handler_fees as RequestHandler)
|
||||
router.get('/fees', handler_fees)
|
||||
|
||||
router.post('/doAddFeeCategory', handler_doAddFeeCategory as RequestHandler)
|
||||
router.post('/doAddFeeCategory', handler_doAddFeeCategory)
|
||||
|
||||
router.post(
|
||||
'/doUpdateFeeCategory',
|
||||
handler_doUpdateFeeCategory as RequestHandler
|
||||
)
|
||||
router.post('/doUpdateFeeCategory', handler_doUpdateFeeCategory)
|
||||
|
||||
router.post(
|
||||
'/doMoveFeeCategoryUp',
|
||||
handler_doMoveFeeCategoryUp as RequestHandler
|
||||
)
|
||||
router.post('/doMoveFeeCategoryUp', handler_doMoveFeeCategoryUp)
|
||||
|
||||
router.post(
|
||||
'/doMoveFeeCategoryDown',
|
||||
handler_doMoveFeeCategoryDown as RequestHandler
|
||||
)
|
||||
router.post('/doMoveFeeCategoryDown', handler_doMoveFeeCategoryDown)
|
||||
|
||||
router.post(
|
||||
'/doDeleteFeeCategory',
|
||||
handler_doDeleteFeeCategory as RequestHandler
|
||||
)
|
||||
router.post('/doDeleteFeeCategory', handler_doDeleteFeeCategory)
|
||||
|
||||
router.post('/doAddFee', handler_doAddFee as RequestHandler)
|
||||
router.post('/doAddFee', handler_doAddFee)
|
||||
|
||||
router.post('/doUpdateFee', handler_doUpdateFee as RequestHandler)
|
||||
router.post('/doUpdateFee', handler_doUpdateFee)
|
||||
|
||||
router.post('/doUpdateFeeAmount', handler_doUpdateFeeAmount as RequestHandler)
|
||||
router.post('/doUpdateFeeAmount', handler_doUpdateFeeAmount)
|
||||
|
||||
router.post('/doMoveFeeUp', handler_doMoveFeeUp as RequestHandler)
|
||||
router.post('/doMoveFeeUp', handler_doMoveFeeUp)
|
||||
|
||||
router.post('/doMoveFeeDown', handler_doMoveFeeDown as RequestHandler)
|
||||
router.post('/doMoveFeeDown', handler_doMoveFeeDown)
|
||||
|
||||
router.post('/doDeleteFee', handler_doDeleteFee as RequestHandler)
|
||||
router.post('/doDeleteFee', handler_doDeleteFee)
|
||||
|
||||
/*
|
||||
* Occupancy Type Management
|
||||
*/
|
||||
|
||||
router.get('/occupancyTypes', handler_occupancyTypes as RequestHandler)
|
||||
router.get('/occupancyTypes', handler_occupancyTypes)
|
||||
|
||||
router.post('/doAddOccupancyType', handler_doAddOccupancyType as RequestHandler)
|
||||
router.post('/doAddOccupancyType', handler_doAddOccupancyType)
|
||||
|
||||
router.post(
|
||||
'/doUpdateOccupancyType',
|
||||
handler_doUpdateOccupancyType as RequestHandler
|
||||
)
|
||||
router.post('/doUpdateOccupancyType', handler_doUpdateOccupancyType)
|
||||
|
||||
router.post(
|
||||
'/doMoveOccupancyTypeUp',
|
||||
handler_doMoveOccupancyTypeUp as RequestHandler
|
||||
)
|
||||
router.post('/doMoveOccupancyTypeUp', handler_doMoveOccupancyTypeUp)
|
||||
|
||||
router.post(
|
||||
'/doMoveOccupancyTypeDown',
|
||||
handler_doMoveOccupancyTypeDown as RequestHandler
|
||||
)
|
||||
router.post('/doMoveOccupancyTypeDown', handler_doMoveOccupancyTypeDown)
|
||||
|
||||
router.post(
|
||||
'/doDeleteOccupancyType',
|
||||
handler_doDeleteOccupancyType as RequestHandler
|
||||
)
|
||||
router.post('/doDeleteOccupancyType', handler_doDeleteOccupancyType)
|
||||
|
||||
// Occupancy Type Fields
|
||||
|
||||
router.post(
|
||||
'/doAddOccupancyTypeField',
|
||||
handler_doAddOccupancyTypeField as RequestHandler
|
||||
)
|
||||
router.post('/doAddOccupancyTypeField', handler_doAddOccupancyTypeField)
|
||||
|
||||
router.post(
|
||||
'/doUpdateOccupancyTypeField',
|
||||
handler_doUpdateOccupancyTypeField as RequestHandler
|
||||
)
|
||||
router.post('/doUpdateOccupancyTypeField', handler_doUpdateOccupancyTypeField)
|
||||
|
||||
router.post(
|
||||
'/doMoveOccupancyTypeFieldUp',
|
||||
handler_doMoveOccupancyTypeFieldUp as RequestHandler
|
||||
)
|
||||
router.post('/doMoveOccupancyTypeFieldUp', handler_doMoveOccupancyTypeFieldUp)
|
||||
|
||||
router.post(
|
||||
'/doMoveOccupancyTypeFieldDown',
|
||||
handler_doMoveOccupancyTypeFieldDown as RequestHandler
|
||||
handler_doMoveOccupancyTypeFieldDown
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/doDeleteOccupancyTypeField',
|
||||
handler_doDeleteOccupancyTypeField as RequestHandler
|
||||
)
|
||||
router.post('/doDeleteOccupancyTypeField', handler_doDeleteOccupancyTypeField)
|
||||
|
||||
// Occupancy Type Prints
|
||||
|
||||
router.post(
|
||||
'/doAddOccupancyTypePrint',
|
||||
handler_doAddOccupancyTypePrint as RequestHandler
|
||||
)
|
||||
router.post('/doAddOccupancyTypePrint', handler_doAddOccupancyTypePrint)
|
||||
|
||||
router.post(
|
||||
'/doMoveOccupancyTypePrintUp',
|
||||
handler_doMoveOccupancyTypePrintUp as RequestHandler
|
||||
)
|
||||
router.post('/doMoveOccupancyTypePrintUp', handler_doMoveOccupancyTypePrintUp)
|
||||
|
||||
router.post(
|
||||
'/doMoveOccupancyTypePrintDown',
|
||||
handler_doMoveOccupancyTypePrintDown as RequestHandler
|
||||
handler_doMoveOccupancyTypePrintDown
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/doDeleteOccupancyTypePrint',
|
||||
handler_doDeleteOccupancyTypePrint as RequestHandler
|
||||
)
|
||||
router.post('/doDeleteOccupancyTypePrint', handler_doDeleteOccupancyTypePrint)
|
||||
|
||||
/*
|
||||
* Lot Type Management
|
||||
*/
|
||||
|
||||
router.get('/lotTypes', handler_lotTypes as RequestHandler)
|
||||
router.get('/lotTypes', handler_lotTypes)
|
||||
|
||||
router.post('/doAddLotType', handler_doAddLotType as RequestHandler)
|
||||
router.post('/doAddLotType', handler_doAddLotType)
|
||||
|
||||
router.post('/doUpdateLotType', handler_doUpdateLotType as RequestHandler)
|
||||
router.post('/doUpdateLotType', handler_doUpdateLotType)
|
||||
|
||||
router.post('/doMoveLotTypeUp', handler_doMoveLotTypeUp as RequestHandler)
|
||||
router.post('/doMoveLotTypeUp', handler_doMoveLotTypeUp)
|
||||
|
||||
router.post('/doMoveLotTypeDown', handler_doMoveLotTypeDown as RequestHandler)
|
||||
router.post('/doMoveLotTypeDown', handler_doMoveLotTypeDown)
|
||||
|
||||
router.post('/doDeleteLotType', handler_doDeleteLotType as RequestHandler)
|
||||
router.post('/doDeleteLotType', handler_doDeleteLotType)
|
||||
|
||||
// Lot Type Fields
|
||||
|
||||
router.post('/doAddLotTypeField', handler_doAddLotTypeField as RequestHandler)
|
||||
router.post('/doAddLotTypeField', handler_doAddLotTypeField)
|
||||
|
||||
router.post(
|
||||
'/doUpdateLotTypeField',
|
||||
handler_doUpdateLotTypeField as RequestHandler
|
||||
)
|
||||
router.post('/doUpdateLotTypeField', handler_doUpdateLotTypeField)
|
||||
|
||||
router.post(
|
||||
'/doMoveLotTypeFieldUp',
|
||||
handler_doMoveLotTypeFieldUp as RequestHandler
|
||||
)
|
||||
router.post('/doMoveLotTypeFieldUp', handler_doMoveLotTypeFieldUp)
|
||||
|
||||
router.post(
|
||||
'/doMoveLotTypeFieldDown',
|
||||
handler_doMoveLotTypeFieldDown as RequestHandler
|
||||
)
|
||||
router.post('/doMoveLotTypeFieldDown', handler_doMoveLotTypeFieldDown)
|
||||
|
||||
router.post(
|
||||
'/doDeleteLotTypeField',
|
||||
handler_doDeleteLotTypeField as RequestHandler
|
||||
)
|
||||
router.post('/doDeleteLotTypeField', handler_doDeleteLotTypeField)
|
||||
|
||||
/*
|
||||
* Config Tables
|
||||
*/
|
||||
|
||||
router.get('/tables', handler_tables as RequestHandler)
|
||||
router.get('/tables', handler_tables)
|
||||
|
||||
// Config Tables - Work Order Types
|
||||
|
||||
router.post('/doAddWorkOrderType', handler_doAddWorkOrderType as RequestHandler)
|
||||
router.post('/doAddWorkOrderType', handler_doAddWorkOrderType)
|
||||
|
||||
router.post(
|
||||
'/doUpdateWorkOrderType',
|
||||
handler_doUpdateWorkOrderType as RequestHandler
|
||||
)
|
||||
router.post('/doUpdateWorkOrderType', handler_doUpdateWorkOrderType)
|
||||
|
||||
router.post(
|
||||
'/doMoveWorkOrderTypeUp',
|
||||
handler_doMoveWorkOrderTypeUp as RequestHandler
|
||||
)
|
||||
router.post('/doMoveWorkOrderTypeUp', handler_doMoveWorkOrderTypeUp)
|
||||
|
||||
router.post(
|
||||
'/doMoveWorkOrderTypeDown',
|
||||
handler_doMoveWorkOrderTypeDown as RequestHandler
|
||||
)
|
||||
router.post('/doMoveWorkOrderTypeDown', handler_doMoveWorkOrderTypeDown)
|
||||
|
||||
router.post(
|
||||
'/doDeleteWorkOrderType',
|
||||
handler_doDeleteWorkOrderType as RequestHandler
|
||||
)
|
||||
router.post('/doDeleteWorkOrderType', handler_doDeleteWorkOrderType)
|
||||
// Config Tables - Work Order Milestone Types
|
||||
|
||||
router.post(
|
||||
'/doAddWorkOrderMilestoneType',
|
||||
|
||||
handler_doAddWorkOrderMilestoneType as RequestHandler
|
||||
handler_doAddWorkOrderMilestoneType
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/doUpdateWorkOrderMilestoneType',
|
||||
handler_doUpdateWorkOrderMilestoneType as RequestHandler
|
||||
handler_doUpdateWorkOrderMilestoneType
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/doMoveWorkOrderMilestoneTypeUp',
|
||||
handler_doMoveWorkOrderMilestoneTypeUp as RequestHandler
|
||||
handler_doMoveWorkOrderMilestoneTypeUp
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/doMoveWorkOrderMilestoneTypeDown',
|
||||
handler_doMoveWorkOrderMilestoneTypeDown as RequestHandler
|
||||
handler_doMoveWorkOrderMilestoneTypeDown
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/doDeleteWorkOrderMilestoneType',
|
||||
handler_doDeleteWorkOrderMilestoneType as RequestHandler
|
||||
handler_doDeleteWorkOrderMilestoneType
|
||||
)
|
||||
|
||||
// Config Tables - Lot Statuses
|
||||
|
||||
router.post('/doAddLotStatus', handler_doAddLotStatus as RequestHandler)
|
||||
router.post('/doAddLotStatus', handler_doAddLotStatus)
|
||||
|
||||
router.post('/doUpdateLotStatus', handler_doUpdateLotStatus as RequestHandler)
|
||||
router.post('/doUpdateLotStatus', handler_doUpdateLotStatus)
|
||||
|
||||
router.post('/doMoveLotStatusUp', handler_doMoveLotStatusUp as RequestHandler)
|
||||
router.post('/doMoveLotStatusUp', handler_doMoveLotStatusUp)
|
||||
|
||||
router.post(
|
||||
'/doMoveLotStatusDown',
|
||||
handler_doMoveLotStatusDown as RequestHandler
|
||||
)
|
||||
router.post('/doMoveLotStatusDown', handler_doMoveLotStatusDown)
|
||||
|
||||
router.post('/doDeleteLotStatus', handler_doDeleteLotStatus as RequestHandler)
|
||||
router.post('/doDeleteLotStatus', handler_doDeleteLotStatus)
|
||||
|
||||
// Config Tables - Lot Occupant Types
|
||||
|
||||
router.post(
|
||||
'/doAddLotOccupantType',
|
||||
handler_doAddLotOccupantType as RequestHandler
|
||||
)
|
||||
router.post('/doAddLotOccupantType', handler_doAddLotOccupantType)
|
||||
|
||||
router.post(
|
||||
'/doUpdateLotOccupantType',
|
||||
handler_doUpdateLotOccupantType as RequestHandler
|
||||
)
|
||||
router.post('/doUpdateLotOccupantType', handler_doUpdateLotOccupantType)
|
||||
|
||||
router.post(
|
||||
'/doMoveLotOccupantTypeUp',
|
||||
handler_doMoveLotOccupantTypeUp as RequestHandler
|
||||
)
|
||||
router.post('/doMoveLotOccupantTypeUp', handler_doMoveLotOccupantTypeUp)
|
||||
|
||||
router.post(
|
||||
'/doMoveLotOccupantTypeDown',
|
||||
handler_doMoveLotOccupantTypeDown as RequestHandler
|
||||
)
|
||||
router.post('/doMoveLotOccupantTypeDown', handler_doMoveLotOccupantTypeDown)
|
||||
|
||||
router.post(
|
||||
'/doDeleteLotOccupantType',
|
||||
handler_doDeleteLotOccupantType as RequestHandler
|
||||
)
|
||||
router.post('/doDeleteLotOccupantType', handler_doDeleteLotOccupantType)
|
||||
|
||||
/*
|
||||
* Database Maintenance
|
||||
|
|
@ -330,9 +243,9 @@ router.post(
|
|||
|
||||
router.get('/database', handler_database)
|
||||
|
||||
router.post('/doBackupDatabase', handler_doBackupDatabase as RequestHandler)
|
||||
router.post('/doBackupDatabase', handler_doBackupDatabase)
|
||||
|
||||
router.post('/doCleanupDatabase', handler_doCleanupDatabase as RequestHandler)
|
||||
router.post('/doCleanupDatabase', handler_doCleanupDatabase)
|
||||
|
||||
// Ntfy Startup
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
import { type RequestHandler, Router } from 'express'
|
||||
import { Router } from 'express'
|
||||
|
||||
import handler_milestoneICS from '../handlers/api-get/milestoneICS.js'
|
||||
|
||||
export const router = Router()
|
||||
|
||||
router.get('/milestoneICS', handler_milestoneICS as RequestHandler)
|
||||
router.get('/milestoneICS', handler_milestoneICS)
|
||||
|
||||
export default router
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
import { type RequestHandler, Router } from 'express'
|
||||
import { Router } from 'express'
|
||||
|
||||
import handler_dashboard from '../handlers/dashboard-get/dashboard.js'
|
||||
|
||||
export const router = Router()
|
||||
|
||||
router.get('/', handler_dashboard as RequestHandler)
|
||||
router.get('/', handler_dashboard)
|
||||
|
||||
export default router
|
||||
|
|
|
|||
|
|
@ -39,19 +39,13 @@ async function postHandler(request, response) {
|
|||
else if (userName !== '' && passwordPlain !== '') {
|
||||
isAuthenticated = await authenticate(userName, passwordPlain);
|
||||
}
|
||||
let userObject;
|
||||
let userObject = undefined;
|
||||
if (isAuthenticated) {
|
||||
const userNameLowerCase = userName.toLowerCase();
|
||||
const canLogin = getConfigProperty('users.canLogin').some((currentUserName) => {
|
||||
return userNameLowerCase === currentUserName.toLowerCase();
|
||||
});
|
||||
const canLogin = getConfigProperty('users.canLogin').some((currentUserName) => userNameLowerCase === currentUserName.toLowerCase());
|
||||
if (canLogin) {
|
||||
const canUpdate = getConfigProperty('users.canUpdate').some((currentUserName) => {
|
||||
return userNameLowerCase === currentUserName.toLowerCase();
|
||||
});
|
||||
const isAdmin = getConfigProperty('users.isAdmin').some((currentUserName) => {
|
||||
return userNameLowerCase === currentUserName.toLowerCase();
|
||||
});
|
||||
const canUpdate = getConfigProperty('users.canUpdate').some((currentUserName) => userNameLowerCase === currentUserName.toLowerCase());
|
||||
const isAdmin = getConfigProperty('users.isAdmin').some((currentUserName) => userNameLowerCase === currentUserName.toLowerCase());
|
||||
const apiKey = await getApiKey(userNameLowerCase);
|
||||
userObject = {
|
||||
userName: userNameLowerCase,
|
||||
|
|
@ -76,8 +70,5 @@ async function postHandler(request, response) {
|
|||
});
|
||||
}
|
||||
}
|
||||
router
|
||||
.route('/')
|
||||
.get(getHandler)
|
||||
.post(postHandler);
|
||||
router.route('/').get(getHandler).post(postHandler);
|
||||
export default router;
|
||||
|
|
|
|||
|
|
@ -1,10 +1,5 @@
|
|||
import Debug from 'debug'
|
||||
import {
|
||||
type Request,
|
||||
type RequestHandler,
|
||||
type Response,
|
||||
Router
|
||||
} from 'express'
|
||||
import { type Request, type Response, Router } from 'express'
|
||||
|
||||
import { useTestDatabases } from '../data/databasePaths.js'
|
||||
import { getApiKey } from '../helpers/functions.api.js'
|
||||
|
|
@ -41,7 +36,11 @@ function getHandler(request: Request, response: Response): void {
|
|||
}
|
||||
|
||||
async function postHandler(
|
||||
request: Request,
|
||||
request: Request<
|
||||
unknown,
|
||||
unknown,
|
||||
{ userName: string; password: string; redirect: string }
|
||||
>,
|
||||
response: Response
|
||||
): Promise<void> {
|
||||
const userName = (
|
||||
|
|
@ -72,28 +71,22 @@ async function postHandler(
|
|||
isAuthenticated = await authenticate(userName, passwordPlain)
|
||||
}
|
||||
|
||||
let userObject: User | undefined
|
||||
let userObject: User | undefined = undefined
|
||||
|
||||
if (isAuthenticated) {
|
||||
const userNameLowerCase = userName.toLowerCase()
|
||||
|
||||
const canLogin = getConfigProperty('users.canLogin').some(
|
||||
(currentUserName) => {
|
||||
return userNameLowerCase === currentUserName.toLowerCase()
|
||||
}
|
||||
(currentUserName) => userNameLowerCase === currentUserName.toLowerCase()
|
||||
)
|
||||
|
||||
if (canLogin) {
|
||||
const canUpdate = getConfigProperty('users.canUpdate').some(
|
||||
(currentUserName) => {
|
||||
return userNameLowerCase === currentUserName.toLowerCase()
|
||||
}
|
||||
(currentUserName) => userNameLowerCase === currentUserName.toLowerCase()
|
||||
)
|
||||
|
||||
const isAdmin = getConfigProperty('users.isAdmin').some(
|
||||
(currentUserName) => {
|
||||
return userNameLowerCase === currentUserName.toLowerCase()
|
||||
}
|
||||
(currentUserName) => userNameLowerCase === currentUserName.toLowerCase()
|
||||
)
|
||||
|
||||
const apiKey = await getApiKey(userNameLowerCase)
|
||||
|
|
@ -123,9 +116,6 @@ async function postHandler(
|
|||
}
|
||||
}
|
||||
|
||||
router
|
||||
.route('/')
|
||||
.get(getHandler)
|
||||
.post(postHandler as RequestHandler)
|
||||
router.route('/').get(getHandler).post(postHandler)
|
||||
|
||||
export default router
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { type RequestHandler, Router } from 'express'
|
||||
import { Router } from 'express'
|
||||
|
||||
import handler_edit from '../handlers/lotOccupancies-get/edit.js'
|
||||
import handler_new from '../handlers/lotOccupancies-get/new.js'
|
||||
|
|
@ -33,57 +33,57 @@ export const router = Router()
|
|||
|
||||
// Search
|
||||
|
||||
router.get('/', handler_search as RequestHandler)
|
||||
router.get('/', handler_search)
|
||||
|
||||
router.post(
|
||||
'/doSearchLotOccupancies',
|
||||
handler_doSearchLotOccupancies as RequestHandler
|
||||
handler_doSearchLotOccupancies
|
||||
)
|
||||
|
||||
// Create
|
||||
|
||||
router.get('/new', updateGetHandler, handler_new as RequestHandler)
|
||||
router.get('/new', updateGetHandler, handler_new)
|
||||
|
||||
router.post(
|
||||
'/doGetOccupancyTypeFields',
|
||||
updatePostHandler,
|
||||
handler_doGetOccupancyTypeFields as RequestHandler
|
||||
handler_doGetOccupancyTypeFields
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/doCreateLotOccupancy',
|
||||
updatePostHandler,
|
||||
handler_doCreateLotOccupancy as RequestHandler
|
||||
handler_doCreateLotOccupancy
|
||||
)
|
||||
|
||||
// View
|
||||
|
||||
router.get('/:lotOccupancyId', handler_view as RequestHandler)
|
||||
router.get('/:lotOccupancyId', handler_view)
|
||||
|
||||
// Edit
|
||||
|
||||
router.get(
|
||||
'/:lotOccupancyId/edit',
|
||||
updateGetHandler,
|
||||
handler_edit as RequestHandler
|
||||
handler_edit
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/doUpdateLotOccupancy',
|
||||
updatePostHandler,
|
||||
handler_doUpdateLotOccupancy as RequestHandler
|
||||
handler_doUpdateLotOccupancy
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/doCopyLotOccupancy',
|
||||
updatePostHandler,
|
||||
handler_doCopyLotOccupancy as RequestHandler
|
||||
handler_doCopyLotOccupancy
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/doDeleteLotOccupancy',
|
||||
updatePostHandler,
|
||||
handler_doDeleteLotOccupancy as RequestHandler
|
||||
handler_doDeleteLotOccupancy
|
||||
)
|
||||
|
||||
// Occupants
|
||||
|
|
@ -91,25 +91,25 @@ router.post(
|
|||
router.post(
|
||||
'/doSearchPastOccupants',
|
||||
updatePostHandler,
|
||||
handler_doSearchPastOccupants as RequestHandler
|
||||
handler_doSearchPastOccupants
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/doAddLotOccupancyOccupant',
|
||||
updatePostHandler,
|
||||
handler_doAddLotOccupancyOccupant as RequestHandler
|
||||
handler_doAddLotOccupancyOccupant
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/doUpdateLotOccupancyOccupant',
|
||||
updatePostHandler,
|
||||
handler_doUpdateLotOccupancyOccupant as RequestHandler
|
||||
handler_doUpdateLotOccupancyOccupant
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/doDeleteLotOccupancyOccupant',
|
||||
updatePostHandler,
|
||||
handler_doDeleteLotOccupancyOccupant as RequestHandler
|
||||
handler_doDeleteLotOccupancyOccupant
|
||||
)
|
||||
|
||||
// Comments
|
||||
|
|
@ -117,19 +117,19 @@ router.post(
|
|||
router.post(
|
||||
'/doAddLotOccupancyComment',
|
||||
updatePostHandler,
|
||||
handler_doAddLotOccupancyComment as RequestHandler
|
||||
handler_doAddLotOccupancyComment
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/doUpdateLotOccupancyComment',
|
||||
updatePostHandler,
|
||||
handler_doUpdateLotOccupancyComment as RequestHandler
|
||||
handler_doUpdateLotOccupancyComment
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/doDeleteLotOccupancyComment',
|
||||
updatePostHandler,
|
||||
handler_doDeleteLotOccupancyComment as RequestHandler
|
||||
handler_doDeleteLotOccupancyComment
|
||||
)
|
||||
|
||||
// Fees
|
||||
|
|
@ -137,31 +137,31 @@ router.post(
|
|||
router.post(
|
||||
'/doGetFees',
|
||||
updatePostHandler,
|
||||
handler_doGetFees as RequestHandler
|
||||
handler_doGetFees
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/doAddLotOccupancyFee',
|
||||
updatePostHandler,
|
||||
handler_doAddLotOccupancyFee as RequestHandler
|
||||
handler_doAddLotOccupancyFee
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/doAddLotOccupancyFeeCategory',
|
||||
updatePostHandler,
|
||||
handler_doAddLotOccupancyFeeCategory as RequestHandler
|
||||
handler_doAddLotOccupancyFeeCategory
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/doUpdateLotOccupancyFeeQuantity',
|
||||
updatePostHandler,
|
||||
handler_doUpdateLotOccupancyFeeQuantity as RequestHandler
|
||||
handler_doUpdateLotOccupancyFeeQuantity
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/doDeleteLotOccupancyFee',
|
||||
updatePostHandler,
|
||||
handler_doDeleteLotOccupancyFee as RequestHandler
|
||||
handler_doDeleteLotOccupancyFee
|
||||
)
|
||||
|
||||
// Transactions
|
||||
|
|
@ -170,26 +170,26 @@ if (getConfigProperty('settings.dynamicsGP.integrationIsEnabled')) {
|
|||
router.post(
|
||||
'/doGetDynamicsGPDocument',
|
||||
updatePostHandler,
|
||||
handler_doGetDynamicsGPDocument as RequestHandler
|
||||
handler_doGetDynamicsGPDocument
|
||||
)
|
||||
}
|
||||
|
||||
router.post(
|
||||
'/doAddLotOccupancyTransaction',
|
||||
updatePostHandler,
|
||||
handler_doAddLotOccupancyTransaction as RequestHandler
|
||||
handler_doAddLotOccupancyTransaction
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/doUpdateLotOccupancyTransaction',
|
||||
updatePostHandler,
|
||||
handler_doUpdateLotOccupancyTransaction as RequestHandler
|
||||
handler_doUpdateLotOccupancyTransaction
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/doDeleteLotOccupancyTransaction',
|
||||
updatePostHandler,
|
||||
handler_doDeleteLotOccupancyTransaction as RequestHandler
|
||||
handler_doDeleteLotOccupancyTransaction
|
||||
)
|
||||
|
||||
export default router
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { type RequestHandler, Router } from 'express'
|
||||
import { Router } from 'express'
|
||||
|
||||
import handler_edit from '../handlers/lots-get/edit.js'
|
||||
import handler_new from '../handlers/lots-get/new.js'
|
||||
|
|
@ -22,64 +22,64 @@ export const router = Router()
|
|||
* Lot Search
|
||||
*/
|
||||
|
||||
router.get('/', handler_search as RequestHandler)
|
||||
router.get('/', handler_search)
|
||||
|
||||
router.post('/doSearchLots', handler_doSearchLots as RequestHandler)
|
||||
router.post('/doSearchLots', handler_doSearchLots)
|
||||
|
||||
/*
|
||||
* Lot View / Edit
|
||||
*/
|
||||
|
||||
router.get('/new', updateGetHandler, handler_new as RequestHandler)
|
||||
router.get('/new', updateGetHandler, handler_new)
|
||||
|
||||
router.get('/:lotId', handler_view as RequestHandler)
|
||||
router.get('/:lotId', handler_view)
|
||||
|
||||
router.get('/:lotId/next', handler_next as RequestHandler)
|
||||
router.get('/:lotId/next', handler_next)
|
||||
|
||||
router.get('/:lotId/previous', handler_previous as RequestHandler)
|
||||
router.get('/:lotId/previous', handler_previous)
|
||||
|
||||
router.get('/:lotId/edit', updateGetHandler, handler_edit as RequestHandler)
|
||||
router.get('/:lotId/edit', updateGetHandler, handler_edit)
|
||||
|
||||
router.post(
|
||||
'/doGetLotTypeFields',
|
||||
updatePostHandler,
|
||||
handler_doGetLotTypeFields as RequestHandler
|
||||
handler_doGetLotTypeFields
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/doCreateLot',
|
||||
updatePostHandler,
|
||||
handler_doCreateLot as RequestHandler
|
||||
handler_doCreateLot
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/doUpdateLot',
|
||||
updatePostHandler,
|
||||
handler_doUpdateLot as RequestHandler
|
||||
handler_doUpdateLot
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/doDeleteLot',
|
||||
updatePostHandler,
|
||||
handler_doDeleteLot as RequestHandler
|
||||
handler_doDeleteLot
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/doAddLotComment',
|
||||
updatePostHandler,
|
||||
handler_doAddLotComment as RequestHandler
|
||||
handler_doAddLotComment
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/doUpdateLotComment',
|
||||
updatePostHandler,
|
||||
handler_doUpdateLotComment as RequestHandler
|
||||
handler_doUpdateLotComment
|
||||
)
|
||||
|
||||
router.post(
|
||||
'/doDeleteLotComment',
|
||||
updatePostHandler,
|
||||
handler_doDeleteLotComment as RequestHandler
|
||||
handler_doDeleteLotComment
|
||||
)
|
||||
|
||||
export default router
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue