fix create cemeteries
parent
927334d954
commit
0474631bf5
|
|
@ -1,4 +1,5 @@
|
||||||
export interface AddCemeteryForm {
|
import { type UpdateCemeteryDirectionsOfArrivalForm } from './updateCemeteryDirectionsOfArrival.js';
|
||||||
|
export type AddCemeteryForm = UpdateCemeteryDirectionsOfArrivalForm & {
|
||||||
cemeteryDescription: string;
|
cemeteryDescription: string;
|
||||||
cemeteryKey: string;
|
cemeteryKey: string;
|
||||||
cemeteryName: string;
|
cemeteryName: string;
|
||||||
|
|
@ -12,5 +13,5 @@ export interface AddCemeteryForm {
|
||||||
cemeteryPostalCode: string;
|
cemeteryPostalCode: string;
|
||||||
cemeteryProvince: string;
|
cemeteryProvince: string;
|
||||||
cemeteryPhoneNumber: string;
|
cemeteryPhoneNumber: string;
|
||||||
}
|
};
|
||||||
export default function addCemetery(addForm: AddCemeteryForm, user: User): number;
|
export default function addCemetery(addForm: AddCemeteryForm, user: User): number;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
import sqlite from 'better-sqlite3';
|
import sqlite from 'better-sqlite3';
|
||||||
import { sunriseDB } from '../helpers/database.helpers.js';
|
import { sunriseDB } from '../helpers/database.helpers.js';
|
||||||
|
import updateCemeteryDirectionsOfArrival from './updateCemeteryDirectionsOfArrival.js';
|
||||||
export default function addCemetery(addForm, user) {
|
export default function addCemetery(addForm, user) {
|
||||||
const database = sqlite(sunriseDB);
|
const database = sqlite(sunriseDB);
|
||||||
const rightNowMillis = Date.now();
|
const rightNowMillis = Date.now();
|
||||||
|
|
@ -15,6 +16,8 @@ export default function addCemetery(addForm, user) {
|
||||||
recordUpdate_userName, recordUpdate_timeMillis)
|
recordUpdate_userName, recordUpdate_timeMillis)
|
||||||
values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`)
|
values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`)
|
||||||
.run(addForm.cemeteryName, addForm.cemeteryKey, addForm.cemeteryDescription, addForm.cemeterySvg, addForm.cemeteryLatitude === '' ? undefined : addForm.cemeteryLatitude, addForm.cemeteryLongitude === '' ? undefined : addForm.cemeteryLongitude, addForm.cemeteryAddress1, addForm.cemeteryAddress2, addForm.cemeteryCity, addForm.cemeteryProvince, addForm.cemeteryPostalCode, addForm.cemeteryPhoneNumber, addForm.parentCemeteryId === '' ? undefined : addForm.parentCemeteryId, user.userName, rightNowMillis, user.userName, rightNowMillis);
|
.run(addForm.cemeteryName, addForm.cemeteryKey, addForm.cemeteryDescription, addForm.cemeterySvg, addForm.cemeteryLatitude === '' ? undefined : addForm.cemeteryLatitude, addForm.cemeteryLongitude === '' ? undefined : addForm.cemeteryLongitude, addForm.cemeteryAddress1, addForm.cemeteryAddress2, addForm.cemeteryCity, addForm.cemeteryProvince, addForm.cemeteryPostalCode, addForm.cemeteryPhoneNumber, addForm.parentCemeteryId === '' ? undefined : addForm.parentCemeteryId, user.userName, rightNowMillis, user.userName, rightNowMillis);
|
||||||
|
const cemeteryId = result.lastInsertRowid;
|
||||||
|
updateCemeteryDirectionsOfArrival(cemeteryId, addForm, database);
|
||||||
database.close();
|
database.close();
|
||||||
return result.lastInsertRowid;
|
return cemeteryId;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,11 @@ import sqlite from 'better-sqlite3'
|
||||||
|
|
||||||
import { sunriseDB } from '../helpers/database.helpers.js'
|
import { sunriseDB } from '../helpers/database.helpers.js'
|
||||||
|
|
||||||
export interface AddCemeteryForm {
|
import updateCemeteryDirectionsOfArrival, {
|
||||||
|
type UpdateCemeteryDirectionsOfArrivalForm
|
||||||
|
} from './updateCemeteryDirectionsOfArrival.js'
|
||||||
|
|
||||||
|
export type AddCemeteryForm = UpdateCemeteryDirectionsOfArrivalForm & {
|
||||||
cemeteryDescription: string
|
cemeteryDescription: string
|
||||||
cemeteryKey: string
|
cemeteryKey: string
|
||||||
cemeteryName: string
|
cemeteryName: string
|
||||||
|
|
@ -62,7 +66,11 @@ export default function addCemetery(
|
||||||
rightNowMillis
|
rightNowMillis
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const cemeteryId = result.lastInsertRowid as number
|
||||||
|
|
||||||
|
updateCemeteryDirectionsOfArrival(cemeteryId, addForm, database)
|
||||||
|
|
||||||
database.close()
|
database.close()
|
||||||
|
|
||||||
return result.lastInsertRowid as number
|
return cemeteryId
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { directionsOfArrival } from '../data/dataLists.js';
|
import { type UpdateCemeteryDirectionsOfArrivalForm } from './updateCemeteryDirectionsOfArrival.js';
|
||||||
export type UpdateCemeteryForm = Partial<Record<`directionOfArrival_${(typeof directionsOfArrival)[number]}`, (typeof directionsOfArrival)[number]>> & Partial<Record<`directionOfArrivalDescription_${(typeof directionsOfArrival)[number]}`, string>> & {
|
export type UpdateCemeteryForm = UpdateCemeteryDirectionsOfArrivalForm & {
|
||||||
cemeteryId: string;
|
cemeteryId: string;
|
||||||
cemeteryDescription: string;
|
cemeteryDescription: string;
|
||||||
cemeteryKey: string;
|
cemeteryKey: string;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import sqlite from 'better-sqlite3';
|
import sqlite from 'better-sqlite3';
|
||||||
import { directionsOfArrival } from '../data/dataLists.js';
|
|
||||||
import { sunriseDB } from '../helpers/database.helpers.js';
|
import { sunriseDB } from '../helpers/database.helpers.js';
|
||||||
|
import updateCemeteryDirectionsOfArrival from './updateCemeteryDirectionsOfArrival.js';
|
||||||
/**
|
/**
|
||||||
* Updates a cemetery in the database.
|
* Updates a cemetery in the database.
|
||||||
* Be sure to rebuild burial site names after updating a cemetery.
|
* Be sure to rebuild burial site names after updating a cemetery.
|
||||||
|
|
@ -36,20 +36,7 @@ export default function updateCemetery(updateForm, user) {
|
||||||
: updateForm.cemeteryLongitude, updateForm.cemeteryAddress1, updateForm.cemeteryAddress2, updateForm.cemeteryCity, updateForm.cemeteryProvince, updateForm.cemeteryPostalCode, updateForm.cemeteryPhoneNumber, updateForm.parentCemeteryId === ''
|
: updateForm.cemeteryLongitude, updateForm.cemeteryAddress1, updateForm.cemeteryAddress2, updateForm.cemeteryCity, updateForm.cemeteryProvince, updateForm.cemeteryPostalCode, updateForm.cemeteryPhoneNumber, updateForm.parentCemeteryId === ''
|
||||||
? undefined
|
? undefined
|
||||||
: updateForm.parentCemeteryId, user.userName, Date.now(), updateForm.cemeteryId);
|
: updateForm.parentCemeteryId, user.userName, Date.now(), updateForm.cemeteryId);
|
||||||
database
|
updateCemeteryDirectionsOfArrival(updateForm.cemeteryId, updateForm, database);
|
||||||
.prepare(`delete from CemeteryDirectionsOfArrival
|
|
||||||
where cemeteryId = ?`)
|
|
||||||
.run(updateForm.cemeteryId);
|
|
||||||
for (const direction of directionsOfArrival) {
|
|
||||||
const directionDescriptionName = `directionOfArrivalDescription_${direction}`;
|
|
||||||
if (directionDescriptionName in updateForm) {
|
|
||||||
database
|
|
||||||
.prepare(`insert into CemeteryDirectionsOfArrival (
|
|
||||||
cemeteryId, directionOfArrival, directionOfArrivalDescription)
|
|
||||||
values (?, ?, ?)`)
|
|
||||||
.run(updateForm.cemeteryId, direction, updateForm[directionDescriptionName] ?? '');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
database.close();
|
database.close();
|
||||||
return result.changes > 0;
|
return result.changes > 0;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,20 +1,12 @@
|
||||||
import sqlite from 'better-sqlite3'
|
import sqlite from 'better-sqlite3'
|
||||||
|
|
||||||
import { directionsOfArrival } from '../data/dataLists.js'
|
|
||||||
import { sunriseDB } from '../helpers/database.helpers.js'
|
import { sunriseDB } from '../helpers/database.helpers.js'
|
||||||
|
|
||||||
export type UpdateCemeteryForm = Partial<
|
import updateCemeteryDirectionsOfArrival, {
|
||||||
Record<
|
type UpdateCemeteryDirectionsOfArrivalForm
|
||||||
`directionOfArrival_${(typeof directionsOfArrival)[number]}`,
|
} from './updateCemeteryDirectionsOfArrival.js'
|
||||||
(typeof directionsOfArrival)[number]
|
|
||||||
>
|
export type UpdateCemeteryForm = UpdateCemeteryDirectionsOfArrivalForm & {
|
||||||
> &
|
|
||||||
Partial<
|
|
||||||
Record<
|
|
||||||
`directionOfArrivalDescription_${(typeof directionsOfArrival)[number]}`,
|
|
||||||
string
|
|
||||||
>
|
|
||||||
> & {
|
|
||||||
cemeteryId: string
|
cemeteryId: string
|
||||||
|
|
||||||
cemeteryDescription: string
|
cemeteryDescription: string
|
||||||
|
|
@ -33,7 +25,7 @@ export type UpdateCemeteryForm = Partial<
|
||||||
cemeteryLatitude: string
|
cemeteryLatitude: string
|
||||||
cemeteryLongitude: string
|
cemeteryLongitude: string
|
||||||
cemeterySvg: string
|
cemeterySvg: string
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Updates a cemetery in the database.
|
* Updates a cemetery in the database.
|
||||||
|
|
@ -94,30 +86,7 @@ export default function updateCemetery(
|
||||||
updateForm.cemeteryId
|
updateForm.cemeteryId
|
||||||
)
|
)
|
||||||
|
|
||||||
database
|
updateCemeteryDirectionsOfArrival(updateForm.cemeteryId, updateForm, database)
|
||||||
.prepare(
|
|
||||||
`delete from CemeteryDirectionsOfArrival
|
|
||||||
where cemeteryId = ?`
|
|
||||||
)
|
|
||||||
.run(updateForm.cemeteryId)
|
|
||||||
|
|
||||||
for (const direction of directionsOfArrival) {
|
|
||||||
const directionDescriptionName = `directionOfArrivalDescription_${direction}`
|
|
||||||
|
|
||||||
if (directionDescriptionName in updateForm) {
|
|
||||||
database
|
|
||||||
.prepare(
|
|
||||||
`insert into CemeteryDirectionsOfArrival (
|
|
||||||
cemeteryId, directionOfArrival, directionOfArrivalDescription)
|
|
||||||
values (?, ?, ?)`
|
|
||||||
)
|
|
||||||
.run(
|
|
||||||
updateForm.cemeteryId,
|
|
||||||
direction,
|
|
||||||
updateForm[directionDescriptionName] ?? ''
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
database.close()
|
database.close()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
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;
|
||||||
|
|
@ -0,0 +1,21 @@
|
||||||
|
import { directionsOfArrival } from '../data/dataLists.js';
|
||||||
|
export default function updateCemeteryDirectionsOfArrival(cemeteryId, updateForm, database) {
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,51 @@
|
||||||
|
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
|
||||||
|
}
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
import getCemeteries from '../../database/getCemeteries.js';
|
import getCemeteries from '../../database/getCemeteries.js';
|
||||||
import { getConfigProperty } from '../../helpers/config.helpers.js';
|
import { getConfigProperty } from '../../helpers/config.helpers.js';
|
||||||
import { getCemeterySVGs } from '../../helpers/images.helpers.js';
|
import { getCemeterySVGs } from '../../helpers/images.helpers.js';
|
||||||
|
import { defaultDirectionsOfArrival } from '../../database/getBurialSiteDirectionsOfArrival.js';
|
||||||
export default async function handler(_request, response) {
|
export default async function handler(_request, response) {
|
||||||
const cemetery = {
|
const cemetery = {
|
||||||
cemeteryCity: getConfigProperty('settings.cityDefault'),
|
cemeteryCity: getConfigProperty('settings.cityDefault'),
|
||||||
|
|
@ -12,7 +13,8 @@ export default async function handler(_request, response) {
|
||||||
cemeteryName: '',
|
cemeteryName: '',
|
||||||
cemeteryPhoneNumber: '',
|
cemeteryPhoneNumber: '',
|
||||||
cemeteryPostalCode: '',
|
cemeteryPostalCode: '',
|
||||||
childCemeteries: []
|
childCemeteries: [],
|
||||||
|
directionsOfArrival: defaultDirectionsOfArrival
|
||||||
};
|
};
|
||||||
const cemeteries = getCemeteries();
|
const cemeteries = getCemeteries();
|
||||||
const cemeterySVGs = await getCemeterySVGs();
|
const cemeterySVGs = await getCemeterySVGs();
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ import getCemeteries from '../../database/getCemeteries.js'
|
||||||
import { getConfigProperty } from '../../helpers/config.helpers.js'
|
import { getConfigProperty } from '../../helpers/config.helpers.js'
|
||||||
import { getCemeterySVGs } from '../../helpers/images.helpers.js'
|
import { getCemeterySVGs } from '../../helpers/images.helpers.js'
|
||||||
import type { Cemetery } from '../../types/record.types.js'
|
import type { Cemetery } from '../../types/record.types.js'
|
||||||
|
import { defaultDirectionsOfArrival } from '../../database/getBurialSiteDirectionsOfArrival.js'
|
||||||
|
|
||||||
export default async function handler(
|
export default async function handler(
|
||||||
_request: Request,
|
_request: Request,
|
||||||
|
|
@ -21,7 +22,8 @@ export default async function handler(
|
||||||
cemeteryPhoneNumber: '',
|
cemeteryPhoneNumber: '',
|
||||||
cemeteryPostalCode: '',
|
cemeteryPostalCode: '',
|
||||||
|
|
||||||
childCemeteries: []
|
childCemeteries: [],
|
||||||
|
directionsOfArrival: defaultDirectionsOfArrival
|
||||||
}
|
}
|
||||||
|
|
||||||
const cemeteries = getCemeteries()
|
const cemeteries = getCemeteries()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue