lamassu-server/packages/server/lib/middlewares/rejectIncompatbleMachines.js
2025-05-12 15:35:00 +01:00

35 lines
898 B
JavaScript

const semver = require('semver')
const version = require('../../package.json').version
const logger = require('../logger')
const rejectIncompatibleMachines = function (req, res, next) {
const machineVersion = req.query.version
const deviceId = req.deviceId
if (!machineVersion) return next()
const serverMajor = semver.major(version)
const machineMajor = semver.major(machineVersion)
if (serverMajor - machineMajor > 1) {
logger.error(
`Machine version too old: ${machineVersion} deviceId: ${deviceId}`,
)
return res.status(400).json({
error: 'Machine version too old',
})
}
if (serverMajor < machineMajor) {
logger.error(
`Machine version too new: ${machineVersion} deviceId: ${deviceId}`,
)
return res.status(400).json({
error: 'Machine version too new',
})
}
next()
}
module.exports = rejectIncompatibleMachines