landing: динамический счётчик продуктов, телефон, защита email/телефона от ботов
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user