@@ -51,17 +51,17 @@ enum class FieldOperator(
5151 queriedField : String ,
5252 propertyContainer : PropertyContainer ,
5353 field : GraphQLFieldDefinition ? ,
54- value : Any ,
54+ value : Any? ,
5555 schemaConfig : SchemaConfig ,
5656 suffix : String? = null
5757 ): List <Condition > {
5858 if (schemaConfig.useTemporalScalars && field?.type?.isNeo4jTemporalType() == true ) {
5959 val neo4jTypeConverter = getNeo4jTypeConverter(field)
6060 val parameter = queryParameter(value, variablePrefix, queriedField, null , suffix)
61- .withValue(value.toJavaValue() )
61+ .withValue(value)
6262 return listOf (neo4jTypeConverter.createCondition(propertyContainer.property(field.name), parameter, conditionCreator))
6363 }
64- return if (field?.type?.isNeo4jType() == true && value is ObjectValue ) {
64+ return if (field?.type?.isNeo4jType() == true && value is Map < * , * > ) {
6565 resolveNeo4jTypeConditions(variablePrefix, queriedField, propertyContainer, field, value, suffix)
6666 } else if (field?.isNativeId() == true ) {
6767 val id = propertyContainer.id()
@@ -79,28 +79,29 @@ enum class FieldOperator(
7979 }
8080 }
8181
82- private fun resolveNeo4jTypeConditions (variablePrefix : String , queriedField : String , propertyContainer : PropertyContainer , field : GraphQLFieldDefinition , value : ObjectValue , suffix : String? ): List <Condition > {
82+ private fun resolveNeo4jTypeConditions (variablePrefix : String , queriedField : String , propertyContainer : PropertyContainer , field : GraphQLFieldDefinition , values : Map < * , * > , suffix : String? ): List <Condition > {
8383 val neo4jTypeConverter = getNeo4jTypeConverter(field)
8484 val conditions = mutableListOf<Condition >()
8585 if (distance) {
86- val parameter = queryParameter(value , variablePrefix, queriedField, suffix)
86+ val parameter = queryParameter(values , variablePrefix, queriedField, suffix)
8787 conditions + = (neo4jTypeConverter as Neo4jPointConverter ).createDistanceCondition(
8888 propertyContainer.property(field.propertyName()),
8989 parameter,
9090 conditionCreator
9191 )
9292 } else {
93- value.objectFields.forEachIndexed { index, objectField ->
94- val parameter = queryParameter(value, variablePrefix, queriedField, if (value.objectFields.size > 1 ) " And${index + 1 } " else null , suffix, objectField.name)
95- .withValue(objectField.value.toJavaValue())
93+ values.entries.forEachIndexed { index, (key, value) ->
94+ val fieldName = key.toString()
95+ val parameter = queryParameter(value, variablePrefix, queriedField, if (values.size > 1 ) " And${index + 1 } " else null , suffix, fieldName)
96+ .withValue(value)
9697
97- conditions + = neo4jTypeConverter.createCondition(objectField , field, parameter, conditionCreator, propertyContainer)
98+ conditions + = neo4jTypeConverter.createCondition(fieldName , field, parameter, conditionCreator, propertyContainer)
9899 }
99100 }
100101 return conditions
101102 }
102103
103- private fun resolveCondition (variablePrefix : String , queriedField : String , property : Property , value : Any , suffix : String? ): List <Condition > {
104+ private fun resolveCondition (variablePrefix : String , queriedField : String , property : Property , value : Any? , suffix : String? ): List <Condition > {
104105 val parameter = queryParameter(value, variablePrefix, queriedField, suffix)
105106 val condition = conditionCreator(property, parameter)
106107 return listOf (condition)
@@ -140,14 +141,14 @@ enum class RelationOperator(val suffix: String) {
140141
141142 fun fieldName (fieldName : String ) = fieldName + suffix
142143
143- fun harmonize (type : GraphQLFieldsContainer , field : GraphQLFieldDefinition , value : Value < * > , queryFieldName : String ) = when (field.type.isList()) {
144+ fun harmonize (type : GraphQLFieldsContainer , field : GraphQLFieldDefinition , value : Any? , queryFieldName : String ) = when (field.type.isList()) {
144145 true -> when (this ) {
145146 NOT -> when (value) {
146- is NullValue -> NOT
147+ null -> NOT
147148 else -> NONE
148149 }
149150 EQ_OR_NOT_EXISTS -> when (value) {
150- is NullValue -> EQ_OR_NOT_EXISTS
151+ null -> EQ_OR_NOT_EXISTS
151152 else -> {
152153 LOGGER .debug(" $queryFieldName on type ${type.name} was used for filtering, consider using ${field.name}${EVERY .suffix} instead" )
153154 EVERY
@@ -169,11 +170,11 @@ enum class RelationOperator(val suffix: String) {
169170 NONE
170171 }
171172 NOT -> when (value) {
172- is NullValue -> NOT
173+ null -> NOT
173174 else -> NONE
174175 }
175176 EQ_OR_NOT_EXISTS -> when (value) {
176- is NullValue -> EQ_OR_NOT_EXISTS
177+ null -> EQ_OR_NOT_EXISTS
177178 else -> SOME
178179 }
179180 else -> this
0 commit comments