52 lines
1.3 KiB
TypeScript
52 lines
1.3 KiB
TypeScript
import type sqlite from 'better-sqlite3'
|
|
|
|
import { directionsOfArrival } from '../data/dataLists.js'
|
|
|
|
export type UpdateCemeteryDirectionsOfArrivalForm = Partial<
|
|
Record<
|
|
`directionOfArrival_${(typeof directionsOfArrival)[number]}`,
|
|
(typeof directionsOfArrival)[number]
|
|
>
|
|
> &
|
|
Partial<
|
|
Record<
|
|
`directionOfArrivalDescription_${(typeof directionsOfArrival)[number]}`,
|
|
string
|
|
>
|
|
>
|
|
|
|
export default function updateCemeteryDirectionsOfArrival(
|
|
cemeteryId: number | string,
|
|
updateForm: UpdateCemeteryDirectionsOfArrivalForm,
|
|
database: sqlite.Database
|
|
): number {
|
|
database
|
|
.prepare(
|
|
`delete from CemeteryDirectionsOfArrival
|
|
where cemeteryId = ?`
|
|
)
|
|
.run(cemeteryId)
|
|
|
|
let updateCount = 0
|
|
|
|
for (const direction of directionsOfArrival) {
|
|
const directionDescriptionName = `directionOfArrivalDescription_${direction}`
|
|
|
|
if (directionDescriptionName in updateForm) {
|
|
database
|
|
.prepare(
|
|
`insert into CemeteryDirectionsOfArrival (
|
|
cemeteryId, directionOfArrival, directionOfArrivalDescription)
|
|
values (?, ?, ?)`
|
|
)
|
|
.run(cemeteryId, direction, updateForm[directionDescriptionName] ?? '')
|
|
|
|
updateCount += 1
|
|
}
|
|
}
|
|
|
|
database.close()
|
|
|
|
return updateCount
|
|
}
|