Update bcryptjs to version 3.0.3 and add smoke-tracker router to the server configuration.
This commit is contained in:
75
server/routers/smoke-tracker/cigarettes.js
Normal file
75
server/routers/smoke-tracker/cigarettes.js
Normal 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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user