mirror of
https://github.com/Ocelot-Social-Community/Ocelot-Social.git
synced 2025-12-12 23:35:58 +00:00
fix(backend): fix potential leak in updateOnlineStatus (#8923)
Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
This commit is contained in:
parent
33ca59343a
commit
e4717e0d89
@ -353,14 +353,11 @@ export default {
|
|||||||
session.close()
|
session.close()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
updateOnlineStatus: async (_object, args, context, _resolveInfo) => {
|
updateOnlineStatus: async (_object, args, context: Context, _resolveInfo) => {
|
||||||
const { status } = args
|
const { status } = args
|
||||||
const {
|
|
||||||
user: { id },
|
|
||||||
} = context
|
|
||||||
|
|
||||||
const CYPHER_AWAY = `
|
const CYPHER_AWAY = `
|
||||||
MATCH (user:User {id: $id})
|
MATCH (user:User {id: $user.id})
|
||||||
WITH user,
|
WITH user,
|
||||||
CASE user.lastOnlineStatus
|
CASE user.lastOnlineStatus
|
||||||
WHEN 'away' THEN user.awaySince
|
WHEN 'away' THEN user.awaySince
|
||||||
@ -370,16 +367,14 @@ export default {
|
|||||||
SET user.lastOnlineStatus = $status
|
SET user.lastOnlineStatus = $status
|
||||||
`
|
`
|
||||||
const CYPHER_ONLINE = `
|
const CYPHER_ONLINE = `
|
||||||
MATCH (user:User {id: $id})
|
MATCH (user:User {id: $user.id})
|
||||||
SET user.awaySince = null
|
SET user.awaySince = null
|
||||||
SET user.lastOnlineStatus = $status
|
SET user.lastOnlineStatus = $status
|
||||||
`
|
`
|
||||||
|
|
||||||
// Last Online Time is saved as `lastActiveAt`
|
await context.database.write({
|
||||||
const session = context.driver.session()
|
query: status === 'away' ? CYPHER_AWAY : CYPHER_ONLINE,
|
||||||
await session.writeTransaction((transaction) => {
|
variables: { user: context.user, status },
|
||||||
// return transaction.run(status === 'away' ? CYPHER_AWAY : CYPHER_ONLINE, { id, status })
|
|
||||||
return transaction.run(status === 'away' ? CYPHER_AWAY : CYPHER_ONLINE, { id, status })
|
|
||||||
})
|
})
|
||||||
|
|
||||||
return true
|
return true
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user