mirror of
https://github.com/movie-web/backend.git
synced 2025-09-13 10:43:25 +00:00
Remove user deletion job from session expiry
This commit is contained in:
@@ -20,37 +20,5 @@ export const sessionExpiryJob = job(
|
||||
log.info(
|
||||
`Removed ${deletedSessions.affectedRows} sessions that had expired`,
|
||||
);
|
||||
|
||||
const knex = em.getKnex();
|
||||
|
||||
// Count all sessions for a user ID
|
||||
const sessionCountForUser = em
|
||||
.createQueryBuilder(Session, 'session')
|
||||
.count()
|
||||
.where({ user: knex.ref('user.id') })
|
||||
.getKnexQuery();
|
||||
|
||||
const now = new Date();
|
||||
const oneYearAgo = new Date();
|
||||
oneYearAgo.setFullYear(now.getFullYear() - 1);
|
||||
|
||||
// Delete all users who do not have any sessions AND
|
||||
// (their login date is null OR they last logged in over 1 year ago)
|
||||
const deletedUsers = await em
|
||||
.createQueryBuilder(User, 'user')
|
||||
.delete()
|
||||
.withSubQuery(sessionCountForUser, 'session.sessionCount')
|
||||
.where({
|
||||
'session.sessionCount': 0,
|
||||
$or: [
|
||||
{ lastLoggedIn: { $eq: undefined } },
|
||||
{ lastLoggedIn: { $lt: oneYearAgo } },
|
||||
],
|
||||
})
|
||||
.execute<{ affectedRows: number }>('run');
|
||||
|
||||
log.info(
|
||||
`Removed ${deletedUsers.affectedRows} users older than 1 year with no sessions`,
|
||||
);
|
||||
},
|
||||
);
|
||||
|
Reference in New Issue
Block a user