reduce update record duplication

deepsource-autofix-76c6eb20
Dan Gowans 2023-01-06 10:59:34 -05:00
parent 941bd571a6
commit e9b86a86e1
15 changed files with 135 additions and 235 deletions

View File

@ -1,18 +1,9 @@
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import { updateRecord } from "./updateRecord.js";
export function updateFeeCategory(feeCategoryForm, requestSession) {
const database = sqlite(databasePath);
const rightNowMillis = Date.now();
const result = database
.prepare(`update FeeCategories
set feeCategory = ?,
recordUpdate_userName = ?,
recordUpdate_timeMillis = ?
where recordDelete_timeMillis is null
and feeCategoryId = ?`)
.run(feeCategoryForm.feeCategory, requestSession.user.userName, rightNowMillis, feeCategoryForm.feeCategoryId);
database.close();
return result.changes > 0;
const success = updateRecord("FeeCategories", feeCategoryForm.feeCategoryId, feeCategoryForm.feeCategory, requestSession);
return success;
}
export function updateFeeCategoryOrderNumber(feeCategoryId, orderNumber, connectedDatabase) {
const database = connectedDatabase ||

View File

@ -1,6 +1,7 @@
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import { updateRecord } from "./updateRecord.js";
import type * as recordTypes from "../../types/recordTypes";
@ -13,29 +14,13 @@ export function updateFeeCategory(
feeCategoryForm: UpdateFeeCategoryForm,
requestSession: recordTypes.PartialSession
): boolean {
const database = sqlite(databasePath);
const rightNowMillis = Date.now();
const result = database
.prepare(
`update FeeCategories
set feeCategory = ?,
recordUpdate_userName = ?,
recordUpdate_timeMillis = ?
where recordDelete_timeMillis is null
and feeCategoryId = ?`
)
.run(
const success = updateRecord(
"FeeCategories",
feeCategoryForm.feeCategoryId,
feeCategoryForm.feeCategory,
requestSession.user.userName,
rightNowMillis,
feeCategoryForm.feeCategoryId
requestSession
);
database.close();
return result.changes > 0;
return success;
}
export function updateFeeCategoryOrderNumber(

View File

@ -1,19 +1,8 @@
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import { clearLotStatusesCache } from "../functions.cache.js";
import { updateRecord } from "./updateRecord.js";
export function updateLotStatus(lotStatusForm, requestSession) {
const database = sqlite(databasePath);
const rightNowMillis = Date.now();
const result = database
.prepare(`update LotStatuses
set lotStatus = ?,
recordUpdate_userName = ?,
recordUpdate_timeMillis = ?
where lotStatusId = ?
and recordDelete_timeMillis is null`)
.run(lotStatusForm.lotStatus, requestSession.user.userName, rightNowMillis, lotStatusForm.lotStatusId);
database.close();
const success = updateRecord("LotStatuses", lotStatusForm.lotStatusId, lotStatusForm.lotStatus, requestSession);
clearLotStatusesCache();
return result.changes > 0;
return success;
}
export default updateLotStatus;

View File

@ -1,8 +1,5 @@
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import { clearLotStatusesCache } from "../functions.cache.js";
import { updateRecord } from "./updateRecord.js";
import type * as recordTypes from "../../types/recordTypes";
@ -15,31 +12,16 @@ export function updateLotStatus(
lotStatusForm: UpdateLotStatusForm,
requestSession: recordTypes.PartialSession
): boolean {
const database = sqlite(databasePath);
const rightNowMillis = Date.now();
const result = database
.prepare(
`update LotStatuses
set lotStatus = ?,
recordUpdate_userName = ?,
recordUpdate_timeMillis = ?
where lotStatusId = ?
and recordDelete_timeMillis is null`
)
.run(
const success = updateRecord(
"LotStatuses",
lotStatusForm.lotStatusId,
lotStatusForm.lotStatus,
requestSession.user.userName,
rightNowMillis,
lotStatusForm.lotStatusId
requestSession
);
database.close();
clearLotStatusesCache();
return result.changes > 0;
return success;
}
export default updateLotStatus;

View File

@ -1,19 +1,8 @@
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import { clearLotTypesCache } from "../functions.cache.js";
import { updateRecord } from "./updateRecord.js";
export function updateLotType(lotTypeForm, requestSession) {
const database = sqlite(databasePath);
const rightNowMillis = Date.now();
const result = database
.prepare(`update LotTypes
set lotType = ?,
recordUpdate_userName = ?,
recordUpdate_timeMillis = ?
where lotTypeId = ?
and recordDelete_timeMillis is null`)
.run(lotTypeForm.lotType, requestSession.user.userName, rightNowMillis, lotTypeForm.lotTypeId);
database.close();
const success = updateRecord("LotTypes", lotTypeForm.lotTypeId, lotTypeForm.lotType, requestSession);
clearLotTypesCache();
return result.changes > 0;
return success;
}
export default updateLotType;

View File

@ -1,8 +1,5 @@
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import { clearLotTypesCache } from "../functions.cache.js";
import { updateRecord } from "./updateRecord.js";
import type * as recordTypes from "../../types/recordTypes";
@ -15,31 +12,11 @@ export function updateLotType(
lotTypeForm: UpdateLotTypeForm,
requestSession: recordTypes.PartialSession
): boolean {
const database = sqlite(databasePath);
const rightNowMillis = Date.now();
const result = database
.prepare(
`update LotTypes
set lotType = ?,
recordUpdate_userName = ?,
recordUpdate_timeMillis = ?
where lotTypeId = ?
and recordDelete_timeMillis is null`
)
.run(
lotTypeForm.lotType,
requestSession.user.userName,
rightNowMillis,
lotTypeForm.lotTypeId
);
database.close();
const success = updateRecord("LotTypes", lotTypeForm.lotTypeId, lotTypeForm.lotType, requestSession);
clearLotTypesCache();
return result.changes > 0;
return success;
}
export default updateLotType;

View File

@ -1,19 +1,8 @@
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import { clearOccupancyTypesCache } from "../functions.cache.js";
import { updateRecord } from "./updateRecord.js";
export function updateOccupancyType(occupancyTypeForm, requestSession) {
const database = sqlite(databasePath);
const rightNowMillis = Date.now();
const result = database
.prepare(`update OccupancyTypes
set occupancyType = ?,
recordUpdate_userName = ?,
recordUpdate_timeMillis = ?
where occupancyTypeId = ?
and recordDelete_timeMillis is null`)
.run(occupancyTypeForm.occupancyType, requestSession.user.userName, rightNowMillis, occupancyTypeForm.occupancyTypeId);
database.close();
const success = updateRecord("OccupancyTypes", occupancyTypeForm.occupancyTypeId, occupancyTypeForm.occupancyType, requestSession);
clearOccupancyTypesCache();
return result.changes > 0;
return success;
}
export default updateOccupancyType;

View File

@ -1,8 +1,5 @@
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import { clearOccupancyTypesCache } from "../functions.cache.js";
import { updateRecord } from "./updateRecord.js";
import type * as recordTypes from "../../types/recordTypes";
@ -15,31 +12,16 @@ export function updateOccupancyType(
occupancyTypeForm: UpdateOccupancyTypeForm,
requestSession: recordTypes.PartialSession
): boolean {
const database = sqlite(databasePath);
const rightNowMillis = Date.now();
const result = database
.prepare(
`update OccupancyTypes
set occupancyType = ?,
recordUpdate_userName = ?,
recordUpdate_timeMillis = ?
where occupancyTypeId = ?
and recordDelete_timeMillis is null`
)
.run(
const success = updateRecord(
"OccupancyTypes",
occupancyTypeForm.occupancyTypeId,
occupancyTypeForm.occupancyType,
requestSession.user.userName,
rightNowMillis,
occupancyTypeForm.occupancyTypeId
requestSession
);
database.close();
clearOccupancyTypesCache();
return result.changes > 0;
return success;
}
export default updateOccupancyType;

View File

@ -0,0 +1,4 @@
import type * as recordTypes from "../../types/recordTypes";
declare type RecordTable = "FeeCategories" | "LotStatuses" | "LotTypes" | "OccupancyTypes" | "WorkOrderMilestoneTypes" | "WorkOrderTypes";
export declare function updateRecord(recordTable: RecordTable, recordId: number | string, recordName: string, requestSession: recordTypes.PartialSession): boolean;
export {};

View File

@ -0,0 +1,23 @@
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
const recordNameIdColumns = new Map();
recordNameIdColumns.set("FeeCategories", ["feeCategory", "feeCategoryId"]);
recordNameIdColumns.set("LotStatuses", ["lotStatus", "lotStatusId"]);
recordNameIdColumns.set("LotTypes", ["lotType", "lotTypeId"]);
recordNameIdColumns.set("OccupancyTypes", ["occupancyType", "occupancyTypeId"]);
recordNameIdColumns.set("WorkOrderMilestoneTypes", ["workOrderMilestoneType", "workOrderMilestoneTypeId"]);
recordNameIdColumns.set("WorkOrderTypes", ["workOrderType", "workOrderTypeId"]);
export function updateRecord(recordTable, recordId, recordName, requestSession) {
const database = sqlite(databasePath);
const rightNowMillis = Date.now();
const result = database
.prepare(`update ${recordTable}
set ${recordNameIdColumns.get(recordTable)[0]} = ?,
recordUpdate_userName = ?,
recordUpdate_timeMillis = ?
where recordDelete_timeMillis is null
and ${recordNameIdColumns.get(recordTable)[1]} = ?`)
.run(recordName, requestSession.user.userName, rightNowMillis, recordId);
database.close();
return result.changes > 0;
}

View File

@ -0,0 +1,47 @@
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import type * as recordTypes from "../../types/recordTypes";
type RecordTable =
| "FeeCategories"
| "LotStatuses"
| "LotTypes"
| "OccupancyTypes"
| "WorkOrderMilestoneTypes"
| "WorkOrderTypes";
const recordNameIdColumns: Map<RecordTable, string[]> = new Map();
recordNameIdColumns.set("FeeCategories", ["feeCategory", "feeCategoryId"]);
recordNameIdColumns.set("LotStatuses", ["lotStatus", "lotStatusId"]);
recordNameIdColumns.set("LotTypes", ["lotType", "lotTypeId"]);
recordNameIdColumns.set("OccupancyTypes", ["occupancyType", "occupancyTypeId"]);
recordNameIdColumns.set("WorkOrderMilestoneTypes", ["workOrderMilestoneType", "workOrderMilestoneTypeId"]);
recordNameIdColumns.set("WorkOrderTypes", ["workOrderType", "workOrderTypeId"]);
export function updateRecord(
recordTable: RecordTable,
recordId: number | string,
recordName: string,
requestSession: recordTypes.PartialSession
): boolean {
const database = sqlite(databasePath);
const rightNowMillis = Date.now();
const result = database
.prepare(
`update ${recordTable}
set ${recordNameIdColumns.get(recordTable)[0]} = ?,
recordUpdate_userName = ?,
recordUpdate_timeMillis = ?
where recordDelete_timeMillis is null
and ${recordNameIdColumns.get(recordTable)[1]} = ?`
)
.run(recordName, requestSession.user.userName, rightNowMillis, recordId);
database.close();
return result.changes > 0;
}

View File

@ -1,19 +1,8 @@
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import { clearWorkOrderMilestoneTypesCache } from "../functions.cache.js";
import { updateRecord } from "./updateRecord.js";
export function updateWorkOrderMilestoneType(workOrderMilestoneTypeForm, requestSession) {
const database = sqlite(databasePath);
const rightNowMillis = Date.now();
const result = database
.prepare(`update WorkOrderMilestoneTypes
set workOrderMilestoneType = ?,
recordUpdate_userName = ?,
recordUpdate_timeMillis = ?
where workOrderMilestoneTypeId = ?
and recordDelete_timeMillis is null`)
.run(workOrderMilestoneTypeForm.workOrderMilestoneType, requestSession.user.userName, rightNowMillis, workOrderMilestoneTypeForm.workOrderMilestoneTypeId);
database.close();
const success = updateRecord("WorkOrderMilestoneTypes", workOrderMilestoneTypeForm.workOrderMilestoneTypeId, workOrderMilestoneTypeForm.workOrderMilestoneType, requestSession);
clearWorkOrderMilestoneTypesCache();
return result.changes > 0;
return success;
}
export default updateWorkOrderMilestoneType;

View File

@ -1,8 +1,5 @@
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import { clearWorkOrderMilestoneTypesCache } from "../functions.cache.js";
import { updateRecord } from "./updateRecord.js";
import type * as recordTypes from "../../types/recordTypes";
@ -15,31 +12,16 @@ export function updateWorkOrderMilestoneType(
workOrderMilestoneTypeForm: UpdateWorkOrderMilestoneTypeForm,
requestSession: recordTypes.PartialSession
): boolean {
const database = sqlite(databasePath);
const rightNowMillis = Date.now();
const result = database
.prepare(
`update WorkOrderMilestoneTypes
set workOrderMilestoneType = ?,
recordUpdate_userName = ?,
recordUpdate_timeMillis = ?
where workOrderMilestoneTypeId = ?
and recordDelete_timeMillis is null`
)
.run(
const success = updateRecord(
"WorkOrderMilestoneTypes",
workOrderMilestoneTypeForm.workOrderMilestoneTypeId,
workOrderMilestoneTypeForm.workOrderMilestoneType,
requestSession.user.userName,
rightNowMillis,
workOrderMilestoneTypeForm.workOrderMilestoneTypeId
requestSession
);
database.close();
clearWorkOrderMilestoneTypesCache();
return result.changes > 0;
return success;
}
export default updateWorkOrderMilestoneType;

View File

@ -1,19 +1,8 @@
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import { clearWorkOrderTypesCache } from "../functions.cache.js";
import { updateRecord } from "./updateRecord.js";
export function updateWorkOrderType(workOrderTypeForm, requestSession) {
const database = sqlite(databasePath);
const rightNowMillis = Date.now();
const result = database
.prepare(`update WorkOrderTypes
set workOrderType = ?,
recordUpdate_userName = ?,
recordUpdate_timeMillis = ?
where workOrderTypeId = ?
and recordDelete_timeMillis is null`)
.run(workOrderTypeForm.workOrderType, requestSession.user.userName, rightNowMillis, workOrderTypeForm.workOrderTypeId);
database.close();
const success = updateRecord("WorkOrderTypes", workOrderTypeForm.workOrderTypeId, workOrderTypeForm.workOrderType, requestSession);
clearWorkOrderTypesCache();
return result.changes > 0;
return success;
}
export default updateWorkOrderType;

View File

@ -1,8 +1,5 @@
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import { clearWorkOrderTypesCache } from "../functions.cache.js";
import { updateRecord } from "./updateRecord.js";
import type * as recordTypes from "../../types/recordTypes";
@ -15,31 +12,16 @@ export function updateWorkOrderType(
workOrderTypeForm: UpdateWorkOrderTypeForm,
requestSession: recordTypes.PartialSession
): boolean {
const database = sqlite(databasePath);
const rightNowMillis = Date.now();
const result = database
.prepare(
`update WorkOrderTypes
set workOrderType = ?,
recordUpdate_userName = ?,
recordUpdate_timeMillis = ?
where workOrderTypeId = ?
and recordDelete_timeMillis is null`
)
.run(
const success = updateRecord(
"WorkOrderTypes",
workOrderTypeForm.workOrderTypeId,
workOrderTypeForm.workOrderType,
requestSession.user.userName,
rightNowMillis,
workOrderTypeForm.workOrderTypeId
requestSession
);
database.close();
clearWorkOrderTypesCache();
return result.changes > 0;
return success;
}
export default updateWorkOrderType;