budibase/packages/auth/src/cache/user.js

29 lines
635 B
JavaScript
Raw Normal View History

2021-07-06 19:10:04 +02:00
const redis = require("../redis/authRedis")
const {
updateTenantId,
lookupTenantId,
getGlobalDB,
isTenantIdSet,
} = require("../tenancy")
2021-07-06 19:10:04 +02:00
const EXPIRY_SECONDS = 3600
exports.getUser = async userId => {
if (!isTenantIdSet()) {
updateTenantId(await lookupTenantId(userId))
}
2021-07-06 19:10:04 +02:00
const client = await redis.getUserClient()
// try cache
let user = await client.get(userId)
if (!user) {
user = await getGlobalDB().get(userId)
2021-07-06 19:10:04 +02:00
client.store(userId, user, EXPIRY_SECONDS)
}
return user
}
exports.invalidateUser = async userId => {
const client = await redis.getUserClient()
await client.delete(userId)
}