refactor: memoize pings

This commit is contained in:
siiky 2025-05-20 17:21:04 +01:00
parent d689927b01
commit 6443eafeed

View file

@ -1,7 +1,27 @@
const plugins = require('../plugins')
const mem = require('mem')
module.exports = (req, res, next) =>
plugins(req.settings, req.deviceId)
.recordPing(req.deviceTime, req.query.version, req.query.model)
.then(() => next())
.catch(() => next())
const logger = require('../logger')
const plugins = require('../plugins')
const T = require('../time')
const record = mem(
({ deviceId, deviceTime, model, version, settings }) =>
plugins(settings, deviceId)
.recordPing(deviceTime, version, model)
.catch(logger.error),
{
cacheKey: ({ deviceId }) => deviceId,
maxAge: (3 / 2) * T.minute, // lib/notifier/codes.js
},
)
module.exports = (req, res, next) => {
record({
deviceId: req.deviceId,
deviceTime: req.deviceTime,
model: req.query.model,
version: req.query.version,
settings: req.settings,
})
next()
}