reduce move down duplication

deepsource-autofix-76c6eb20
Dan Gowans 2023-01-05 13:50:23 -05:00
parent 3fd07bea6f
commit 3bab486146
12 changed files with 192 additions and 317 deletions

View File

@ -1,43 +1,13 @@
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import { getOccupancyTypeById, clearOccupancyTypesCache } from "../functions.cache.js";
import { clearOccupancyTypesCache } from "../functions.cache.js";
import { moveRecordDown, moveRecordDownToBottom } from "./moveRecord.js";
export function moveOccupancyTypeDown(occupancyTypeId) {
const currentOrderNumber = getOccupancyTypeById(typeof occupancyTypeId === "string" ? Number.parseInt(occupancyTypeId) : occupancyTypeId).orderNumber;
const database = sqlite(databasePath);
database
.prepare(`update OccupancyTypes
set orderNumber = orderNumber - 1
where recordDelete_timeMillis is null
and orderNumber = ? + 1`)
.run(currentOrderNumber);
const result = database
.prepare("update OccupancyTypes set orderNumber = ? + 1 where occupancyTypeId = ?")
.run(currentOrderNumber, occupancyTypeId);
database.close();
const success = moveRecordDown("OccupancyTypes", occupancyTypeId);
clearOccupancyTypesCache();
return result.changes > 0;
return success;
}
export function moveOccupancyTypeDownToBottom(occupancyTypeId) {
const currentOrderNumber = getOccupancyTypeById(typeof occupancyTypeId === "string" ? Number.parseInt(occupancyTypeId) : occupancyTypeId).orderNumber;
const database = sqlite(databasePath);
const maxOrderNumber = database
.prepare(`select max(orderNumber) as maxOrderNumber
from OccupancyTypes
where recordDelete_timeMillis is null`)
.get().maxOrderNumber;
if (currentOrderNumber !== maxOrderNumber) {
database
.prepare("update OccupancyTypes set orderNumber = ? + 1 where occupancyTypeId = ?")
.run(maxOrderNumber, occupancyTypeId);
database
.prepare(`update OccupancyTypes
set orderNumber = orderNumber - 1
where recordDelete_timeMillis is null
and orderNumber > ?`)
.run(currentOrderNumber);
}
database.close();
const success = moveRecordDownToBottom("OccupancyTypes", occupancyTypeId);
clearOccupancyTypesCache();
return true;
return success;
}
export default moveOccupancyTypeDown;

View File

@ -1,71 +1,16 @@
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import { getOccupancyTypeById, clearOccupancyTypesCache } from "../functions.cache.js";
import { clearOccupancyTypesCache } from "../functions.cache.js";
import { moveRecordDown, moveRecordDownToBottom } from "./moveRecord.js";
export function moveOccupancyTypeDown(occupancyTypeId: number | string): boolean {
const currentOrderNumber: number = getOccupancyTypeById(
typeof occupancyTypeId === "string" ? Number.parseInt(occupancyTypeId) : occupancyTypeId
).orderNumber;
const database = sqlite(databasePath);
database
.prepare(
`update OccupancyTypes
set orderNumber = orderNumber - 1
where recordDelete_timeMillis is null
and orderNumber = ? + 1`
)
.run(currentOrderNumber);
const result = database
.prepare("update OccupancyTypes set orderNumber = ? + 1 where occupancyTypeId = ?")
.run(currentOrderNumber, occupancyTypeId);
database.close();
const success = moveRecordDown("OccupancyTypes", occupancyTypeId);
clearOccupancyTypesCache();
return result.changes > 0;
return success;
}
export function moveOccupancyTypeDownToBottom(occupancyTypeId: number | string): boolean {
const currentOrderNumber: number = getOccupancyTypeById(
typeof occupancyTypeId === "string" ? Number.parseInt(occupancyTypeId) : occupancyTypeId
).orderNumber;
const database = sqlite(databasePath);
const maxOrderNumber: number = database
.prepare(
`select max(orderNumber) as maxOrderNumber
from OccupancyTypes
where recordDelete_timeMillis is null`
)
.get().maxOrderNumber;
if (currentOrderNumber !== maxOrderNumber) {
database
.prepare("update OccupancyTypes set orderNumber = ? + 1 where occupancyTypeId = ?")
.run(maxOrderNumber, occupancyTypeId);
database
.prepare(
`update OccupancyTypes
set orderNumber = orderNumber - 1
where recordDelete_timeMillis is null
and orderNumber > ?`
)
.run(currentOrderNumber);
}
database.close();
const success = moveRecordDownToBottom("OccupancyTypes", occupancyTypeId);
clearOccupancyTypesCache();
return true;
return success;
}
export default moveOccupancyTypeDown;

View File

@ -0,0 +1,4 @@
declare type RecordTable = "OccupancyTypes" | "WorkOrderMilestoneTypes" | "WorkOrderTypes";
export declare function moveRecordDown(recordTable: RecordTable, recordId: number | string): boolean;
export declare function moveRecordDownToBottom(recordTable: RecordTable, recordId: number | string): boolean;
export {};

View File

@ -0,0 +1,53 @@
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
const recordIdColumns = new Map();
recordIdColumns.set("OccupancyTypes", "occupancyTypeId");
recordIdColumns.set("WorkOrderMilestoneTypes", "workOrderMilestoneTypeId");
recordIdColumns.set("WorkOrderTypes", "workOrderTypeId");
function getCurrentOrderNumber(recordTable, recordId, database) {
const currentOrderNumber = database
.prepare(`select orderNumber
from ${recordTable}
where ${recordIdColumns.get(recordTable)} = ?`)
.get(recordId).orderNumber;
return currentOrderNumber;
}
export function moveRecordDown(recordTable, recordId) {
const database = sqlite(databasePath);
const currentOrderNumber = getCurrentOrderNumber(recordTable, recordId, database);
database
.prepare(`update ${recordTable}
set orderNumber = orderNumber - 1
where recordDelete_timeMillis is null
and orderNumber = ? + 1`)
.run(currentOrderNumber);
const result = database
.prepare(`update ${recordTable}
set orderNumber = ? + 1
where ${recordIdColumns.get(recordTable)} = ?`)
.run(currentOrderNumber, recordId);
database.close();
return result.changes > 0;
}
export function moveRecordDownToBottom(recordTable, recordId) {
const database = sqlite(databasePath);
const currentOrderNumber = getCurrentOrderNumber(recordTable, recordId, database);
const maxOrderNumber = database
.prepare(`select max(orderNumber) as maxOrderNumber
from ${recordTable}
where recordDelete_timeMillis is null`)
.get().maxOrderNumber;
if (currentOrderNumber !== maxOrderNumber) {
database
.prepare(`update ${recordTable} set orderNumber = ? + 1 where ${recordIdColumns.get(recordTable)} = ?`)
.run(maxOrderNumber, recordId);
database
.prepare(`update ${recordTable}
set orderNumber = orderNumber - 1
where recordDelete_timeMillis is null
and orderNumber > ?`)
.run(currentOrderNumber);
}
database.close();
return true;
}

View File

@ -0,0 +1,89 @@
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
type RecordTable = "OccupancyTypes" | "WorkOrderMilestoneTypes" | "WorkOrderTypes";
const recordIdColumns: Map<RecordTable, string> = new Map();
recordIdColumns.set("OccupancyTypes", "occupancyTypeId");
recordIdColumns.set("WorkOrderMilestoneTypes", "workOrderMilestoneTypeId");
recordIdColumns.set("WorkOrderTypes", "workOrderTypeId");
function getCurrentOrderNumber(
recordTable: RecordTable,
recordId: number | string,
database: sqlite.Database
): number {
const currentOrderNumber: number = database
.prepare(
`select orderNumber
from ${recordTable}
where ${recordIdColumns.get(recordTable)} = ?`
)
.get(recordId).orderNumber;
return currentOrderNumber;
}
export function moveRecordDown(recordTable: RecordTable, recordId: number | string): boolean {
const database = sqlite(databasePath);
const currentOrderNumber = getCurrentOrderNumber(recordTable, recordId, database);
database
.prepare(
`update ${recordTable}
set orderNumber = orderNumber - 1
where recordDelete_timeMillis is null
and orderNumber = ? + 1`
)
.run(currentOrderNumber);
const result = database
.prepare(
`update ${recordTable}
set orderNumber = ? + 1
where ${recordIdColumns.get(recordTable)} = ?`
)
.run(currentOrderNumber, recordId);
database.close();
return result.changes > 0;
}
export function moveRecordDownToBottom(recordTable: RecordTable, recordId: number | string): boolean {
const database = sqlite(databasePath);
const currentOrderNumber = getCurrentOrderNumber(recordTable, recordId, database);
const maxOrderNumber: number = database
.prepare(
`select max(orderNumber) as maxOrderNumber
from ${recordTable}
where recordDelete_timeMillis is null`
)
.get().maxOrderNumber;
if (currentOrderNumber !== maxOrderNumber) {
database
.prepare(
`update ${recordTable} set orderNumber = ? + 1 where ${recordIdColumns.get(recordTable)} = ?`
)
.run(maxOrderNumber, recordId);
database
.prepare(
`update ${recordTable}
set orderNumber = orderNumber - 1
where recordDelete_timeMillis is null
and orderNumber > ?`
)
.run(currentOrderNumber);
}
database.close();
return true;
}

View File

@ -1,49 +1,13 @@
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import { getWorkOrderMilestoneTypeByWorkOrderMilestoneTypeId, clearWorkOrderMilestoneTypesCache } from "../functions.cache.js";
import { clearWorkOrderMilestoneTypesCache } from "../functions.cache.js";
import { moveRecordDown, moveRecordDownToBottom } from "./moveRecord.js";
export function moveWorkOrderMilestoneTypeDown(workOrderMilestoneTypeId) {
const currentOrderNumber = getWorkOrderMilestoneTypeByWorkOrderMilestoneTypeId(typeof workOrderMilestoneTypeId === "string"
? Number.parseInt(workOrderMilestoneTypeId)
: workOrderMilestoneTypeId).orderNumber;
const database = sqlite(databasePath);
database
.prepare(`update WorkOrderMilestoneTypes
set orderNumber = orderNumber - 1
where recordDelete_timeMillis is null
and orderNumber = ? + 1`)
.run(currentOrderNumber);
const result = database
.prepare(`update WorkOrderMilestoneTypes
set orderNumber = ? + 1
where workOrderMilestoneTypeId = ?`)
.run(currentOrderNumber, workOrderMilestoneTypeId);
database.close();
const success = moveRecordDown("WorkOrderMilestoneTypes", workOrderMilestoneTypeId);
clearWorkOrderMilestoneTypesCache();
return result.changes > 0;
return success;
}
export function moveWorkOrderMilestoneTypeDownToBottom(workOrderMilestoneTypeId) {
const currentOrderNumber = getWorkOrderMilestoneTypeByWorkOrderMilestoneTypeId(typeof workOrderMilestoneTypeId === "string"
? Number.parseInt(workOrderMilestoneTypeId)
: workOrderMilestoneTypeId).orderNumber;
const database = sqlite(databasePath);
const maxOrderNumber = database
.prepare(`select max(orderNumber) as maxOrderNumber
from WorkOrderMilestoneTypes
where recordDelete_timeMillis is null`)
.get().maxOrderNumber;
if (currentOrderNumber !== maxOrderNumber) {
database
.prepare("update WorkOrderMilestoneTypes set orderNumber = ? + 1 where workOrderMilestoneTypeId = ?")
.run(maxOrderNumber, workOrderMilestoneTypeId);
database
.prepare(`update WorkOrderMilestoneTypes
set orderNumber = orderNumber - 1
where recordDelete_timeMillis is null
and orderNumber > ?`)
.run(currentOrderNumber);
}
database.close();
const success = moveRecordDownToBottom("WorkOrderMilestoneTypes", workOrderMilestoneTypeId);
clearWorkOrderMilestoneTypesCache();
return true;
return success;
}
export default moveWorkOrderMilestoneTypeDown;

View File

@ -1,86 +1,17 @@
import sqlite from "better-sqlite3";
import { clearWorkOrderMilestoneTypesCache } from "../functions.cache.js";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import {
getWorkOrderMilestoneTypeByWorkOrderMilestoneTypeId,
clearWorkOrderMilestoneTypesCache
} from "../functions.cache.js";
import { moveRecordDown, moveRecordDownToBottom } from "./moveRecord.js";
export function moveWorkOrderMilestoneTypeDown(workOrderMilestoneTypeId: number | string): boolean {
const currentOrderNumber: number = getWorkOrderMilestoneTypeByWorkOrderMilestoneTypeId(
typeof workOrderMilestoneTypeId === "string"
? Number.parseInt(workOrderMilestoneTypeId)
: workOrderMilestoneTypeId
).orderNumber;
const database = sqlite(databasePath);
database
.prepare(
`update WorkOrderMilestoneTypes
set orderNumber = orderNumber - 1
where recordDelete_timeMillis is null
and orderNumber = ? + 1`
)
.run(currentOrderNumber);
const result = database
.prepare(
`update WorkOrderMilestoneTypes
set orderNumber = ? + 1
where workOrderMilestoneTypeId = ?`
)
.run(currentOrderNumber, workOrderMilestoneTypeId);
database.close();
const success = moveRecordDown("WorkOrderMilestoneTypes", workOrderMilestoneTypeId);
clearWorkOrderMilestoneTypesCache();
return result.changes > 0;
return success;
}
export function moveWorkOrderMilestoneTypeDownToBottom(
workOrderMilestoneTypeId: number | string
): boolean {
const currentOrderNumber: number = getWorkOrderMilestoneTypeByWorkOrderMilestoneTypeId(
typeof workOrderMilestoneTypeId === "string"
? Number.parseInt(workOrderMilestoneTypeId)
: workOrderMilestoneTypeId
).orderNumber;
const database = sqlite(databasePath);
const maxOrderNumber: number = database
.prepare(
`select max(orderNumber) as maxOrderNumber
from WorkOrderMilestoneTypes
where recordDelete_timeMillis is null`
)
.get().maxOrderNumber;
if (currentOrderNumber !== maxOrderNumber) {
database
.prepare(
"update WorkOrderMilestoneTypes set orderNumber = ? + 1 where workOrderMilestoneTypeId = ?"
)
.run(maxOrderNumber, workOrderMilestoneTypeId);
database
.prepare(
`update WorkOrderMilestoneTypes
set orderNumber = orderNumber - 1
where recordDelete_timeMillis is null
and orderNumber > ?`
)
.run(currentOrderNumber);
}
database.close();
export function moveWorkOrderMilestoneTypeDownToBottom(workOrderMilestoneTypeId: number | string): boolean {
const success = moveRecordDownToBottom("WorkOrderMilestoneTypes", workOrderMilestoneTypeId);
clearWorkOrderMilestoneTypesCache();
return true;
return success;
}
export default moveWorkOrderMilestoneTypeDown;

View File

@ -1,43 +1,13 @@
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import { getWorkOrderTypeById, clearWorkOrderTypesCache } from "../functions.cache.js";
import { clearWorkOrderTypesCache } from "../functions.cache.js";
import { moveRecordDown, moveRecordDownToBottom } from "./moveRecord.js";
export function moveWorkOrderTypeDown(workOrderTypeId) {
const currentOrderNumber = getWorkOrderTypeById(typeof workOrderTypeId === "string" ? Number.parseInt(workOrderTypeId) : workOrderTypeId).orderNumber;
const database = sqlite(databasePath);
database
.prepare(`update WorkOrderTypes
set orderNumber = orderNumber - 1
where recordDelete_timeMillis is null
and orderNumber = ? + 1`)
.run(currentOrderNumber);
const result = database
.prepare("update WorkOrderTypes set orderNumber = ? + 1 where workOrderTypeId = ?")
.run(currentOrderNumber, workOrderTypeId);
database.close();
const success = moveRecordDown("WorkOrderTypes", workOrderTypeId);
clearWorkOrderTypesCache();
return result.changes > 0;
return success;
}
export function moveWorkOrderTypeDownToBottom(workOrderTypeId) {
const currentOrderNumber = getWorkOrderTypeById(typeof workOrderTypeId === "string" ? Number.parseInt(workOrderTypeId) : workOrderTypeId).orderNumber;
const database = sqlite(databasePath);
const maxOrderNumber = database
.prepare(`select max(orderNumber) as maxOrderNumber
from WorkOrderTypes
where recordDelete_timeMillis is null`)
.get().maxOrderNumber;
if (currentOrderNumber !== maxOrderNumber) {
database
.prepare("update WorkOrderTypes set orderNumber = ? + 1 where workOrderTypeId = ?")
.run(maxOrderNumber, workOrderTypeId);
database
.prepare(`update WorkOrderTypes
set orderNumber = orderNumber - 1
where recordDelete_timeMillis is null
and orderNumber > ?`)
.run(currentOrderNumber);
}
database.close();
const success = moveRecordDownToBottom("WorkOrderTypes", workOrderTypeId);
clearWorkOrderTypesCache();
return true;
return success;
}
export default moveWorkOrderTypeDown;

View File

@ -1,71 +1,16 @@
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import { getWorkOrderTypeById, clearWorkOrderTypesCache } from "../functions.cache.js";
import { clearWorkOrderTypesCache } from "../functions.cache.js";
import { moveRecordDown, moveRecordDownToBottom } from "./moveRecord.js";
export function moveWorkOrderTypeDown(workOrderTypeId: number | string): boolean {
const currentOrderNumber: number = getWorkOrderTypeById(
typeof workOrderTypeId === "string" ? Number.parseInt(workOrderTypeId) : workOrderTypeId
).orderNumber;
const database = sqlite(databasePath);
database
.prepare(
`update WorkOrderTypes
set orderNumber = orderNumber - 1
where recordDelete_timeMillis is null
and orderNumber = ? + 1`
)
.run(currentOrderNumber);
const result = database
.prepare("update WorkOrderTypes set orderNumber = ? + 1 where workOrderTypeId = ?")
.run(currentOrderNumber, workOrderTypeId);
database.close();
const success = moveRecordDown("WorkOrderTypes", workOrderTypeId);
clearWorkOrderTypesCache();
return result.changes > 0;
return success;
}
export function moveWorkOrderTypeDownToBottom(workOrderTypeId: number | string): boolean {
const currentOrderNumber: number = getWorkOrderTypeById(
typeof workOrderTypeId === "string" ? Number.parseInt(workOrderTypeId) : workOrderTypeId
).orderNumber;
const database = sqlite(databasePath);
const maxOrderNumber: number = database
.prepare(
`select max(orderNumber) as maxOrderNumber
from WorkOrderTypes
where recordDelete_timeMillis is null`
)
.get().maxOrderNumber;
if (currentOrderNumber !== maxOrderNumber) {
database
.prepare("update WorkOrderTypes set orderNumber = ? + 1 where workOrderTypeId = ?")
.run(maxOrderNumber, workOrderTypeId);
database
.prepare(
`update WorkOrderTypes
set orderNumber = orderNumber - 1
where recordDelete_timeMillis is null
and orderNumber > ?`
)
.run(currentOrderNumber);
}
database.close();
const success = moveRecordDownToBottom("WorkOrderTypes", workOrderTypeId);
clearWorkOrderTypesCache();
return true;
return success;
}
export default moveWorkOrderTypeDown;

View File

@ -7,7 +7,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
const workOrderId = document.querySelector("#workOrderEdit--workOrderId").value;
const isCreate = workOrderId === "";
const workOrderFormElement = document.querySelector("#form--workOrderEdit");
los.initializeDatePickers(workOrderFormElement.querySelector("#workOrderEdit--workOrderOpenDateString").closest(".field"));
los.initializeDatePickers(workOrderFormElement
.querySelector("#workOrderEdit--workOrderOpenDateString")
.closest(".field"));
los.initializeUnlockFieldButtons(workOrderFormElement);
workOrderFormElement.addEventListener("submit", (submitEvent) => {
submitEvent.preventDefault();

View File

@ -7,7 +7,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
const workOrderId = document.querySelector("#workOrderEdit--workOrderId").value;
const isCreate = workOrderId === "";
const workOrderFormElement = document.querySelector("#form--workOrderEdit");
los.initializeDatePickers(workOrderFormElement.querySelector("#workOrderEdit--workOrderOpenDateString").closest(".field"));
los.initializeDatePickers(workOrderFormElement
.querySelector("#workOrderEdit--workOrderOpenDateString")
.closest(".field"));
los.initializeUnlockFieldButtons(workOrderFormElement);
workOrderFormElement.addEventListener("submit", (submitEvent) => {
submitEvent.preventDefault();

View File

@ -19,9 +19,9 @@ declare const bulmaJS: BulmaJS;
const workOrderFormElement = document.querySelector("#form--workOrderEdit") as HTMLFormElement;
los.initializeDatePickers(
(
workOrderFormElement.querySelector("#workOrderEdit--workOrderOpenDateString") as HTMLInputElement
).closest(".field") as HTMLElement
workOrderFormElement
.querySelector("#workOrderEdit--workOrderOpenDateString")!
.closest(".field") as HTMLElement
);
los.initializeUnlockFieldButtons(workOrderFormElement);