From 293054a05b87010bc7cb54c4afefc4f7543dc401 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Wed, 7 Aug 2019 17:27:53 +0200 Subject: [PATCH] Implement block+unblock basic features --- backend/src/schema/resolvers/users.js | 12 ++++++++++-- backend/src/schema/types/type/User.gql | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/backend/src/schema/resolvers/users.js b/backend/src/schema/resolvers/users.js index 66adc8734..0824d62c0 100644 --- a/backend/src/schema/resolvers/users.js +++ b/backend/src/schema/resolvers/users.js @@ -38,9 +38,17 @@ export default { }, Mutation: { block: async (object, args, context, resolveInfo) => { - if (context.user.id === args.id) return null + const { user: currentUser } = context + if (currentUser.id === args.id) return null + await instance.cypher( + ` + MATCH(u:User {id: $currentUser.id})-[r:FOLLOWS]->(b:User {id: $args.id}) + DELETE r + `, + { currentUser, args }, + ) const [user, blockedUser] = await Promise.all([ - instance.find('User', context.user.id), + instance.find('User', currentUser.id), instance.find('User', args.id), ]) await user.relateTo(blockedUser, 'blocked') diff --git a/backend/src/schema/types/type/User.gql b/backend/src/schema/types/type/User.gql index c0b8220f5..e3e8f8450 100644 --- a/backend/src/schema/types/type/User.gql +++ b/backend/src/schema/types/type/User.gql @@ -44,7 +44,7 @@ type User { ) isBlocked: Boolean! @cypher( statement: """ - MATCH (this)-[:BLOCKED]->(u:User {id: $cypherParams.currentUserId}) + MATCH (this)<-[:BLOCKED]-(u:User {id: $cypherParams.currentUserId}) RETURN COUNT(u) >= 1 """ )