Object data

This commit is contained in:
cracklesparkle
2024-11-26 18:00:18 +09:00
parent a4513e7e7a
commit bd0a317e76
17 changed files with 1517 additions and 719 deletions

View File

@ -57,35 +57,60 @@ router.get('/objects/all', async (req: Request, res: Response) => {
router.get('/objects/list', async (req: Request, res: Response) => {
try {
const { city_id, year, planning } = req.query
const { city_id, year, planning, type } = req.query
const result = await tediousQuery(
`
SELECT
tTypes.id AS id,
tTypes.name AS name,
COUNT(vObjects.type) AS count
FROM
vObjects
JOIN
tTypes ON vObjects.type = tTypes.id
WHERE
vObjects.id_city = ${city_id} AND vObjects.year = ${year}
AND
(
CASE
WHEN TRY_CAST(vObjects.planning AS BIT) IS NOT NULL THEN TRY_CAST(vObjects.planning AS BIT)
WHEN vObjects.planning = 'TRUE' THEN 1
WHEN vObjects.planning = 'FALSE' THEN 0
ELSE NULL
END
) = ${planning}
GROUP BY
tTypes.id,
tTypes.name;
`
)
res.status(200).json(result)
if (type) {
const result = await tediousQuery(
`
SELECT
*
FROM
vObjects
WHERE
vObjects.id_city = ${city_id}
AND vObjects.year = ${year}
AND type = ${type}
AND
(
CASE
WHEN TRY_CAST(vObjects.planning AS BIT) IS NOT NULL THEN TRY_CAST(vObjects.planning AS BIT)
WHEN vObjects.planning = 'TRUE' THEN 1
WHEN vObjects.planning = 'FALSE' THEN 0
ELSE NULL
END
) = ${planning};
`
)
res.status(200).json(result)
} else {
const result = await tediousQuery(
`
SELECT
tTypes.id AS id,
tTypes.name AS name,
COUNT(vObjects.type) AS count
FROM
vObjects
JOIN
tTypes ON vObjects.type = tTypes.id
WHERE
vObjects.id_city = ${city_id} AND vObjects.year = ${year}
AND
(
CASE
WHEN TRY_CAST(vObjects.planning AS BIT) IS NOT NULL THEN TRY_CAST(vObjects.planning AS BIT)
WHEN vObjects.planning = 'TRUE' THEN 1
WHEN vObjects.planning = 'FALSE' THEN 0
ELSE NULL
END
) = ${planning}
GROUP BY
tTypes.id,
tTypes.name;
`
)
res.status(200).json(result)
}
} catch (err) {
res.status(500)
}
@ -151,4 +176,37 @@ router.get('/params/all', async (req: Request, res: Response) => {
}
})
// Get value from TCB parameter
router.get('/params/tcb', async (req: Request, res: Response) => {
try {
const { vtable, id, offset, limit } = req.query
if (!vtable) {
res.status(500)
}
if (id) {
const result = await tediousQuery(
`
SELECT * FROM nGeneral..${vtable}
WHERE id = '${id}'
`
)
res.status(200).json(result)
} else {
const result = await tediousQuery(
`
SELECT * FROM nGeneral..${vtable}
ORDER BY object_id
OFFSET ${Number(offset) || 0} ROWS
FETCH NEXT ${Number(limit) || 10} ROWS ONLY;
`
)
res.status(200).json(result)
}
} catch (err) {
res.status(500)
}
})
export default router