Update bcryptjs to version 3.0.3 and add smoke-tracker router to the server configuration.

This commit is contained in:
Primakov Alexandr Alexandrovich
2025-11-17 13:25:20 +03:00
parent 4c166a8d33
commit f6f9163c3f
15 changed files with 1230 additions and 5 deletions

View File

@@ -0,0 +1,75 @@
const { Router } = require('express')
const { getAnswer } = require('../../utils/common')
const { CigaretteModel } = require('./model/cigarette')
const { authMiddleware } = require('./middleware/auth')
const router = Router()
// Все эндпоинты ниже требуют авторизации
router.use(authMiddleware)
// Логирование одной сигареты
router.post('/', async (req, res, next) => {
try {
const { smokedAt, note } = req.body || {}
const user = req.user
let date
if (smokedAt) {
const parsed = new Date(smokedAt)
if (Number.isNaN(parsed.getTime())) {
throw new Error('Некорректный формат даты smokedAt')
}
date = parsed
} else {
date = new Date()
}
const item = await CigaretteModel.create({
userId: user.id,
smokedAt: date,
note,
})
res.json(getAnswer(null, item))
} catch (err) {
next(err)
}
})
// Получение списка сигарет пользователя (для отладки и таблиц)
router.get('/', async (req, res, next) => {
try {
const user = req.user
const { from, to } = req.query
const filter = { userId: user.id }
if (from || to) {
filter.smokedAt = {}
if (from) {
const fromDate = new Date(from)
if (!Number.isNaN(fromDate.getTime())) {
filter.smokedAt.$gte = fromDate
}
}
if (to) {
const toDate = new Date(to)
if (!Number.isNaN(toDate.getTime())) {
filter.smokedAt.$lte = toDate
}
}
}
const items = await CigaretteModel.find(filter).sort({ smokedAt: 1 })
res.json(getAnswer(null, items))
} catch (err) {
next(err)
}
})
module.exports = router