reduce duplicate add code

deepsource-autofix-76c6eb20
Dan Gowans 2023-01-06 09:08:40 -05:00
parent b86bc6cd6a
commit 1fdb77747f
15 changed files with 147 additions and 242 deletions

View File

@ -1,16 +1,6 @@
import sqlite from "better-sqlite3"; import { addRecord } from "./addRecord.js";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
export function addFeeCategory(feeCategoryForm, requestSession) { export function addFeeCategory(feeCategoryForm, requestSession) {
const database = sqlite(databasePath); const feeCategoryId = addRecord("FeeCategories", feeCategoryForm.feeCategory, feeCategoryForm.orderNumber || -1, requestSession);
const rightNowMillis = Date.now(); return feeCategoryId;
const result = database
.prepare(`insert into FeeCategories (
feeCategory, orderNumber,
recordCreate_userName, recordCreate_timeMillis,
recordUpdate_userName, recordUpdate_timeMillis)
values (?, ?, ?, ?, ?, ?)`)
.run(feeCategoryForm.feeCategory, feeCategoryForm.orderNumber || -1, requestSession.user.userName, rightNowMillis, requestSession.user.userName, rightNowMillis);
database.close();
return result.lastInsertRowid;
} }
export default addFeeCategory; export default addFeeCategory;

View File

@ -1,5 +1,4 @@
import sqlite from "better-sqlite3"; import { addRecord } from "./addRecord.js";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import type * as recordTypes from "../../types/recordTypes"; import type * as recordTypes from "../../types/recordTypes";
@ -12,30 +11,14 @@ export function addFeeCategory(
feeCategoryForm: AddFeeCategoryForm, feeCategoryForm: AddFeeCategoryForm,
requestSession: recordTypes.PartialSession requestSession: recordTypes.PartialSession
): number { ): number {
const database = sqlite(databasePath); const feeCategoryId = addRecord(
"FeeCategories",
feeCategoryForm.feeCategory,
feeCategoryForm.orderNumber || -1,
requestSession
);
const rightNowMillis = Date.now(); return feeCategoryId;
const result = database
.prepare(
`insert into FeeCategories (
feeCategory, orderNumber,
recordCreate_userName, recordCreate_timeMillis,
recordUpdate_userName, recordUpdate_timeMillis)
values (?, ?, ?, ?, ?, ?)`
)
.run(
feeCategoryForm.feeCategory,
feeCategoryForm.orderNumber || -1,
requestSession.user.userName,
rightNowMillis,
requestSession.user.userName,
rightNowMillis
);
database.close();
return result.lastInsertRowid as number;
} }
export default addFeeCategory; export default addFeeCategory;

View File

@ -1,18 +1,8 @@
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import { clearLotStatusesCache } from "../functions.cache.js"; import { clearLotStatusesCache } from "../functions.cache.js";
import { addRecord } from "./addRecord.js";
export function addLotStatus(lotStatusForm, requestSession) { export function addLotStatus(lotStatusForm, requestSession) {
const database = sqlite(databasePath); const lotStatusId = addRecord("LotStatuses", lotStatusForm.lotStatus, lotStatusForm.orderNumber || -1, requestSession);
const rightNowMillis = Date.now();
const result = database
.prepare(`insert into LotStatuses (
lotStatus, orderNumber,
recordCreate_userName, recordCreate_timeMillis,
recordUpdate_userName, recordUpdate_timeMillis)
values (?, ?, ?, ?, ?, ?)`)
.run(lotStatusForm.lotStatus, lotStatusForm.orderNumber || -1, requestSession.user.userName, rightNowMillis, requestSession.user.userName, rightNowMillis);
database.close();
clearLotStatusesCache(); clearLotStatusesCache();
return result.lastInsertRowid; return lotStatusId;
} }
export default addLotStatus; export default addLotStatus;

View File

@ -1,9 +1,7 @@
import sqlite from "better-sqlite3"; import { clearLotStatusesCache } from "../functions.cache.js";
import { addRecord } from "./addRecord.js";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import type * as recordTypes from "../../types/recordTypes"; import type * as recordTypes from "../../types/recordTypes";
import { clearLotStatusesCache } from "../functions.cache.js";
interface AddLotStatusForm { interface AddLotStatusForm {
lotStatus: string; lotStatus: string;
@ -14,32 +12,16 @@ export function addLotStatus(
lotStatusForm: AddLotStatusForm, lotStatusForm: AddLotStatusForm,
requestSession: recordTypes.PartialSession requestSession: recordTypes.PartialSession
): number { ): number {
const database = sqlite(databasePath); const lotStatusId = addRecord(
"LotStatuses",
const rightNowMillis = Date.now(); lotStatusForm.lotStatus,
lotStatusForm.orderNumber || -1,
const result = database requestSession
.prepare( );
`insert into LotStatuses (
lotStatus, orderNumber,
recordCreate_userName, recordCreate_timeMillis,
recordUpdate_userName, recordUpdate_timeMillis)
values (?, ?, ?, ?, ?, ?)`
)
.run(
lotStatusForm.lotStatus,
lotStatusForm.orderNumber || -1,
requestSession.user.userName,
rightNowMillis,
requestSession.user.userName,
rightNowMillis
);
database.close();
clearLotStatusesCache(); clearLotStatusesCache();
return result.lastInsertRowid as number; return lotStatusId;
} }
export default addLotStatus; export default addLotStatus;

View File

@ -1,18 +1,8 @@
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import { clearLotTypesCache } from "../functions.cache.js"; import { clearLotTypesCache } from "../functions.cache.js";
import { addRecord } from "./addRecord.js";
export function addLotType(lotTypeForm, requestSession) { export function addLotType(lotTypeForm, requestSession) {
const database = sqlite(databasePath); const lotTypeId = addRecord("LotTypes", lotTypeForm.lotType, lotTypeForm.orderNumber || -1, requestSession);
const rightNowMillis = Date.now();
const result = database
.prepare(`insert into LotTypes (
lotType, orderNumber,
recordCreate_userName, recordCreate_timeMillis,
recordUpdate_userName, recordUpdate_timeMillis)
values (?, ?, ?, ?, ?, ?)`)
.run(lotTypeForm.lotType, lotTypeForm.orderNumber || -1, requestSession.user.userName, rightNowMillis, requestSession.user.userName, rightNowMillis);
database.close();
clearLotTypesCache(); clearLotTypesCache();
return result.lastInsertRowid; return lotTypeId;
} }
export default addLotType; export default addLotType;

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 { clearLotTypesCache } from "../functions.cache.js";
import { addRecord } from "./addRecord.js";
import type * as recordTypes from "../../types/recordTypes"; import type * as recordTypes from "../../types/recordTypes";
@ -11,36 +8,17 @@ interface AddLotTypeForm {
orderNumber?: number; orderNumber?: number;
} }
export function addLotType( export function addLotType(lotTypeForm: AddLotTypeForm, requestSession: recordTypes.PartialSession): number {
lotTypeForm: AddLotTypeForm, const lotTypeId = addRecord(
requestSession: recordTypes.PartialSession "LotTypes",
): number { lotTypeForm.lotType,
const database = sqlite(databasePath); lotTypeForm.orderNumber || -1,
requestSession
const rightNowMillis = Date.now(); );
const result = database
.prepare(
`insert into LotTypes (
lotType, orderNumber,
recordCreate_userName, recordCreate_timeMillis,
recordUpdate_userName, recordUpdate_timeMillis)
values (?, ?, ?, ?, ?, ?)`
)
.run(
lotTypeForm.lotType,
lotTypeForm.orderNumber || -1,
requestSession.user.userName,
rightNowMillis,
requestSession.user.userName,
rightNowMillis
);
database.close();
clearLotTypesCache(); clearLotTypesCache();
return result.lastInsertRowid as number; return lotTypeId;
} }
export default addLotType; export default addLotType;

View File

@ -1,18 +1,8 @@
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import { clearOccupancyTypesCache } from "../functions.cache.js"; import { clearOccupancyTypesCache } from "../functions.cache.js";
import { addRecord } from "./addRecord.js";
export function addOccupancyType(occupancyTypeForm, requestSession) { export function addOccupancyType(occupancyTypeForm, requestSession) {
const database = sqlite(databasePath); const occupancyTypeId = addRecord("OccupancyTypes", occupancyTypeForm.occupancyType, occupancyTypeForm.orderNumber || -1, requestSession);
const rightNowMillis = Date.now();
const result = database
.prepare(`insert into OccupancyTypes (
occupancyType, orderNumber,
recordCreate_userName, recordCreate_timeMillis,
recordUpdate_userName, recordUpdate_timeMillis)
values (?, ?, ?, ?, ?, ?)`)
.run(occupancyTypeForm.occupancyType, occupancyTypeForm.orderNumber || -1, requestSession.user.userName, rightNowMillis, requestSession.user.userName, rightNowMillis);
database.close();
clearOccupancyTypesCache(); clearOccupancyTypesCache();
return result.lastInsertRowid; return occupancyTypeId;
} }
export default addOccupancyType; export default addOccupancyType;

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 { clearOccupancyTypesCache } from "../functions.cache.js";
import { addRecord } from "./addRecord.js";
import type * as recordTypes from "../../types/recordTypes"; import type * as recordTypes from "../../types/recordTypes";
@ -15,32 +12,16 @@ export function addOccupancyType(
occupancyTypeForm: AddOccupancyTypeForm, occupancyTypeForm: AddOccupancyTypeForm,
requestSession: recordTypes.PartialSession requestSession: recordTypes.PartialSession
): number { ): number {
const database = sqlite(databasePath); const occupancyTypeId = addRecord(
"OccupancyTypes",
const rightNowMillis = Date.now(); occupancyTypeForm.occupancyType,
occupancyTypeForm.orderNumber || -1,
const result = database requestSession
.prepare( );
`insert into OccupancyTypes (
occupancyType, orderNumber,
recordCreate_userName, recordCreate_timeMillis,
recordUpdate_userName, recordUpdate_timeMillis)
values (?, ?, ?, ?, ?, ?)`
)
.run(
occupancyTypeForm.occupancyType,
occupancyTypeForm.orderNumber || -1,
requestSession.user.userName,
rightNowMillis,
requestSession.user.userName,
rightNowMillis
);
database.close();
clearOccupancyTypesCache(); clearOccupancyTypesCache();
return result.lastInsertRowid as number; return occupancyTypeId;
} }
export default addOccupancyType; export default addOccupancyType;

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 addRecord(recordTable: RecordTable, recordName: string, orderNumber: number, requestSession: recordTypes.PartialSession): number;
export {};

View File

@ -0,0 +1,22 @@
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
const recordNameColumns = new Map();
recordNameColumns.set("FeeCategories", "feeCategory");
recordNameColumns.set("LotStatuses", "lotStatus");
recordNameColumns.set("LotTypes", "lotType");
recordNameColumns.set("OccupancyTypes", "occupancyType");
recordNameColumns.set("WorkOrderMilestoneTypes", "workOrderMilestoneType");
recordNameColumns.set("WorkOrderTypes", "workOrderType");
export function addRecord(recordTable, recordName, orderNumber, requestSession) {
const database = sqlite(databasePath);
const rightNowMillis = Date.now();
const result = database
.prepare(`insert into ${recordTable} (
${recordNameColumns.get(recordTable)}, orderNumber,
recordCreate_userName, recordCreate_timeMillis,
recordUpdate_userName, recordUpdate_timeMillis)
values (?, ?, ?, ?, ?, ?)`)
.run(recordName, orderNumber, requestSession.user.userName, rightNowMillis, requestSession.user.userName, rightNowMillis);
database.close();
return result.lastInsertRowid;
}

View File

@ -0,0 +1,53 @@
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 recordNameColumns: Map<RecordTable, string> = new Map();
recordNameColumns.set("FeeCategories", "feeCategory");
recordNameColumns.set("LotStatuses", "lotStatus");
recordNameColumns.set("LotTypes", "lotType");
recordNameColumns.set("OccupancyTypes", "occupancyType");
recordNameColumns.set("WorkOrderMilestoneTypes", "workOrderMilestoneType");
recordNameColumns.set("WorkOrderTypes", "workOrderType");
export function addRecord(
recordTable: RecordTable,
recordName: string,
orderNumber: number,
requestSession: recordTypes.PartialSession
): number {
const database = sqlite(databasePath);
const rightNowMillis = Date.now();
const result = database
.prepare(
`insert into ${recordTable} (
${recordNameColumns.get(recordTable)}, orderNumber,
recordCreate_userName, recordCreate_timeMillis,
recordUpdate_userName, recordUpdate_timeMillis)
values (?, ?, ?, ?, ?, ?)`
)
.run(
recordName,
orderNumber,
requestSession.user.userName,
rightNowMillis,
requestSession.user.userName,
rightNowMillis
);
database.close();
return result.lastInsertRowid as number;
}

View File

@ -1,18 +1,8 @@
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import { clearWorkOrderMilestoneTypesCache } from "../functions.cache.js"; import { clearWorkOrderMilestoneTypesCache } from "../functions.cache.js";
import { addRecord } from "./addRecord.js";
export function addWorkOrderMilestoneType(workOrderMilestoneTypeForm, requestSession) { export function addWorkOrderMilestoneType(workOrderMilestoneTypeForm, requestSession) {
const database = sqlite(databasePath); const workOrderMilestoneId = addRecord("WorkOrderMilestoneTypes", workOrderMilestoneTypeForm.workOrderMilestoneType, workOrderMilestoneTypeForm.orderNumber || -1, requestSession);
const rightNowMillis = Date.now();
const result = database
.prepare(`insert into WorkOrderMilestoneTypes (
workOrderMilestoneType, orderNumber,
recordCreate_userName, recordCreate_timeMillis,
recordUpdate_userName, recordUpdate_timeMillis)
values (?, ?, ?, ?, ?, ?)`)
.run(workOrderMilestoneTypeForm.workOrderMilestoneType, workOrderMilestoneTypeForm.orderNumber || -1, requestSession.user.userName, rightNowMillis, requestSession.user.userName, rightNowMillis);
database.close();
clearWorkOrderMilestoneTypesCache(); clearWorkOrderMilestoneTypesCache();
return result.lastInsertRowid; return workOrderMilestoneId;
} }
export default addWorkOrderMilestoneType; export default addWorkOrderMilestoneType;

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 { clearWorkOrderMilestoneTypesCache } from "../functions.cache.js";
import { addRecord } from "./addRecord.js";
import type * as recordTypes from "../../types/recordTypes"; import type * as recordTypes from "../../types/recordTypes";
@ -15,32 +12,16 @@ export function addWorkOrderMilestoneType(
workOrderMilestoneTypeForm: AddWorkOrderMilestoneTypeForm, workOrderMilestoneTypeForm: AddWorkOrderMilestoneTypeForm,
requestSession: recordTypes.PartialSession requestSession: recordTypes.PartialSession
): number { ): number {
const database = sqlite(databasePath); const workOrderMilestoneId = addRecord(
"WorkOrderMilestoneTypes",
const rightNowMillis = Date.now(); workOrderMilestoneTypeForm.workOrderMilestoneType,
workOrderMilestoneTypeForm.orderNumber || -1,
const result = database requestSession
.prepare( );
`insert into WorkOrderMilestoneTypes (
workOrderMilestoneType, orderNumber,
recordCreate_userName, recordCreate_timeMillis,
recordUpdate_userName, recordUpdate_timeMillis)
values (?, ?, ?, ?, ?, ?)`
)
.run(
workOrderMilestoneTypeForm.workOrderMilestoneType,
workOrderMilestoneTypeForm.orderNumber || -1,
requestSession.user.userName,
rightNowMillis,
requestSession.user.userName,
rightNowMillis
);
database.close();
clearWorkOrderMilestoneTypesCache(); clearWorkOrderMilestoneTypesCache();
return result.lastInsertRowid as number; return workOrderMilestoneId;
} }
export default addWorkOrderMilestoneType; export default addWorkOrderMilestoneType;

View File

@ -1,18 +1,8 @@
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import { clearWorkOrderTypesCache } from "../functions.cache.js"; import { clearWorkOrderTypesCache } from "../functions.cache.js";
import { addRecord } from "./addRecord.js";
export function addWorkOrderType(workOrderTypeForm, requestSession) { export function addWorkOrderType(workOrderTypeForm, requestSession) {
const database = sqlite(databasePath); const workOrderTypeId = addRecord("WorkOrderTypes", workOrderTypeForm.workOrderType, workOrderTypeForm.orderNumber || -1, requestSession);
const rightNowMillis = Date.now();
const result = database
.prepare(`insert into WorkOrderTypes (
workOrderType, orderNumber,
recordCreate_userName, recordCreate_timeMillis,
recordUpdate_userName, recordUpdate_timeMillis)
values (?, ?, ?, ?, ?, ?)`)
.run(workOrderTypeForm.workOrderType, workOrderTypeForm.orderNumber || -1, requestSession.user.userName, rightNowMillis, requestSession.user.userName, rightNowMillis);
database.close();
clearWorkOrderTypesCache(); clearWorkOrderTypesCache();
return result.lastInsertRowid; return workOrderTypeId;
} }
export default addWorkOrderType; export default addWorkOrderType;

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 { clearWorkOrderTypesCache } from "../functions.cache.js";
import { addRecord } from "./addRecord.js";
import type * as recordTypes from "../../types/recordTypes"; import type * as recordTypes from "../../types/recordTypes";
@ -15,32 +12,16 @@ export function addWorkOrderType(
workOrderTypeForm: AddWorkOrderTypeForm, workOrderTypeForm: AddWorkOrderTypeForm,
requestSession: recordTypes.PartialSession requestSession: recordTypes.PartialSession
): number { ): number {
const database = sqlite(databasePath); const workOrderTypeId = addRecord(
"WorkOrderTypes",
const rightNowMillis = Date.now(); workOrderTypeForm.workOrderType,
workOrderTypeForm.orderNumber || -1,
const result = database requestSession
.prepare( );
`insert into WorkOrderTypes (
workOrderType, orderNumber,
recordCreate_userName, recordCreate_timeMillis,
recordUpdate_userName, recordUpdate_timeMillis)
values (?, ?, ?, ?, ?, ?)`
)
.run(
workOrderTypeForm.workOrderType,
workOrderTypeForm.orderNumber || -1,
requestSession.user.userName,
rightNowMillis,
requestSession.user.userName,
rightNowMillis
);
database.close();
clearWorkOrderTypesCache(); clearWorkOrderTypesCache();
return result.lastInsertRowid as number; return workOrderTypeId;
} }
export default addWorkOrderType; export default addWorkOrderType;