From 5bf933887cb407c18640aff5aa882944b8b30b2d Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Thu, 13 Jul 2023 11:51:38 +0200 Subject: [PATCH] messages created by current user are not set to seen --- backend/src/schema/resolvers/messages.spec.ts | 2 +- backend/src/schema/resolvers/messages.ts | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/backend/src/schema/resolvers/messages.spec.ts b/backend/src/schema/resolvers/messages.spec.ts index 59512e323..0deccb4e9 100644 --- a/backend/src/schema/resolvers/messages.spec.ts +++ b/backend/src/schema/resolvers/messages.spec.ts @@ -385,7 +385,7 @@ describe('Message', () => { data: { Message: [ expect.objectContaining({ seen: true }), - expect.objectContaining({ seen: true }), + expect.objectContaining({ seen: false }), expect.objectContaining({ seen: true }), ], }, diff --git a/backend/src/schema/resolvers/messages.ts b/backend/src/schema/resolvers/messages.ts index 82024c310..45de0b4a4 100644 --- a/backend/src/schema/resolvers/messages.ts +++ b/backend/src/schema/resolvers/messages.ts @@ -91,15 +91,18 @@ export default { }, MarkMessagesAsSeen: async (_parent, params, context, _resolveInfo) => { const { messageIds } = params + const currentUserId = context.user.id const session = context.driver.session() const writeTxResultPromise = session.writeTransaction(async (transaction) => { const setSeenCypher = ` - MATCH (m:Message) WHERE m.id IN $messageIds + MATCH (m:Message)<-[:CREATED]-(user:User) + WHERE m.id IN $messageIds AND NOT user.id = $currentUserId SET m.seen = true RETURN m { .* } ` const setSeenTxResponse = await transaction.run(setSeenCypher, { messageIds, + currentUserId, }) const messages = await setSeenTxResponse.records.map((record) => record.get('m')) return messages