From d15857d240e89917b4ecb616e5a56378da43e4a3 Mon Sep 17 00:00:00 2001 From: Matt Rider Date: Wed, 12 Jun 2019 15:27:57 -0300 Subject: [PATCH] Set user's posts/comments' delete attribute to true - favor over actually deleting the node so that the comments will appear as anonymous and not lose the context of the conversation - the post will not appear, but for admin it will be accessible - follow @roschaefer `PR` review --- backend/src/schema/resolvers/users.js | 2 +- backend/src/schema/resolvers/users.spec.js | 18 ++++++++++-------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/backend/src/schema/resolvers/users.js b/backend/src/schema/resolvers/users.js index f1cfffd65..c5c3701b5 100644 --- a/backend/src/schema/resolvers/users.js +++ b/backend/src/schema/resolvers/users.js @@ -21,7 +21,7 @@ export default { await session.run( ` MATCH (resource:${node})<-[:WROTE]-(author:User {id: $userId}) - DETACH DELETE resource + SET resource.deleted = true RETURN author`, { userId: context.user.id, diff --git a/backend/src/schema/resolvers/users.spec.js b/backend/src/schema/resolvers/users.spec.js index c91fdf08e..95dbfdc3b 100644 --- a/backend/src/schema/resolvers/users.spec.js +++ b/backend/src/schema/resolvers/users.spec.js @@ -93,9 +93,11 @@ describe('users', () => { id contributions { id + deleted } comments { id + deleted } } } @@ -161,8 +163,8 @@ describe('users', () => { expectedResponse = { DeleteUser: { id: 'u343', - contributions: [{ id: 'p139' }], - comments: [{ id: 'c155' }], + contributions: [{ id: 'p139', deleted: false }], + comments: [{ id: 'c155', deleted: false }], }, } }) @@ -178,8 +180,8 @@ describe('users', () => { expectedResponse = { DeleteUser: { id: 'u343', - contributions: [], - comments: [{ id: 'c155' }], + contributions: [{ id: 'p139', deleted: true }], + comments: [{ id: 'c155', deleted: false }], }, } await expect(client.request(deleteUserMutation, deleteUserVariables)).resolves.toEqual( @@ -192,8 +194,8 @@ describe('users', () => { expectedResponse = { DeleteUser: { id: 'u343', - contributions: [{ id: 'p139' }], - comments: [], + contributions: [{ id: 'p139', deleted: false }], + comments: [{ id: 'c155', deleted: true }], }, } await expect(client.request(deleteUserMutation, deleteUserVariables)).resolves.toEqual( @@ -206,8 +208,8 @@ describe('users', () => { expectedResponse = { DeleteUser: { id: 'u343', - contributions: [], - comments: [], + contributions: [{ id: 'p139', deleted: true }], + comments: [{ id: 'c155', deleted: true }], }, } await expect(client.request(deleteUserMutation, deleteUserVariables)).resolves.toEqual(