reduce complexity

deepsource-autofix-76c6eb20
Dan Gowans 2022-10-31 13:50:08 -04:00
parent dacaa3feb3
commit 47387ac479
5 changed files with 88 additions and 52 deletions

View File

@ -2,11 +2,7 @@ import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import { dateToInteger } from "@cityssm/expressjs-server-js/dateTimeFns.js";
import * as configFunctions from "../functions.config.js";
export const getLots = (filters, options, connectedDatabase) => {
const database = connectedDatabase ||
sqlite(databasePath, {
readonly: true
});
const buildWhereClause = (filters) => {
let sqlWhereClause = " where l.recordDelete_timeMillis is null";
const sqlParameters = [];
if (filters.lotName) {
@ -51,8 +47,19 @@ export const getLots = (filters, options, connectedDatabase) => {
" and l.lotId in (select lotId from WorkOrderLots where recordDelete_timeMillis is null and workOrderId = ?)";
sqlParameters.push(filters.workOrderId);
}
return {
sqlWhereClause,
sqlParameters
};
};
export const getLots = (filters, options, connectedDatabase) => {
const database = connectedDatabase ||
sqlite(databasePath, {
readonly: true
});
const { sqlWhereClause, sqlParameters } = buildWhereClause(filters);
const currentDate = dateToInteger(new Date());
let count;
let count = 0;
if (options.limit !== -1) {
count = database
.prepare("select count(*) as recordCount" +

View File

@ -23,22 +23,9 @@ interface GetLotsOptions {
offset: number;
}
export const getLots = (
filters: GetLotsFilters,
options: GetLotsOptions,
connectedDatabase?: sqlite.Database
): {
count: number;
lots: recordTypes.Lot[];
} => {
const database =
connectedDatabase ||
sqlite(databasePath, {
readonly: true
});
const buildWhereClause = (filters: GetLotsFilters): { sqlWhereClause: string; sqlParameters: unknown[];} => {
let sqlWhereClause = " where l.recordDelete_timeMillis is null";
const sqlParameters = [];
const sqlParameters: unknown[] = [];
if (filters.lotName) {
if (filters.lotNameSearchType === "startsWith") {
@ -86,9 +73,31 @@ export const getLots = (
sqlParameters.push(filters.workOrderId);
}
return {
sqlWhereClause,
sqlParameters
};
};
export const getLots = (
filters: GetLotsFilters,
options: GetLotsOptions,
connectedDatabase?: sqlite.Database
): {
count: number;
lots: recordTypes.Lot[];
} => {
const database =
connectedDatabase ||
sqlite(databasePath, {
readonly: true
});
const { sqlWhereClause, sqlParameters } = buildWhereClause(filters);
const currentDate = dateToInteger(new Date());
let count: number;
let count = 0;
if (options.limit !== -1) {
count = database

View File

@ -13,7 +13,7 @@ interface GetWorkOrdersOptions {
includeComments?: boolean;
includeMilestones?: boolean;
}
export declare const getWorkOrders: (filters?: GetWorkOrdersFilters, options?: GetWorkOrdersOptions) => {
export declare const getWorkOrders: (filters: GetWorkOrdersFilters, options?: GetWorkOrdersOptions) => {
count: number;
workOrders: recordTypes.WorkOrder[];
};

View File

@ -5,11 +5,7 @@ import { getWorkOrderComments } from "./getWorkOrderComments.js";
import { getLots } from "./getLots.js";
import { getLotOccupancies } from "./getLotOccupancies.js";
import { getWorkOrderMilestones } from "./getWorkOrderMilestones.js";
export const getWorkOrders = (filters, options) => {
const database = sqlite(databasePath, {
readonly: true
});
database.function("userFn_dateIntegerToString", dateIntegerToString);
const buildWhereClause = (filters) => {
let sqlWhereClause = " where w.recordDelete_timeMillis is null";
const sqlParameters = [];
if (filters.workOrderTypeId) {
@ -46,8 +42,19 @@ export const getWorkOrders = (filters, options) => {
sqlParameters.push(lotNamePiece);
}
}
return {
sqlWhereClause,
sqlParameters
};
};
export const getWorkOrders = (filters, options) => {
const database = sqlite(databasePath, {
readonly: true
});
database.function("userFn_dateIntegerToString", dateIntegerToString);
const { sqlWhereClause, sqlParameters } = buildWhereClause(filters);
const count = database
.prepare("select count(*) as recordCount" + " from WorkOrders w" + sqlWhereClause)
.prepare("select count(*) as recordCount from WorkOrders w" + sqlWhereClause)
.get(sqlParameters).recordCount;
let workOrders = [];
if (count > 0) {
@ -72,9 +79,10 @@ export const getWorkOrders = (filters, options) => {
(options ? " limit " + options.limit + " offset " + options.offset : ""))
.all(sqlParameters);
}
if (options.includeComments ||
options.includeLotsAndLotOccupancies ||
options.includeMilestones) {
if (options &&
(options.includeComments ||
options.includeLotsAndLotOccupancies ||
options.includeMilestones)) {
for (const workOrder of workOrders) {
if (options.includeComments) {
workOrder.workOrderComments = getWorkOrderComments(workOrder.workOrderId, database);

View File

@ -30,21 +30,11 @@ interface GetWorkOrdersOptions {
includeMilestones?: boolean;
}
export const getWorkOrders = (
filters?: GetWorkOrdersFilters,
options?: GetWorkOrdersOptions
): {
count: number;
workOrders: recordTypes.WorkOrder[];
} => {
const database = sqlite(databasePath, {
readonly: true
});
database.function("userFn_dateIntegerToString", dateIntegerToString);
const buildWhereClause = (
filters: GetWorkOrdersFilters
): { sqlWhereClause: string; sqlParameters: unknown[] } => {
let sqlWhereClause = " where w.recordDelete_timeMillis is null";
const sqlParameters = [];
const sqlParameters: unknown[] = [];
if (filters.workOrderTypeId) {
sqlWhereClause += " and w.workOrderTypeId = ?";
@ -84,8 +74,29 @@ export const getWorkOrders = (
}
}
return {
sqlWhereClause,
sqlParameters
};
};
export const getWorkOrders = (
filters: GetWorkOrdersFilters,
options?: GetWorkOrdersOptions
): {
count: number;
workOrders: recordTypes.WorkOrder[];
} => {
const database = sqlite(databasePath, {
readonly: true
});
database.function("userFn_dateIntegerToString", dateIntegerToString);
const { sqlWhereClause, sqlParameters } = buildWhereClause(filters);
const count: number = database
.prepare("select count(*) as recordCount" + " from WorkOrders w" + sqlWhereClause)
.prepare("select count(*) as recordCount from WorkOrders w" + sqlWhereClause)
.get(sqlParameters).recordCount;
let workOrders: recordTypes.WorkOrder[] = [];
@ -116,13 +127,14 @@ export const getWorkOrders = (
}
if (
options.includeComments ||
options.includeLotsAndLotOccupancies ||
options.includeMilestones
options &&
(options.includeComments ||
options.includeLotsAndLotOccupancies ||
options.includeMilestones)
) {
for (const workOrder of workOrders) {
if (options.includeComments) {
workOrder.workOrderComments = getWorkOrderComments(workOrder.workOrderId, database);
workOrder.workOrderComments = getWorkOrderComments(workOrder.workOrderId as number, database);
}
if (options.includeLotsAndLotOccupancies) {