You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
2.2 KiB
75 lines
2.2 KiB
import express, { Request, Response } from 'express';
|
|
import { tediousQuery } from '../../utils/tedious';
|
|
import { GeneralDB, GisDB } from '../../constants/db';
|
|
const router = express.Router()
|
|
|
|
router.get('/images/all', async (req: Request, res: Response) => {
|
|
try {
|
|
const { offset, limit, city_id } = req.query
|
|
|
|
const result = await tediousQuery(
|
|
`
|
|
SELECT * FROM ${GisDB}..images
|
|
${city_id ? `WHERE city_id = ${city_id}` : ''}
|
|
ORDER BY city_id
|
|
OFFSET ${Number(offset) || 0} ROWS
|
|
FETCH NEXT ${Number(limit) || 10} ROWS ONLY;
|
|
`
|
|
)
|
|
res.status(200).json(result)
|
|
} catch (err) {
|
|
res.status(500)
|
|
}
|
|
})
|
|
|
|
|
|
// Get figures by year and city id
|
|
router.get('/figures/all', async (req: Request, res: Response) => {
|
|
try {
|
|
const { offset, limit, object_id, year, city_id } = req.query
|
|
|
|
const result = await tediousQuery(
|
|
`
|
|
SELECT * FROM ${GisDB}..figures f
|
|
JOIN ${GeneralDB}..vObjects o ON f.object_id = o.object_id WHERE o.id_city = ${city_id} AND f.year = ${year}
|
|
ORDER BY f.year
|
|
OFFSET ${Number(offset) || 0} ROWS
|
|
FETCH NEXT ${Number(limit) || 10} ROWS ONLY;
|
|
`
|
|
)
|
|
res.status(200).json(result)
|
|
} catch (err) {
|
|
res.status(500)
|
|
}
|
|
})
|
|
|
|
// Get lines by year and city id
|
|
router.get('/lines/all', async (req: Request, res: Response) => {
|
|
try {
|
|
const { offset, limit, object_id, year, city_id } = req.query
|
|
|
|
const result = await tediousQuery(
|
|
`
|
|
SELECT * FROM ${GisDB}..lines l
|
|
JOIN ${GeneralDB}..vObjects o ON l.object_id = o.object_id WHERE o.id_city = ${city_id} AND l.year = ${year};
|
|
`
|
|
)
|
|
res.status(200).json(result)
|
|
} catch (err) {
|
|
res.status(500)
|
|
}
|
|
})
|
|
|
|
router.get('/regions/borders', async (req: Request, res: Response) => {
|
|
try {
|
|
const result = await tediousQuery(
|
|
`
|
|
SELECT * FROM ${GisDB}..visual_regions`
|
|
)
|
|
res.status(200).json(result)
|
|
} catch (err) {
|
|
res.status(500)
|
|
}
|
|
})
|
|
|
|
export default router
|