sunrise-cms/helpers/lotOccupancyDB/updateMap.ts

72 lines
1.9 KiB
TypeScript

import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import type * as recordTypes from "../../types/recordTypes";
interface UpdateMapForm {
mapId: string;
mapName: string;
mapDescription: string;
mapSVG: string;
mapLatitude: string;
mapLongitude: string;
mapAddress1: string;
mapAddress2: string;
mapCity: string;
mapProvince: string;
mapPostalCode: string;
mapPhoneNumber: string;
}
export function updateMap(
mapForm: UpdateMapForm,
requestSession: recordTypes.PartialSession
): boolean {
const database = sqlite(databasePath);
const rightNowMillis = Date.now();
const result = database
.prepare(
`update Maps
set mapName = ?,
mapDescription = ?,
mapSVG = ?,
mapLatitude = ?,
mapLongitude = ?,
mapAddress1 = ?,
mapAddress2 = ?,
mapCity = ?,
mapProvince = ?,
mapPostalCode = ?,
mapPhoneNumber = ?,
recordUpdate_userName = ?,
recordUpdate_timeMillis = ?
where mapId = ?
and recordDelete_timeMillis is null`
)
.run(
mapForm.mapName,
mapForm.mapDescription,
mapForm.mapSVG,
mapForm.mapLatitude === "" ? undefined : mapForm.mapLatitude,
mapForm.mapLongitude === "" ? undefined : mapForm.mapLongitude,
mapForm.mapAddress1,
mapForm.mapAddress2,
mapForm.mapCity,
mapForm.mapProvince,
mapForm.mapPostalCode,
mapForm.mapPhoneNumber,
requestSession.user.userName,
rightNowMillis,
mapForm.mapId
);
database.close();
return result.changes > 0;
}
export default updateMap;