INNER CODE UNIT · Kotlin
pred
neo4j-graphql/neo4j-graphql · src/main/kotlin/org/neo4j/graphql/CypherGenerator.kt:107
val pred = CompoundPredicate(value.map { it -> resolvePredicate(it.key.toString(), it.value,relMetaData)}).toExpression(other)
return "$not $prefix(${cond} IN [(`$variable`)$left-[:`${rel.type}`]-$right(`$other`) | $pred] WHERE ${cond})"
}
}
fun where(field: Field, variable: String, md: MetaData, orderBys: MutableList<Pair<String,Boolean>>, parameters: Map<String, Any>): String {
val filterPredicates = mutableListOf<Predicate>()
val predicates = field.arguments.mapNotNull {
val argName = it.name
val argValue = it.value
val value : Any? = if (argValue is VariableReference) parameters[argValue.name] else argValue.extract()
when (argName) {
"filter" -> {
if (value is Map<*,*>) filterPredicates.add(CompoundPredicate(value.map { (k,v) -> toExpression(k.toString(), v, md) }, "AND"))
null
}
"orderBy" -> {
extractOrderByEnum(it, orderBys, parameters)