From 60c473bb94a5f6dc898b42405a3aab8eede63cbf Mon Sep 17 00:00:00 2001 From: mattwr18 Date: Fri, 13 Sep 2019 20:11:29 +0200 Subject: [PATCH] Create UpdateComment resolver, update UpdateUser - UpdateUser should update updatedAt at point of insertion in the database as well --- .../src/middleware/permissionsMiddleware.js | 2 +- backend/src/schema/resolvers/comments.js | 19 ++++++++++++++++--- backend/src/schema/resolvers/users.js | 2 +- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/backend/src/middleware/permissionsMiddleware.js b/backend/src/middleware/permissionsMiddleware.js index 745387e41..116794fda 100644 --- a/backend/src/middleware/permissionsMiddleware.js +++ b/backend/src/middleware/permissionsMiddleware.js @@ -78,7 +78,7 @@ const invitationLimitReached = rule({ const isAuthor = rule({ cache: 'no_cache', -})(async (parent, args, { user, driver }) => { +})(async (_parent, args, { user, driver }) => { if (!user) return false const session = driver.session() const { id: resourceId } = args diff --git a/backend/src/schema/resolvers/comments.js b/backend/src/schema/resolvers/comments.js index f507897c5..7378238bb 100644 --- a/backend/src/schema/resolvers/comments.js +++ b/backend/src/schema/resolvers/comments.js @@ -30,11 +30,24 @@ export default { }) session.close() - const [response] = transactionRes.records.map(record => record.get('comment').properties) + const [comment] = transactionRes.records.map(record => record.get('comment').properties) - return response + return comment }, - DeleteComment: async (object, args, context, resolveInfo) => { + UpdateComment: async (_parent, params, context, _resolveInfo) => { + const session = context.driver.session() + const updateCommentCypher = ` + MATCH (comment:Comment {id: $params.id}) + SET comment += $params + SET comment.updatedAt = toString(datetime()) + RETURN comment + ` + const transactionRes = await session.run(updateCommentCypher, { params }) + session.close() + const [comment] = transactionRes.records.map(record => record.get('comment').properties) + return comment + }, + DeleteComment: async (_parent, args, context, _resolveInfo) => { const session = context.driver.session() const transactionRes = await session.run( ` diff --git a/backend/src/schema/resolvers/users.js b/backend/src/schema/resolvers/users.js index 635a284f0..ea9220d5e 100644 --- a/backend/src/schema/resolvers/users.js +++ b/backend/src/schema/resolvers/users.js @@ -100,7 +100,7 @@ export default { try { const user = await instance.find('User', args.id) if (!user) return null - await user.update(args) + await user.update({ ...args, updatedAt: new Date().toISOString() }) return user.toJson() } catch (e) { throw new UserInputError(e.message)