/var/www/qr4y.com/server/delivery/api/controllers/order
Edit: /var/www/qr4y.com/server/delivery/api/controllers/order/printed.js (1261B)
const { NotFound, BadRequest, ApiError } = require('../../responseModels/errors')
const { isSet, isEmpty, isArray, isNumber } = require('../../utils/validator.util')
const { performance } = require('perf_hooks')
module.exports = function ({ db, logger }) {
return async (req, res, next) => {
logger.child({ path: req.path, request: req.body }).info()
try {
const t1 = performance.now()
const { orderId, printedItems } = req.body
if (!orderId) throw new BadRequest({ lang: req.user?.languageCode })
if (!isArray(printedItems) || printedItems.length === 0)
throw new BadRequest({ lang: req.user?.languageCode })
let orderItems = await db.orderItems.findAll({
where: {
orderId,
id: { [db.Sequelize.Op.in]: printedItems },
productPrinted: { [db.Sequelize.Op.not]: true }
}
})
if (!isArray(orderItems) || orderItems.length === 0)
throw new NotFound({ lang: req.user?.languageCode })
const tasks = []
for (let orderItem of orderItems) {
orderItem.productPrinted = true
tasks.push(orderItem.save())
}
const result = await Promise.all(tasks)
const time = performance.now() - t1
return res.status(200).json({ status: 'success', time })
} catch (err) {
next(err)
}
}
}