65 lines
1.6 KiB
TypeScript
65 lines
1.6 KiB
TypeScript
import sqlite from 'better-sqlite3'
|
|
|
|
import { lotOccupancyDB as databasePath } from '../../data/databasePaths.js'
|
|
|
|
import type * as recordTypes from '../../types/recordTypes'
|
|
|
|
interface AddMapForm {
|
|
mapName: string
|
|
mapDescription: string
|
|
mapSVG: string
|
|
mapLatitude: string
|
|
mapLongitude: string
|
|
mapAddress1: string
|
|
mapAddress2: string
|
|
mapCity: string
|
|
mapProvince: string
|
|
mapPostalCode: string
|
|
mapPhoneNumber: string
|
|
}
|
|
|
|
export function addMap(
|
|
mapForm: AddMapForm,
|
|
requestSession: recordTypes.PartialSession
|
|
): number {
|
|
const database = sqlite(databasePath)
|
|
|
|
const rightNowMillis = Date.now()
|
|
|
|
const result = database
|
|
.prepare(
|
|
`insert into Maps (
|
|
mapName, mapDescription,
|
|
mapSVG, mapLatitude, mapLongitude,
|
|
mapAddress1, mapAddress2,
|
|
mapCity, mapProvince, mapPostalCode,
|
|
mapPhoneNumber,
|
|
recordCreate_userName, recordCreate_timeMillis,
|
|
recordUpdate_userName, recordUpdate_timeMillis)
|
|
values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`
|
|
)
|
|
.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,
|
|
requestSession.user!.userName,
|
|
rightNowMillis
|
|
)
|
|
|
|
database.close()
|
|
|
|
return result.lastInsertRowid as number
|
|
}
|
|
|
|
export default addMap
|