deepsource-autofix-76c6eb20
Dan Gowans 2022-08-31 10:54:24 -04:00
parent f76f41ef63
commit 3e42fa5e78
26 changed files with 183 additions and 136 deletions

View File

@ -1,22 +1,26 @@
import type { RequestHandler } from "express";
import type {
RequestHandler
} from "express";
import * as configFunctions from "../../helpers/functions.config.js";
import { getMap } from "../../helpers/lotOccupancyDB/getMap.js";
import {
getMap
} from "../../helpers/lotOccupancyDB/getMap.js";
export const handler: RequestHandler = (request, response) => {
const map = getMap(request.params.mapId);
const map = getMap(request.params.mapId);
if (!map) {
return response.redirect(configFunctions.getProperty("reverseProxy.urlPrefix") + "/maps/?error=mapIdNotFound");
}
if (!map) {
return response.redirect(configFunctions.getProperty("reverseProxy.urlPrefix") + "/maps/?error=mapIdNotFound");
}
response.render("map-view", {
headTitle: map.mapName,
map
});
response.render("map-view", {
headTitle: map.mapName,
map
});
};

View File

@ -1,5 +1,8 @@
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import {
lotOccupancyDB as databasePath
} from "../../data/databasePaths.js";
import type * as recordTypes from "../../types/recordTypes";
@ -18,36 +21,36 @@ interface AddLotForm {
export const addLot =
(lotForm: AddLotForm, requestSession: recordTypes.PartialSession): number => {
(lotForm: AddLotForm, requestSession: recordTypes.PartialSession): number => {
const database = sqlite(databasePath);
const database = sqlite(databasePath);
const rightNowMillis = Date.now();
const rightNowMillis = Date.now();
const result = database
.prepare("insert into Lots (" +
"lotName, lotTypeId, lotStatusId," +
" mapId, mapKey," +
" lotLatitude, lotLongitude," +
" recordCreate_userName, recordCreate_timeMillis," +
" recordUpdate_userName, recordUpdate_timeMillis)" +
" values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)")
.run(lotForm.lotName,
lotForm.lotTypeId,
(lotForm.lotStatusId === "" ? undefined : lotForm.lotStatusId),
(lotForm.mapId === "" ? undefined : lotForm.mapId),
lotForm.mapKey,
(lotForm.lotLatitude === "" ? undefined : lotForm.lotLatitude),
(lotForm.lotLongitude === "" ? undefined : lotForm.lotLongitude),
requestSession.user.userName,
rightNowMillis,
requestSession.user.userName,
rightNowMillis);
const result = database
.prepare("insert into Lots (" +
"lotName, lotTypeId, lotStatusId," +
" mapId, mapKey," +
" lotLatitude, lotLongitude," +
" recordCreate_userName, recordCreate_timeMillis," +
" recordUpdate_userName, recordUpdate_timeMillis)" +
" values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)")
.run(lotForm.lotName,
lotForm.lotTypeId,
(lotForm.lotStatusId === "" ? undefined : lotForm.lotStatusId),
(lotForm.mapId === "" ? undefined : lotForm.mapId),
lotForm.mapKey,
(lotForm.lotLatitude === "" ? undefined : lotForm.lotLatitude),
(lotForm.lotLongitude === "" ? undefined : lotForm.lotLongitude),
requestSession.user.userName,
rightNowMillis,
requestSession.user.userName,
rightNowMillis);
database.close();
database.close();
return result.lastInsertRowid as number;
};
return result.lastInsertRowid as number;
};
export default addLot;

View File

@ -1,5 +1,8 @@
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import {
lotOccupancyDB as databasePath
} from "../../data/databasePaths.js";
import * as dateTimeFunctions from "@cityssm/expressjs-server-js/dateTimeFns.js";
@ -13,31 +16,31 @@ interface AddLotCommentForm {
export const addLotComment =
(lotCommentForm: AddLotCommentForm, requestSession: recordTypes.PartialSession): number => {
(lotCommentForm: AddLotCommentForm, requestSession: recordTypes.PartialSession): number => {
const database = sqlite(databasePath);
const database = sqlite(databasePath);
const rightNow = new Date();
const rightNow = new Date();
const result = database
.prepare("insert into LotComments (" +
"lotId, lotCommentDate, lotCommentTime, lotComment," +
" recordCreate_userName, recordCreate_timeMillis," +
" recordUpdate_userName, recordUpdate_timeMillis)" +
" values (?, ?, ?, ?, ?, ?, ?, ?)")
.run(lotCommentForm.lotId,
dateTimeFunctions.dateToInteger(rightNow),
dateTimeFunctions.dateToTimeInteger(rightNow),
lotCommentForm.lotComment,
requestSession.user.userName,
rightNow.getTime(),
requestSession.user.userName,
rightNow.getTime());
const result = database
.prepare("insert into LotComments (" +
"lotId, lotCommentDate, lotCommentTime, lotComment," +
" recordCreate_userName, recordCreate_timeMillis," +
" recordUpdate_userName, recordUpdate_timeMillis)" +
" values (?, ?, ?, ?, ?, ?, ?, ?)")
.run(lotCommentForm.lotId,
dateTimeFunctions.dateToInteger(rightNow),
dateTimeFunctions.dateToTimeInteger(rightNow),
lotCommentForm.lotComment,
requestSession.user.userName,
rightNow.getTime(),
requestSession.user.userName,
rightNow.getTime());
database.close();
database.close();
return result.lastInsertRowid as number;
};
return result.lastInsertRowid as number;
};
export default addLotComment;

View File

@ -1,6 +1,6 @@
import { dateStringToInteger, dateToInteger, dateToTimeInteger, timeStringToInteger } from "@cityssm/expressjs-server-js/dateTimeFns.js";
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import { dateStringToInteger, dateToInteger, dateToTimeInteger, timeStringToInteger } from "@cityssm/expressjs-server-js/dateTimeFns.js";
export const addLotOccupancyTransaction = (lotOccupancyTransactionForm, requestSession) => {
const database = sqlite(databasePath);
let transactionIndex = 0;

View File

@ -1,14 +1,15 @@
import sqlite from "better-sqlite3";
import {
lotOccupancyDB as databasePath
} from "../../data/databasePaths.js";
import {
dateStringToInteger,
dateToInteger,
dateToTimeInteger,
timeStringToInteger
} from "@cityssm/expressjs-server-js/dateTimeFns.js";
import sqlite from "better-sqlite3";
import {
lotOccupancyDB as databasePath
} from "../../data/databasePaths.js";
import type * as recordTypes from "../../types/recordTypes";

View File

@ -4,13 +4,16 @@ import {
lotOccupancyDB as databasePath
} from "../../data/databasePaths.js";
import {
clearOccupancyTypesCache
} from "../functions.cache.js";
import type * as recordTypes from "../../types/recordTypes";
import { clearOccupancyTypesCache } from "../functions.cache.js";
interface AddOccupancyTypeForm {
occupancyType: string;
orderNumber?: number;
orderNumber ? : number;
}

View File

@ -1,6 +1,6 @@
import { dateStringToInteger, dateToInteger } from "@cityssm/expressjs-server-js/dateTimeFns.js";
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import { dateStringToInteger, dateToInteger } from "@cityssm/expressjs-server-js/dateTimeFns.js";
export const addWorkOrder = (workOrderForm, requestSession) => {
const database = sqlite(databasePath);
const rightNow = new Date();

View File

@ -1,10 +1,14 @@
import { dateStringToInteger, dateToInteger } from "@cityssm/expressjs-server-js/dateTimeFns.js";
import sqlite from "better-sqlite3";
import {
lotOccupancyDB as databasePath
} from "../../data/databasePaths.js";
import {
dateStringToInteger,
dateToInteger
} from "@cityssm/expressjs-server-js/dateTimeFns.js";
import type * as recordTypes from "../../types/recordTypes";
@ -12,8 +16,8 @@ interface AddWorkOrderForm {
workOrderTypeId: number | string;
workOrderNumber: string;
workOrderDescription: string;
workOrderOpenDateString?: string;
workOrderCloseDateString?: string;
workOrderOpenDateString ? : string;
workOrderCloseDateString ? : string;
}

View File

@ -1,6 +1,6 @@
import { dateIntegerToString, timeIntegerToString } from "@cityssm/expressjs-server-js/dateTimeFns.js";
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import { dateIntegerToString, timeIntegerToString } from "@cityssm/expressjs-server-js/dateTimeFns.js";
export const getLotComments = (lotId, connectedDatabase) => {
const database = connectedDatabase || sqlite(databasePath, {
readonly: true

View File

@ -1,9 +1,14 @@
import { dateIntegerToString, timeIntegerToString } from "@cityssm/expressjs-server-js/dateTimeFns.js";
import sqlite from "better-sqlite3";
import {
lotOccupancyDB as databasePath
} from "../../data/databasePaths.js";
import {
dateIntegerToString,
timeIntegerToString
} from "@cityssm/expressjs-server-js/dateTimeFns.js";
import type * as recordTypes from "../../types/recordTypes";

View File

@ -1,6 +1,6 @@
import { dateIntegerToString, dateStringToInteger, dateToInteger } from "@cityssm/expressjs-server-js/dateTimeFns.js";
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import { dateIntegerToString, dateStringToInteger, dateToInteger } from "@cityssm/expressjs-server-js/dateTimeFns.js";
import { getLotOccupancyOccupants } from "./getLotOccupancyOccupants.js";
export const getLotOccupancies = (filters, options, connectedDatabase) => {
const database = connectedDatabase || sqlite(databasePath, {

View File

@ -1,15 +1,15 @@
import {
dateIntegerToString,
dateStringToInteger,
dateToInteger
} from "@cityssm/expressjs-server-js/dateTimeFns.js";
import sqlite from "better-sqlite3";
import {
lotOccupancyDB as databasePath
} from "../../data/databasePaths.js";
import {
dateIntegerToString,
dateStringToInteger,
dateToInteger
} from "@cityssm/expressjs-server-js/dateTimeFns.js";
import {
getLotOccupancyOccupants
} from "./getLotOccupancyOccupants.js";

View File

@ -1,6 +1,6 @@
import { dateIntegerToString } from "@cityssm/expressjs-server-js/dateTimeFns.js";
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import { dateIntegerToString } from "@cityssm/expressjs-server-js/dateTimeFns.js";
import { getLotOccupancyOccupants } from "./getLotOccupancyOccupants.js";
import { getLotOccupancyComments } from "./getLotOccupancyComments.js";
import { getLotOccupancyFields } from "./getLotOccupancyFields.js";

View File

@ -1,13 +1,13 @@
import {
dateIntegerToString
} from "@cityssm/expressjs-server-js/dateTimeFns.js";
import sqlite from "better-sqlite3";
import {
lotOccupancyDB as databasePath
} from "../../data/databasePaths.js";
import {
dateIntegerToString
} from "@cityssm/expressjs-server-js/dateTimeFns.js";
import {
getLotOccupancyOccupants
} from "./getLotOccupancyOccupants.js";

View File

@ -1,6 +1,6 @@
import { dateIntegerToString, timeIntegerToString } from "@cityssm/expressjs-server-js/dateTimeFns.js";
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import { dateIntegerToString, timeIntegerToString } from "@cityssm/expressjs-server-js/dateTimeFns.js";
export const getLotOccupancyComments = (lotOccupancyId, connectedDatabase) => {
const database = connectedDatabase || sqlite(databasePath, {
readonly: true

View File

@ -1,9 +1,14 @@
import { dateIntegerToString, timeIntegerToString } from "@cityssm/expressjs-server-js/dateTimeFns.js";
import sqlite from "better-sqlite3";
import {
lotOccupancyDB as databasePath
} from "../../data/databasePaths.js";
import {
dateIntegerToString,
timeIntegerToString
} from "@cityssm/expressjs-server-js/dateTimeFns.js";
import type * as recordTypes from "../../types/recordTypes";

View File

@ -1,6 +1,6 @@
import { dateIntegerToString, timeIntegerToString } from "@cityssm/expressjs-server-js/dateTimeFns.js";
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import { dateIntegerToString, timeIntegerToString } from "@cityssm/expressjs-server-js/dateTimeFns.js";
export const getLotOccupancyTransactions = (lotOccupancyId, connectedDatabase) => {
const database = connectedDatabase || sqlite(databasePath, {
readonly: true

View File

@ -1,10 +1,14 @@
import { dateIntegerToString, timeIntegerToString } from "@cityssm/expressjs-server-js/dateTimeFns.js";
import sqlite from "better-sqlite3";
import {
lotOccupancyDB as databasePath
} from "../../data/databasePaths.js";
import {
dateIntegerToString,
timeIntegerToString
} from "@cityssm/expressjs-server-js/dateTimeFns.js";
import type * as recordTypes from "../../types/recordTypes";
@ -19,15 +23,15 @@ export const getLotOccupancyTransactions = (lotOccupancyId: number | string,
database.function("userFn_timeIntegerToString", timeIntegerToString);
const lotOccupancyTransactions: recordTypes.LotOccupancyTransaction[] = database
.prepare("select lotOccupancyId, transactionIndex," +
" transactionDate, userFn_dateIntegerToString(transactionDate) as transactionDateString," +
" transactionTime, userFn_timeIntegerToString(transactionTime) as transactionTimeString," +
" transactionAmount, externalReceiptNumber, transactionNote" +
" from LotOccupancyTransactions" +
" where recordDelete_timeMillis is null" +
" and lotOccupancyId = ?" +
" order by transactionDate, transactionTime, transactionIndex")
.all(lotOccupancyId);
.prepare("select lotOccupancyId, transactionIndex," +
" transactionDate, userFn_dateIntegerToString(transactionDate) as transactionDateString," +
" transactionTime, userFn_timeIntegerToString(transactionTime) as transactionTimeString," +
" transactionAmount, externalReceiptNumber, transactionNote" +
" from LotOccupancyTransactions" +
" where recordDelete_timeMillis is null" +
" and lotOccupancyId = ?" +
" order by transactionDate, transactionTime, transactionIndex")
.all(lotOccupancyId);
if (!connectedDatabase) {
database.close();

View File

@ -1,38 +1,41 @@
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import {
lotOccupancyDB as databasePath
} from "../../data/databasePaths.js";
import type * as recordTypes from "../../types/recordTypes";
export const getMap = (mapId: number | string): recordTypes.Map => {
const database = sqlite(databasePath, {
readonly: true
});
const database = sqlite(databasePath, {
readonly: true
});
const map: recordTypes.Map = database
.prepare("select m.mapId, m.mapName, m.mapDescription," +
" m.mapLatitude, m.mapLongitude, m.mapSVG," +
" m.mapAddress1, m.mapAddress2, m.mapCity, m.mapProvince, m.mapPostalCode, m.mapPhoneNumber," +
" m.recordCreate_userName, m.recordCreate_timeMillis," +
" m.recordUpdate_userName, m.recordUpdate_timeMillis," +
" m.recordDelete_userName, m.recordDelete_timeMillis," +
" count(l.lotId) as lotCount" +
" from Maps m" +
" left join Lots l on m.mapId = l.mapId and l.recordDelete_timeMillis is null" +
" where m.mapId = ?" +
" group by m.mapId, m.mapName, m.mapDescription," +
" m.mapLatitude, m.mapLongitude, m.mapSVG," +
" m.mapAddress1, m.mapAddress2, m.mapCity, m.mapProvince, m.mapPostalCode, m.mapPhoneNumber," +
" m.recordCreate_userName, m.recordCreate_timeMillis," +
" m.recordUpdate_userName, m.recordUpdate_timeMillis," +
" m.recordDelete_userName, m.recordDelete_timeMillis")
.get(mapId);
const map: recordTypes.Map = database
.prepare("select m.mapId, m.mapName, m.mapDescription," +
" m.mapLatitude, m.mapLongitude, m.mapSVG," +
" m.mapAddress1, m.mapAddress2, m.mapCity, m.mapProvince, m.mapPostalCode, m.mapPhoneNumber," +
" m.recordCreate_userName, m.recordCreate_timeMillis," +
" m.recordUpdate_userName, m.recordUpdate_timeMillis," +
" m.recordDelete_userName, m.recordDelete_timeMillis," +
" count(l.lotId) as lotCount" +
" from Maps m" +
" left join Lots l on m.mapId = l.mapId and l.recordDelete_timeMillis is null" +
" where m.mapId = ?" +
" group by m.mapId, m.mapName, m.mapDescription," +
" m.mapLatitude, m.mapLongitude, m.mapSVG," +
" m.mapAddress1, m.mapAddress2, m.mapCity, m.mapProvince, m.mapPostalCode, m.mapPhoneNumber," +
" m.recordCreate_userName, m.recordCreate_timeMillis," +
" m.recordUpdate_userName, m.recordUpdate_timeMillis," +
" m.recordDelete_userName, m.recordDelete_timeMillis")
.get(mapId);
database.close();
database.close();
return map;
};
return map;
};
export default getMap;

View File

@ -1,4 +1,5 @@
import sqlite from "better-sqlite3";
import {
lotOccupancyDB as databasePath
} from "../../data/databasePaths.js";

View File

@ -1,4 +1,5 @@
import sqlite from "better-sqlite3";
import {
lotOccupancyDB as databasePath
} from "../../data/databasePaths.js";

View File

@ -1,5 +1,8 @@
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import {
lotOccupancyDB as databasePath
} from "../../data/databasePaths.js";
import type * as recordTypes from "../../types/recordTypes";
@ -9,14 +12,14 @@ interface UpdateFeeForm {
feeCategoryId: string;
feeName: string;
feeDescription: string;
occupancyTypeId?: string;
lotTypeId?: string;
feeAmount?: string;
feeFunction?: string;
taxAmount?: string;
taxPercentage?: string;
occupancyTypeId ? : string;
lotTypeId ? : string;
feeAmount ? : string;
feeFunction ? : string;
taxAmount ? : string;
taxPercentage ? : string;
includeQuantity: "" | "1";
quantityUnit?: string;
quantityUnit ? : string;
isRequired: "" | "1";
}

View File

@ -1,5 +1,8 @@
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import {
lotOccupancyDB as databasePath
} from "../../data/databasePaths.js";
import type * as recordTypes from "../../types/recordTypes";

View File

@ -1,5 +1,8 @@
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import {
lotOccupancyDB as databasePath
} from "../../data/databasePaths.js";
import type * as recordTypes from "../../types/recordTypes";

View File

@ -1,6 +1,6 @@
import { dateStringToInteger } from "@cityssm/expressjs-server-js/dateTimeFns.js";
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import { dateStringToInteger } from "@cityssm/expressjs-server-js/dateTimeFns.js";
import { addOrUpdateLotOccupancyField } from "./addOrUpdateLotOccupancyField.js";
import { deleteLotOccupancyField } from "./deleteLotOccupancyField.js";
export function updateLotOccupancy(lotOccupancyForm, requestSession) {

View File

@ -1,13 +1,13 @@
import {
dateStringToInteger
} from "@cityssm/expressjs-server-js/dateTimeFns.js";
import sqlite from "better-sqlite3";
import {
lotOccupancyDB as databasePath
} from "../../data/databasePaths.js";
import {
dateStringToInteger
} from "@cityssm/expressjs-server-js/dateTimeFns.js";
import {
addOrUpdateLotOccupancyField
} from "./addOrUpdateLotOccupancyField.js";
@ -18,6 +18,7 @@ import {
import type * as recordTypes from "../../types/recordTypes";
interface UpdateLotOccupancyForm {
lotOccupancyId: string | number;
occupancyTypeId: string | number;