work order milestone type cache

deepsource-autofix-76c6eb20
Dan Gowans 2022-09-08 14:52:32 -04:00
parent cad9d0136d
commit a9c504ea21
6 changed files with 126 additions and 0 deletions

View File

@ -17,3 +17,6 @@ export declare function getOccupancyTypeByOccupancyType(occupancyTypeString: str
export declare function clearOccupancyTypesCache(): void; export declare function clearOccupancyTypesCache(): void;
export declare function getWorkOrderTypes(): recordTypes.WorkOrderType[]; export declare function getWorkOrderTypes(): recordTypes.WorkOrderType[];
export declare function clearWorkOrderTypesCache(): void; export declare function clearWorkOrderTypesCache(): void;
export declare function getWorkOrderMilestoneTypes(): recordTypes.WorkOrderMilestoneType[];
export declare function getWorkOrderMilestoneTypeByWorkOrderMilestoneType(workOrderMilestoneTypeString: string): recordTypes.WorkOrderMilestoneType;
export declare function clearWorkOrderMilestoneTypesCache(): void;

View File

@ -3,6 +3,7 @@ import { getLotStatuses as getLotStatusesFromDatabase } from "./lotOccupancyDB/g
import { getLotTypes as getLotTypesFromDatabase } from "./lotOccupancyDB/getLotTypes.js"; import { getLotTypes as getLotTypesFromDatabase } from "./lotOccupancyDB/getLotTypes.js";
import { getOccupancyTypes as getOccupancyTypesFromDatabase } from "./lotOccupancyDB/getOccupancyTypes.js"; import { getOccupancyTypes as getOccupancyTypesFromDatabase } from "./lotOccupancyDB/getOccupancyTypes.js";
import { getWorkOrderTypes as getWorkOrderTypesFromDatabase } from "./lotOccupancyDB/getWorkOrderTypes.js"; import { getWorkOrderTypes as getWorkOrderTypesFromDatabase } from "./lotOccupancyDB/getWorkOrderTypes.js";
import { getWorkOrderMilestoneTypes as getWorkOrderMilestoneTypesFromDatabase } from "./lotOccupancyDB/getWorkOrderMilestoneTypes.js";
let lotOccupantTypes; let lotOccupantTypes;
export function getLotOccupantTypes() { export function getLotOccupantTypes() {
if (!lotOccupantTypes) { if (!lotOccupantTypes) {
@ -107,3 +108,21 @@ export function getWorkOrderTypes() {
export function clearWorkOrderTypesCache() { export function clearWorkOrderTypesCache() {
workOrderTypes = undefined; workOrderTypes = undefined;
} }
let workOrderMilestoneTypes;
export function getWorkOrderMilestoneTypes() {
if (!workOrderMilestoneTypes) {
workOrderMilestoneTypes = getWorkOrderMilestoneTypesFromDatabase();
}
return workOrderMilestoneTypes;
}
export function getWorkOrderMilestoneTypeByWorkOrderMilestoneType(workOrderMilestoneTypeString) {
const cachedWorkOrderMilestoneTypes = getWorkOrderMilestoneTypes();
const workOrderMilestoneTypeLowerCase = workOrderMilestoneTypeString.toLowerCase();
return cachedWorkOrderMilestoneTypes.find((currentWorkOrderMilestoneType) => {
return (currentWorkOrderMilestoneType.workOrderMilestoneType.toLowerCase() ===
workOrderMilestoneTypeLowerCase);
});
}
export function clearWorkOrderMilestoneTypesCache() {
workOrderMilestoneTypes = undefined;
}

View File

@ -8,6 +8,8 @@ import { getOccupancyTypes as getOccupancyTypesFromDatabase } from "./lotOccupan
import { getWorkOrderTypes as getWorkOrderTypesFromDatabase } from "./lotOccupancyDB/getWorkOrderTypes.js"; import { getWorkOrderTypes as getWorkOrderTypesFromDatabase } from "./lotOccupancyDB/getWorkOrderTypes.js";
import { getWorkOrderMilestoneTypes as getWorkOrderMilestoneTypesFromDatabase } from "./lotOccupancyDB/getWorkOrderMilestoneTypes.js";
import type * as recordTypes from "../types/recordTypes"; import type * as recordTypes from "../types/recordTypes";
/* /*
@ -177,3 +179,34 @@ export function getWorkOrderTypes() {
export function clearWorkOrderTypesCache() { export function clearWorkOrderTypesCache() {
workOrderTypes = undefined; workOrderTypes = undefined;
} }
/*
* Work Order Milestone Types
*/
let workOrderMilestoneTypes: recordTypes.WorkOrderMilestoneType[];
export function getWorkOrderMilestoneTypes() {
if (!workOrderMilestoneTypes) {
workOrderMilestoneTypes = getWorkOrderMilestoneTypesFromDatabase();
}
return workOrderMilestoneTypes;
}
export function getWorkOrderMilestoneTypeByWorkOrderMilestoneType(workOrderMilestoneTypeString: string) {
const cachedWorkOrderMilestoneTypes = getWorkOrderMilestoneTypes();
const workOrderMilestoneTypeLowerCase = workOrderMilestoneTypeString.toLowerCase();
return cachedWorkOrderMilestoneTypes.find((currentWorkOrderMilestoneType) => {
return (
currentWorkOrderMilestoneType.workOrderMilestoneType.toLowerCase() ===
workOrderMilestoneTypeLowerCase
);
});
}
export function clearWorkOrderMilestoneTypesCache() {
workOrderMilestoneTypes = undefined;
}

View File

@ -0,0 +1,3 @@
import type * as recordTypes from "../../types/recordTypes";
export declare const getWorkOrderMilestoneTypes: () => recordTypes.WorkOrderMilestoneType[];
export default getWorkOrderMilestoneTypes;

View File

@ -0,0 +1,26 @@
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
export const getWorkOrderMilestoneTypes = () => {
const database = sqlite(databasePath);
const workOrderMilestoneTypes = database
.prepare("select workOrderMilestoneTypeId, workOrderMilestoneType, orderNumber" +
" from WorkOrderMilestoneTypes" +
" where recordDelete_timeMillis is null" +
" order by orderNumber, workOrderMilestoneType")
.all();
let expectedOrderNumber = 0;
for (const workOrderMilestoneType of workOrderMilestoneTypes) {
if (workOrderMilestoneType.orderNumber !== expectedOrderNumber) {
database
.prepare("update WorkOrdeMilestoneTypes" +
" set orderNumber = ?" +
" where workOrderMilestoneTypeId = ?")
.run(expectedOrderNumber, workOrderMilestoneType.workOrderMilestoneTypeId);
workOrderMilestoneType.orderNumber = expectedOrderNumber;
}
expectedOrderNumber += 1;
}
database.close();
return workOrderMilestoneTypes;
};
export default getWorkOrderMilestoneTypes;

View File

@ -0,0 +1,42 @@
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import type * as recordTypes from "../../types/recordTypes";
export const getWorkOrderMilestoneTypes = (): recordTypes.WorkOrderMilestoneType[] => {
const database = sqlite(databasePath);
const workOrderMilestoneTypes: recordTypes.WorkOrderMilestoneType[] = database
.prepare(
"select workOrderMilestoneTypeId, workOrderMilestoneType, orderNumber" +
" from WorkOrderMilestoneTypes" +
" where recordDelete_timeMillis is null" +
" order by orderNumber, workOrderMilestoneType"
)
.all();
let expectedOrderNumber = 0;
for (const workOrderMilestoneType of workOrderMilestoneTypes) {
if (workOrderMilestoneType.orderNumber !== expectedOrderNumber) {
database
.prepare(
"update WorkOrdeMilestoneTypes" +
" set orderNumber = ?" +
" where workOrderMilestoneTypeId = ?"
)
.run(expectedOrderNumber, workOrderMilestoneType.workOrderMilestoneTypeId);
workOrderMilestoneType.orderNumber = expectedOrderNumber;
}
expectedOrderNumber += 1;
}
database.close();
return workOrderMilestoneTypes;
};
export default getWorkOrderMilestoneTypes;