diff --git a/backend/src/schema/resolvers/groups.js b/backend/src/schema/resolvers/groups.js index 4349ac9bf..6a5bd7966 100644 --- a/backend/src/schema/resolvers/groups.js +++ b/backend/src/schema/resolvers/groups.js @@ -18,7 +18,7 @@ export default { removeUndefinedNullValuesFromObject(matchParams) const session = context.driver.session() const readTxResultPromise = session.readTransaction(async (txc) => { - const groupMatchParamsCypher = convertObjectToCypherMapLiteral(matchParams) + const groupMatchParamsCypher = convertObjectToCypherMapLiteral(matchParams, true) let groupCypher if (isMember === true) { groupCypher = ` diff --git a/backend/src/schema/resolvers/helpers/Resolver.js b/backend/src/schema/resolvers/helpers/Resolver.js index 56d382690..6e8211521 100644 --- a/backend/src/schema/resolvers/helpers/Resolver.js +++ b/backend/src/schema/resolvers/helpers/Resolver.js @@ -130,15 +130,16 @@ export const removeUndefinedNullValuesFromObject = (obj) => { }) } -export const convertObjectToCypherMapLiteral = (params) => { +export const convertObjectToCypherMapLiteral = (params, addSpaceInfrontIfMapIsNotEmpty = false) => { // I have found no other way yet. maybe "apoc.convert.fromJsonMap(key)" can help, but couldn't get it how, see: https://stackoverflow.com/questions/43217823/neo4j-cypher-inline-conversion-of-string-to-a-map // result looks like: '{id: "g0", slug: "yoga"}' const paramsEntries = Object.entries(params) let mapLiteral = '' paramsEntries.forEach((ele, index) => { - mapLiteral += index === 0 ? ' {' : '' + mapLiteral += index === 0 ? '{' : '' mapLiteral += `${ele[0]}: "${ele[1]}"` mapLiteral += index < paramsEntries.length - 1 ? ', ' : '}' }) + mapLiteral = (addSpaceInfrontIfMapIsNotEmpty && mapLiteral.length > 0 ? ' ' : '') + mapLiteral return mapLiteral }