nestjs rewrite
This commit is contained in:
@ -3,6 +3,7 @@ import { tediousQuery } from '../../utils/tedious';
|
||||
import { GeneralDB, GisDB } from '../../constants/db';
|
||||
const router = express.Router()
|
||||
|
||||
// ✅
|
||||
router.get('/regions/all', async (req: Request, res: Response) => {
|
||||
try {
|
||||
const result = await tediousQuery(
|
||||
@ -16,6 +17,7 @@ router.get('/regions/all', async (req: Request, res: Response) => {
|
||||
}
|
||||
})
|
||||
|
||||
// ✅
|
||||
router.get('/districts/all', async (req: Request, res: Response) => {
|
||||
try {
|
||||
const { region_id } = req.query
|
||||
@ -34,6 +36,7 @@ router.get('/districts/all', async (req: Request, res: Response) => {
|
||||
}
|
||||
})
|
||||
|
||||
// ✅
|
||||
router.get('/cities/all', async (req: Request, res: Response) => {
|
||||
try {
|
||||
const { offset, limit, search, id } = req.query
|
||||
@ -54,6 +57,7 @@ router.get('/cities/all', async (req: Request, res: Response) => {
|
||||
}
|
||||
})
|
||||
|
||||
// ✅
|
||||
router.get('/types/all', async (req: Request, res: Response) => {
|
||||
try {
|
||||
const result = await tediousQuery(
|
||||
@ -68,6 +72,7 @@ router.get('/types/all', async (req: Request, res: Response) => {
|
||||
}
|
||||
})
|
||||
|
||||
// ✅
|
||||
router.get('/objects/all', async (req: Request, res: Response) => {
|
||||
try {
|
||||
const { offset, limit, city_id } = req.query
|
||||
@ -87,31 +92,13 @@ router.get('/objects/all', async (req: Request, res: Response) => {
|
||||
}
|
||||
})
|
||||
|
||||
// ✅
|
||||
router.get('/objects/list', async (req: Request, res: Response) => {
|
||||
try {
|
||||
const { city_id, year, planning, type } = req.query
|
||||
|
||||
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};
|
||||
// `
|
||||
`
|
||||
WITH cte_split(type_id, split_value, caption_params) AS
|
||||
(
|
||||
@ -226,6 +213,7 @@ router.get('/objects/:id([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F
|
||||
}
|
||||
})
|
||||
|
||||
// ✅
|
||||
router.get('/values/all', async (req: Request, res: Response) => {
|
||||
try {
|
||||
const { object_id } = req.query
|
||||
@ -257,6 +245,7 @@ router.get('/values/all', async (req: Request, res: Response) => {
|
||||
}
|
||||
})
|
||||
|
||||
// ✅
|
||||
router.get('/params/all', async (req: Request, res: Response) => {
|
||||
try {
|
||||
const { param_id } = req.query
|
||||
@ -289,6 +278,7 @@ const tcbParamQuery = (vtable: string, id_city: string) => {
|
||||
}
|
||||
}
|
||||
|
||||
// ✅
|
||||
// Get value from TCB parameter
|
||||
router.get('/params/tcb', async (req: Request, res: Response) => {
|
||||
try {
|
||||
@ -323,6 +313,7 @@ router.get('/params/tcb', async (req: Request, res: Response) => {
|
||||
}
|
||||
})
|
||||
|
||||
// ✅
|
||||
router.get('/search/objects', async (req: Request, res: Response) => {
|
||||
try {
|
||||
const { q, id_city, year } = req.query
|
||||
|
@ -2,8 +2,22 @@ import express, { Request, Response } from 'express';
|
||||
import { tediousQuery } from '../../utils/tedious';
|
||||
import { GeneralDB, GisDB } from '../../constants/db';
|
||||
import { pgQuery } from '../../utils/postgres';
|
||||
|
||||
const router = express.Router()
|
||||
|
||||
router.get('/migrate/lines', async (req: Request, res: Response) => {
|
||||
try {
|
||||
const result = await tediousQuery(
|
||||
`
|
||||
SELECT * FROM ${GisDB}..lines
|
||||
`
|
||||
)
|
||||
} catch (error) {
|
||||
res.status(500)
|
||||
}
|
||||
})
|
||||
|
||||
// ✅
|
||||
router.get('/type-roles', async (req: Request, res: Response) => {
|
||||
try {
|
||||
const result = await tediousQuery(
|
||||
@ -17,13 +31,15 @@ router.get('/type-roles', async (req: Request, res: Response) => {
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
// ✅
|
||||
router.get('/bounds/:entity_type', async (req: Request, res: Response) => {
|
||||
try {
|
||||
const { entity_type } = req.params
|
||||
|
||||
const result = await pgQuery(
|
||||
`
|
||||
SELECT * FROM bounds
|
||||
SELECT entity_id, entity_type, ST_AsGeoJSON(geometry)::JSON AS geometry FROM bounds
|
||||
WHERE entity_type = $1
|
||||
`,
|
||||
[entity_type]
|
||||
@ -31,7 +47,7 @@ router.get('/bounds/:entity_type', async (req: Request, res: Response) => {
|
||||
|
||||
if (Array.isArray(result)) {
|
||||
if (result.length > 0) {
|
||||
const geometries = result.map((bound: { id: number, entity_id: number, entity_type: string, geometry: JSON, published_at: string, deleted_at: string | null }) => {
|
||||
const geometries = result.map((bound: { id: string, entity_id: number, entity_type: string, geometry: JSON, published_at: string, deleted_at: string | null }) => {
|
||||
return {
|
||||
...bound.geometry,
|
||||
properties: {
|
||||
@ -54,14 +70,15 @@ router.get('/bounds/:entity_type', async (req: Request, res: Response) => {
|
||||
}
|
||||
})
|
||||
|
||||
// ✅
|
||||
router.get('/bounds/:entity_type/:entity_id', async (req: Request, res: Response) => {
|
||||
try {
|
||||
const { entity_type, entity_id } = req.params
|
||||
|
||||
const result = await pgQuery(
|
||||
`
|
||||
SELECT * FROM bounds
|
||||
WHERE entity_type = $1
|
||||
SELECT entity_id, entity_type, ST_AsGeoJSON(geometry)::JSON AS geometry FROM bounds
|
||||
WHERE entity_type = $1
|
||||
AND entity_id = $2
|
||||
`,
|
||||
[entity_type, entity_id]
|
||||
@ -81,6 +98,7 @@ router.get('/bounds/:entity_type/:entity_id', async (req: Request, res: Response
|
||||
}
|
||||
})
|
||||
|
||||
// ✅
|
||||
router.get('/images/all', async (req: Request, res: Response) => {
|
||||
try {
|
||||
const { offset, limit, city_id } = req.query
|
||||
@ -100,7 +118,7 @@ router.get('/images/all', async (req: Request, res: Response) => {
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
// ✅
|
||||
// Get figures by year and city id
|
||||
router.get('/figures/all', async (req: Request, res: Response) => {
|
||||
try {
|
||||
@ -121,6 +139,7 @@ router.get('/figures/all', async (req: Request, res: Response) => {
|
||||
}
|
||||
})
|
||||
|
||||
// ✅
|
||||
// Get lines by year and city id
|
||||
router.get('/lines/all', async (req: Request, res: Response) => {
|
||||
try {
|
||||
@ -138,6 +157,7 @@ router.get('/lines/all', async (req: Request, res: Response) => {
|
||||
}
|
||||
})
|
||||
|
||||
// ✅
|
||||
router.get('/regions/borders', async (req: Request, res: Response) => {
|
||||
try {
|
||||
const result = await tediousQuery(
|
||||
|
Reference in New Issue
Block a user