lamassu-server/lib/new-admin/middlewares/cleanUserSessions.js
Sérgio Salgado 0272dc2bd1 chore: remove db $ instances
fix: add compute-schema file
fix: to_timestamp() psql usage

chore: rephrase expired session deletion
2021-11-16 16:46:12 +00:00

23 lines
777 B
JavaScript

const { asyncLocalStorage } = require('../../async-storage')
const db = require('../../db')
const { USER_SESSIONS_TABLE_NAME } = require('../../constants')
const schemaCache = {}
const cleanUserSessions = (cleanInterval) => (req, res, next) => {
const schema = asyncLocalStorage.getStore() ? asyncLocalStorage.getStore().get('schema') : null
const now = Date.now()
if (!schema) return next()
if (schema && schemaCache.schema + cleanInterval > now) return next()
console.log('Clearing expired sessions for schema', schema)
return db.none('DELETE FROM $1^ WHERE expire < to_timestamp($2 / 1000.0)', [USER_SESSIONS_TABLE_NAME, now])
.then(() => {
schemaCache.schema = now
return next()
})
.catch(next)
}
module.exports = cleanUserSessions