From 6340efbfc585227052455501c118ddf4af474296 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Thu, 17 Jan 2019 18:03:28 +0100 Subject: [PATCH] Fix #106 Thank you @appinteractive ! :gift_heart: FYI: @kachulio1 @mattwr18 --- src/middleware/userMiddleware.js | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/middleware/userMiddleware.js b/src/middleware/userMiddleware.js index 55b181bc9..161309164 100644 --- a/src/middleware/userMiddleware.js +++ b/src/middleware/userMiddleware.js @@ -1,4 +1,5 @@ import createOrUpdateLocations from './nodes/locations' +import find from 'lodash/find' export default { Mutation: { @@ -12,5 +13,28 @@ export default { await createOrUpdateLocations(args.id, args.locationName, context.driver) return result } + }, + Query: { + User: async (resolve, root, args, context, info) => { + let isIdPresent + let removeIdFromResult + try { + isIdPresent = find(info.fieldNodes[0].selectionSet.selections, item => item.name.value === 'id') + if (!isIdPresent) { + // add id to request as the user did not ask but we need it + info.fieldNodes[0].selectionSet.selections.unshift({ + kind: 'Field', + name: { kind: 'Name', value: 'id' } + }) + removeIdFromResult = true + } + } catch(err) {} + const result = await resolve(root, args, context, info) + if (!isIdPresent && removeIdFromResult) { + // remove id if the user did not ask for it + info.fieldNodes[0].selectionSet.selections.shift() + } + return result + } } }