From 2bed8f02893f81f489fae96dd6ac89481ec6d6e4 Mon Sep 17 00:00:00 2001 From: Dan Gowans Date: Fri, 10 Mar 2023 13:22:31 -0500 Subject: [PATCH] tidy up temp scripts --- temp/legacy.importFromCSV.js | 41 +++++++++++++++------------- temp/legacy.importFromCSV.ts | 52 +++++++++++++++++++++--------------- temp/so.exportMaps.js | 4 ++- temp/so.exportMaps.ts | 18 ++++++++++--- 4 files changed, 70 insertions(+), 45 deletions(-) diff --git a/temp/legacy.importFromCSV.js b/temp/legacy.importFromCSV.js index aa9b74c1..56e7b239 100644 --- a/temp/legacy.importFromCSV.js +++ b/temp/legacy.importFromCSV.js @@ -36,24 +36,29 @@ const user = { }; function purgeTables() { console.time('purgeTables'); + const tablesToPurge = [ + 'WorkOrderMilestones', + 'WorkOrderComments', + 'WorkOrderLots', + 'WorkOrderLotOccupancies', + 'WorkOrders', + 'LotOccupancyTransactions', + 'LotOccupancyFees', + 'LotOccupancyFields', + 'LotOccupancyComments', + 'LotOccupancyOccupants', + 'LotOccupancies', + 'LotFields', + 'LotComments', + 'Lots' + ]; const database = sqlite(databasePath); - database.prepare('delete from WorkOrderMilestones').run(); - database.prepare('delete from WorkOrderComments').run(); - database.prepare('delete from WorkOrderLots').run(); - database.prepare('delete from WorkOrderLotOccupancies').run(); - database.prepare('delete from WorkOrders').run(); - database.prepare('delete from LotOccupancyTransactions').run(); - database.prepare('delete from LotOccupancyFees').run(); - database.prepare('delete from LotOccupancyFields').run(); - database.prepare('delete from LotOccupancyComments').run(); - database.prepare('delete from LotOccupancyOccupants').run(); - database.prepare('delete from LotOccupancies').run(); - database.prepare('delete from LotFields').run(); - database.prepare('delete from LotComments').run(); - database.prepare('delete from Lots').run(); - database - .prepare("delete from sqlite_sequence where name in ('Lots', 'LotComments', 'LotOccupancies', 'LotOccupancyComments', 'WorkOrders', 'WorkOrderComments', 'WorkOrderMilestones')") - .run(); + for (const tableName of tablesToPurge) { + database.prepare(`delete from ${tableName}`).run(); + database + .prepare('delete from sqlite_sequence where name = ?') + .run(tableName); + } database.close(); console.timeEnd('purgeTables'); } @@ -120,7 +125,7 @@ async function getMap(dataRow) { mapPostalCode: '', mapPhoneNumber: '' }, user); - map = await getMapFromDatabase(mapId); + map = (await getMapFromDatabase(mapId)); } mapCache.set(mapCacheKey, map); return map; diff --git a/temp/legacy.importFromCSV.ts b/temp/legacy.importFromCSV.ts index d277f80c..7b712515 100644 --- a/temp/legacy.importFromCSV.ts +++ b/temp/legacy.importFromCSV.ts @@ -213,26 +213,32 @@ const user: recordTypes.PartialSession = { function purgeTables(): void { console.time('purgeTables') + const tablesToPurge = [ + 'WorkOrderMilestones', + 'WorkOrderComments', + 'WorkOrderLots', + 'WorkOrderLotOccupancies', + 'WorkOrders', + 'LotOccupancyTransactions', + 'LotOccupancyFees', + 'LotOccupancyFields', + 'LotOccupancyComments', + 'LotOccupancyOccupants', + 'LotOccupancies', + 'LotFields', + 'LotComments', + 'Lots' + ] + const database = sqlite(databasePath) - database.prepare('delete from WorkOrderMilestones').run() - database.prepare('delete from WorkOrderComments').run() - database.prepare('delete from WorkOrderLots').run() - database.prepare('delete from WorkOrderLotOccupancies').run() - database.prepare('delete from WorkOrders').run() - database.prepare('delete from LotOccupancyTransactions').run() - database.prepare('delete from LotOccupancyFees').run() - database.prepare('delete from LotOccupancyFields').run() - database.prepare('delete from LotOccupancyComments').run() - database.prepare('delete from LotOccupancyOccupants').run() - database.prepare('delete from LotOccupancies').run() - database.prepare('delete from LotFields').run() - database.prepare('delete from LotComments').run() - database.prepare('delete from Lots').run() - database - .prepare( - "delete from sqlite_sequence where name in ('Lots', 'LotComments', 'LotOccupancies', 'LotOccupancyComments', 'WorkOrders', 'WorkOrderComments', 'WorkOrderMilestones')" - ) - .run() + + for (const tableName of tablesToPurge) { + database.prepare(`delete from ${tableName}`).run() + database + .prepare('delete from sqlite_sequence where name = ?') + .run(tableName) + } + database.close() console.timeEnd('purgeTables') @@ -329,7 +335,7 @@ async function getMap(dataRow: { cemetery: string }): Promise { user ) - map = await getMapFromDatabase(mapId) as recordTypes.Map + map = (await getMapFromDatabase(mapId)) as recordTypes.Map } mapCache.set(mapCacheKey, map) @@ -513,7 +519,8 @@ async function importFromMasterCSV(): Promise { lotOccupancyId: preneedLotOccupancyId, lotOccupancyCommentDateString: preneedOccupancyStartDateString, lotOccupancyCommentTimeString: '00:00', - lotOccupancyComment: 'Imported Contract #' + masterRow.CM_WORK_ORDER + lotOccupancyComment: + 'Imported Contract #' + masterRow.CM_WORK_ORDER }, user ) @@ -780,7 +787,8 @@ async function importFromMasterCSV(): Promise { lotOccupancyId: deceasedLotOccupancyId, lotOccupancyCommentDateString: deceasedOccupancyStartDateString, lotOccupancyCommentTimeString: '00:00', - lotOccupancyComment: 'Imported Contract #' + masterRow.CM_WORK_ORDER + lotOccupancyComment: + 'Imported Contract #' + masterRow.CM_WORK_ORDER }, user ) diff --git a/temp/so.exportMaps.js b/temp/so.exportMaps.js index 9c0555ce..dd4f8ce5 100644 --- a/temp/so.exportMaps.js +++ b/temp/so.exportMaps.js @@ -23,7 +23,9 @@ async function importMaps() { } finally { try { - pool.close(); + if (pool !== undefined) { + await pool.close(); + } } catch { } diff --git a/temp/so.exportMaps.ts b/temp/so.exportMaps.ts index aa511935..0e766dde 100644 --- a/temp/so.exportMaps.ts +++ b/temp/so.exportMaps.ts @@ -5,13 +5,21 @@ import * as sql from '@cityssm/mssql-multi-pool' import { soMSSQL } from './config.js' import type * as sqlTypes from 'mssql' +interface MapLayer { + mapId: string + mapName: string + layerId: string + layerName: string + layerImage: string +} + async function importMaps(): Promise { - let pool: sqlTypes.ConnectionPool + let pool: sqlTypes.ConnectionPool | undefined try { pool = await sql.connect(soMSSQL) - const result = await pool.query( + const result: sqlTypes.IResult = await pool.query( 'select m.ID as mapId, m.Name as mapName,' + ' l.ID as layerId, l.Name as layerName, l.Image as layerImage' + ' from Legacy_Maps m' + @@ -19,7 +27,7 @@ async function importMaps(): Promise { ) for (const layer of result.recordset) { - const imageBuffer: Buffer = layer.layerImage + const imageBuffer = layer.layerImage as unknown as Buffer const fileName = `${layer.mapName} - ${layer.layerName} (${layer.mapId}, ${layer.layerId}).wmf` @@ -33,7 +41,9 @@ async function importMaps(): Promise { // ignore } finally { try { - pool.close() + if (pool !== undefined) { + await pool.close() + } } catch { // ignore }