diff --git a/citywalls2/controllers/streetController.js b/citywalls2/controllers/streetController.js index 4ded3a6..d90c752 100644 --- a/citywalls2/controllers/streetController.js +++ b/citywalls2/controllers/streetController.js @@ -51,24 +51,15 @@ exports.export = asyncHandler(async (req, res) => { res.json(exportData); }); -// Маршрут для страницы фильтрации улиц -exports.streets_filter = asyncHandler(async (req, res) => { - // Получаем список уникальных типов улиц и районов из базы +exports.streets = asyncHandler(async (req, res) => { + const { type, district } = req.query; + + // Запрашиваем список уникальных типов и районов const typesCursor = await db.query('FOR street IN streets RETURN DISTINCT street.type'); const types = await typesCursor.all(); - + const districtsCursor = await db.query('FOR street IN streets RETURN DISTINCT street.district'); const districts = await districtsCursor.all(); - - res.render('streets_filter', { - title: 'Улицы Санкт-Петербурга', - types, - districts - }); -}); - -exports.streets = asyncHandler( async (req, res) => { - const { type, district } = req.query; // Строим запрос с учётом фильтров let query = 'FOR street IN streets'; @@ -91,8 +82,14 @@ exports.streets = asyncHandler( async (req, res) => { const streetsCursor = await db.query(query, bindVars); const streets = await streetsCursor.all(); - // Отправляем отфильтрованные данные на фронтенд - res.render('streets', { title: 'Улицы Санкт-Петербурга (результат фильтрации)', streets }); + // Отправляем данные на фронтенд + res.render('streets', { + title: 'Улицы Санкт-Петербурга', + types, + districts, + streets, + filters: { type, district }, + }); }); exports.housesByStreet = asyncHandler(async (req, res) => { diff --git a/citywalls2/routes/main.js b/citywalls2/routes/main.js index 1c8eee5..f6060a9 100644 --- a/citywalls2/routes/main.js +++ b/citywalls2/routes/main.js @@ -13,10 +13,7 @@ router.post('/import', street_controller.import) // Маршрут для экспорта данных router.get('/export', street_controller.export) -// Маршрут для страницы фильтрации улиц -router.get('/main/streets', street_controller.streets_filter) - -router.get('/main/streets/filter', street_controller.streets) +router.get('/main/streets', street_controller.streets) // Маршрут для отображения домов конкретной улицы router.get('/main/streets/:streetName/houses', street_controller.housesByStreet);