landing: динамический счётчик продуктов, телефон, защита email/телефона от ботов

This commit is contained in:
Nik
2026-06-07 19:37:02 +03:00
parent f2d7a6cf4c
commit b22bf3dee3
3 changed files with 104 additions and 11 deletions
+3 -3
View File
@@ -111,7 +111,7 @@ adminRouter.post('/products', requireAdmin, async (req, res) => {
});
adminRouter.put('/products/:id', requireAdmin, async (req, res) => {
const id = parseInt(req.params.id, 10);
const id = parseInt(String(req.params.id), 10);
if (Number.isNaN(id)) {
res.status(400).json({ error: 'invalid_id' });
return;
@@ -152,7 +152,7 @@ adminRouter.put('/products/:id', requireAdmin, async (req, res) => {
});
adminRouter.delete('/products/:id', requireAdmin, async (req, res) => {
const id = parseInt(req.params.id, 10);
const id = parseInt(String(req.params.id), 10);
await query(`DELETE FROM products WHERE id = $1`, [id]);
res.json({ ok: true });
});
@@ -192,7 +192,7 @@ adminRouter.get('/approach', requireAdmin, async (_req, res) => {
});
adminRouter.put('/approach/:id', requireAdmin, async (req, res) => {
const id = parseInt(req.params.id, 10);
const id = parseInt(String(req.params.id), 10);
const { title, description, icon_key, sort_order, is_active } = req.body;
const updated = await queryOne(
`UPDATE approach_items SET