Skip to content

Commit 258172a

Browse files
authored
Merge pull request #325 from nl-portal/feature/fix-graphql-scalar-deprecations
Feature/fix graphql scalar deprecations
2 parents e1be069 + 9464cc7 commit 258172a

File tree

17 files changed

+190
-50
lines changed

17 files changed

+190
-50
lines changed

case/src/test/kotlin/nl/nlportal/case/BaseIntegrationTest.kt

-5
Original file line numberDiff line numberDiff line change
@@ -15,24 +15,19 @@
1515
*/
1616
package nl.nlportal.case
1717

18-
import nl.nlportal.case.autodeployment.CaseDefinitionApplicationReadyEventListener
1918
import org.junit.jupiter.api.AfterEach
2019
import org.junit.jupiter.api.BeforeAll
2120
import org.junit.jupiter.api.BeforeEach
2221
import org.junit.jupiter.api.Tag
2322
import org.junit.jupiter.api.extension.ExtendWith
2423
import org.springframework.boot.test.context.SpringBootTest
25-
import org.springframework.boot.test.mock.mockito.MockBean
2624
import org.springframework.test.context.junit.jupiter.SpringExtension
2725
import java.io.InputStream
2826

2927
@SpringBootTest
3028
@ExtendWith(SpringExtension::class)
3129
@Tag("integration")
3230
abstract class BaseIntegrationTest {
33-
@MockBean
34-
lateinit var caseDefinitionApplicationReadyEventListener: CaseDefinitionApplicationReadyEventListener
35-
3631
@BeforeEach
3732
fun beforeEach() {
3833
}

case/src/test/kotlin/nl/nlportal/case/CaseTestConfiguration.kt

+7
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,10 @@
1515
*/
1616
package nl.nlportal.case
1717

18+
import nl.nlportal.case.autodeployment.CaseDefinitionApplicationReadyEventListener
1819
import nl.nlportal.core.security.OauthSecurityAutoConfiguration
1920
import org.apache.commons.lang3.StringUtils
21+
import org.mockito.Mockito
2022
import org.springframework.beans.factory.ObjectProvider
2123
import org.springframework.boot.SpringApplication
2224
import org.springframework.boot.SpringBootConfiguration
@@ -72,4 +74,9 @@ class CaseTestConfiguration {
7274
}
7375
return NOOP_PASSWORD_PREFIX + password
7476
}
77+
78+
@Bean
79+
fun caseDefinitionApplicationReadyEventListener(): CaseDefinitionApplicationReadyEventListener {
80+
return Mockito.mock(CaseDefinitionApplicationReadyEventListener::class.java)
81+
}
7582
}

graphql/src/main/kotlin/nl/nlportal/graphql/customtype/BigDecimal.kt

+20-3
Original file line numberDiff line numberDiff line change
@@ -15,23 +15,36 @@
1515
*/
1616
package nl.nlportal.graphql.customtype
1717

18+
import graphql.GraphQLContext
19+
import graphql.execution.CoercedVariables
1820
import graphql.language.StringValue
21+
import graphql.language.Value
1922
import graphql.schema.Coercing
2023
import graphql.schema.CoercingParseLiteralException
2124
import graphql.schema.CoercingParseValueException
2225
import graphql.schema.CoercingSerializeException
2326
import graphql.schema.GraphQLScalarType
2427
import java.math.BigDecimal
28+
import java.util.Locale
2529

2630
object BigDecimalCoercing : Coercing<BigDecimal, String> {
27-
override fun parseValue(input: Any): BigDecimal =
31+
override fun parseValue(
32+
input: Any,
33+
graphQLContext: GraphQLContext,
34+
locale: Locale,
35+
): BigDecimal =
2836
runCatching {
2937
BigDecimal(input as? String)
3038
}.getOrElse {
3139
throw CoercingParseValueException("Expected valid BigDecimal but was $input")
3240
}
3341

34-
override fun parseLiteral(input: Any): BigDecimal {
42+
override fun parseLiteral(
43+
input: Value<*>,
44+
variables: CoercedVariables,
45+
graphQLContext: GraphQLContext,
46+
locale: Locale,
47+
): BigDecimal {
3548
val inputValue = (input as? StringValue)?.value
3649
return runCatching {
3750
BigDecimal(inputValue)
@@ -40,7 +53,11 @@ object BigDecimalCoercing : Coercing<BigDecimal, String> {
4053
}
4154
}
4255

43-
override fun serialize(dataFetcherResult: Any): String =
56+
override fun serialize(
57+
dataFetcherResult: Any,
58+
graphQLContext: GraphQLContext,
59+
locale: Locale,
60+
): String =
4461
runCatching {
4562
dataFetcherResult.toString()
4663
}.getOrElse {

graphql/src/main/kotlin/nl/nlportal/graphql/customtype/BigInteger.kt

+20-3
Original file line numberDiff line numberDiff line change
@@ -15,23 +15,36 @@
1515
*/
1616
package nl.nlportal.graphql.customtype
1717

18+
import graphql.GraphQLContext
19+
import graphql.execution.CoercedVariables
1820
import graphql.language.StringValue
21+
import graphql.language.Value
1922
import graphql.schema.Coercing
2023
import graphql.schema.CoercingParseLiteralException
2124
import graphql.schema.CoercingParseValueException
2225
import graphql.schema.CoercingSerializeException
2326
import graphql.schema.GraphQLScalarType
2427
import java.math.BigInteger
28+
import java.util.Locale
2529

2630
object BigIntegerCoercing : Coercing<BigInteger, String> {
27-
override fun parseValue(input: Any): BigInteger =
31+
override fun parseValue(
32+
input: Any,
33+
graphQLContext: GraphQLContext,
34+
locale: Locale,
35+
): BigInteger =
2836
runCatching {
2937
BigInteger(input as? String)
3038
}.getOrElse {
3139
throw CoercingParseValueException("Expected valid BigInteger but was $input")
3240
}
3341

34-
override fun parseLiteral(input: Any): BigInteger {
42+
override fun parseLiteral(
43+
input: Value<*>,
44+
variables: CoercedVariables,
45+
graphQLContext: GraphQLContext,
46+
locale: Locale,
47+
): BigInteger {
3548
val inputValue = (input as? StringValue)?.value
3649
return runCatching {
3750
BigInteger(inputValue)
@@ -40,7 +53,11 @@ object BigIntegerCoercing : Coercing<BigInteger, String> {
4053
}
4154
}
4255

43-
override fun serialize(dataFetcherResult: Any): String =
56+
override fun serialize(
57+
dataFetcherResult: Any,
58+
graphQLContext: GraphQLContext,
59+
locale: Locale,
60+
): String =
4461
runCatching {
4562
dataFetcherResult.toString()
4663
}.getOrElse {

graphql/src/main/kotlin/nl/nlportal/graphql/customtype/JSON.kt

+22-5
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,26 @@ package nl.nlportal.graphql.customtype
1818
import com.fasterxml.jackson.databind.JsonNode
1919
import com.fasterxml.jackson.databind.node.JsonNodeFactory
2020
import com.fasterxml.jackson.databind.node.ObjectNode
21-
import nl.nlportal.core.util.Mapper
21+
import graphql.GraphQLContext
22+
import graphql.execution.CoercedVariables
2223
import graphql.language.IntValue
2324
import graphql.language.ObjectField
2425
import graphql.language.ObjectValue
2526
import graphql.language.StringValue
27+
import graphql.language.Value
2628
import graphql.schema.Coercing
2729
import graphql.schema.CoercingParseLiteralException
2830
import graphql.schema.CoercingSerializeException
2931
import graphql.schema.GraphQLScalarType
32+
import nl.nlportal.core.util.Mapper
33+
import java.util.Locale
3034

3135
object JSONCoercing : Coercing<ObjectNode, ObjectNode> {
32-
override fun parseValue(input: Any): ObjectNode {
36+
override fun parseValue(
37+
input: Any,
38+
graphQLContext: GraphQLContext,
39+
locale: Locale,
40+
): ObjectNode {
3341
if (input is ObjectValue) {
3442
val jsonNode: ObjectNode = JsonNodeFactory.instance.objectNode()
3543
for (f: ObjectField in input.objectFields) {
@@ -42,16 +50,25 @@ object JSONCoercing : Coercing<ObjectNode, ObjectNode> {
4250
throw CoercingParseLiteralException("Expected valid JSON input but was $input")
4351
}
4452

45-
override fun parseLiteral(input: Any): ObjectNode {
53+
override fun parseLiteral(
54+
input: Value<*>,
55+
variables: CoercedVariables,
56+
graphQLContext: GraphQLContext,
57+
locale: Locale,
58+
): ObjectNode {
4659
val jsonString = (input as? ObjectValue)!!
4760
return runCatching {
48-
parseValue(input)
61+
parseValue(input, graphQLContext, locale)
4962
}.getOrElse {
5063
throw CoercingParseLiteralException("Expected valid JSON literal but was $jsonString")
5164
}
5265
}
5366

54-
override fun serialize(dataFetcherResult: Any): ObjectNode =
67+
override fun serialize(
68+
dataFetcherResult: Any,
69+
graphQLContext: GraphQLContext,
70+
locale: Locale,
71+
): ObjectNode =
5572
runCatching {
5673
Mapper.get().readValue(dataFetcherResult.toString(), ObjectNode::class.java)
5774
}.getOrElse {

graphql/src/main/kotlin/nl/nlportal/graphql/customtype/LocalDate.kt

+20-3
Original file line numberDiff line numberDiff line change
@@ -15,23 +15,36 @@
1515
*/
1616
package nl.nlportal.graphql.customtype
1717

18+
import graphql.GraphQLContext
19+
import graphql.execution.CoercedVariables
1820
import graphql.language.StringValue
21+
import graphql.language.Value
1922
import graphql.schema.Coercing
2023
import graphql.schema.CoercingParseLiteralException
2124
import graphql.schema.CoercingParseValueException
2225
import graphql.schema.CoercingSerializeException
2326
import graphql.schema.GraphQLScalarType
2427
import java.time.LocalDate
28+
import java.util.Locale
2529

2630
object LocalDateCoercing : Coercing<LocalDate, String> {
27-
override fun parseValue(input: Any): LocalDate =
31+
override fun parseValue(
32+
input: Any,
33+
graphQLContext: GraphQLContext,
34+
locale: Locale,
35+
): LocalDate =
2836
runCatching {
2937
LocalDate.parse(input as? String)
3038
}.getOrElse {
3139
throw CoercingParseValueException("Expected valid LocalDate but was $input")
3240
}
3341

34-
override fun parseLiteral(input: Any): LocalDate {
42+
override fun parseLiteral(
43+
input: Value<*>,
44+
variables: CoercedVariables,
45+
graphQLContext: GraphQLContext,
46+
locale: Locale,
47+
): LocalDate {
3548
val dateString = (input as? StringValue)?.value
3649
return runCatching {
3750
LocalDate.parse(dateString)
@@ -40,7 +53,11 @@ object LocalDateCoercing : Coercing<LocalDate, String> {
4053
}
4154
}
4255

43-
override fun serialize(dataFetcherResult: Any): String =
56+
override fun serialize(
57+
dataFetcherResult: Any,
58+
graphQLContext: GraphQLContext,
59+
locale: Locale,
60+
): String =
4461
runCatching {
4562
dataFetcherResult.toString()
4663
}.getOrElse {

graphql/src/main/kotlin/nl/nlportal/graphql/customtype/LocalDateTime.kt

+20-3
Original file line numberDiff line numberDiff line change
@@ -15,23 +15,36 @@
1515
*/
1616
package nl.nlportal.graphql.customtype
1717

18+
import graphql.GraphQLContext
19+
import graphql.execution.CoercedVariables
1820
import graphql.language.StringValue
21+
import graphql.language.Value
1922
import graphql.schema.Coercing
2023
import graphql.schema.CoercingParseLiteralException
2124
import graphql.schema.CoercingParseValueException
2225
import graphql.schema.CoercingSerializeException
2326
import graphql.schema.GraphQLScalarType
2427
import java.time.LocalDateTime
28+
import java.util.Locale
2529

2630
object LocalDateTimeCoercing : Coercing<LocalDateTime, String> {
27-
override fun parseValue(input: Any): LocalDateTime =
31+
override fun parseValue(
32+
input: Any,
33+
graphQLContext: GraphQLContext,
34+
locale: Locale,
35+
): LocalDateTime =
2836
runCatching {
2937
LocalDateTime.parse(input as? String)
3038
}.getOrElse {
3139
throw CoercingParseValueException("Expected valid LocalDateTime but was $input")
3240
}
3341

34-
override fun parseLiteral(input: Any): LocalDateTime {
42+
override fun parseLiteral(
43+
input: Value<*>,
44+
variables: CoercedVariables,
45+
graphQLContext: GraphQLContext,
46+
locale: Locale,
47+
): LocalDateTime {
3548
val dateString = (input as? StringValue)?.value
3649
return runCatching {
3750
LocalDateTime.parse(dateString)
@@ -40,7 +53,11 @@ object LocalDateTimeCoercing : Coercing<LocalDateTime, String> {
4053
}
4154
}
4255

43-
override fun serialize(dataFetcherResult: Any): String =
56+
override fun serialize(
57+
dataFetcherResult: Any,
58+
graphQLContext: GraphQLContext,
59+
locale: Locale,
60+
): String =
4461
runCatching {
4562
dataFetcherResult.toString()
4663
}.getOrElse {

graphql/src/main/kotlin/nl/nlportal/graphql/customtype/Long.kt

+20-3
Original file line numberDiff line numberDiff line change
@@ -15,23 +15,36 @@
1515
*/
1616
package nl.nlportal.graphql.customtype
1717

18+
import graphql.GraphQLContext
19+
import graphql.execution.CoercedVariables
1820
import graphql.language.StringValue
21+
import graphql.language.Value
1922
import graphql.schema.Coercing
2023
import graphql.schema.CoercingParseLiteralException
2124
import graphql.schema.CoercingParseValueException
2225
import graphql.schema.CoercingSerializeException
2326
import graphql.schema.GraphQLScalarType
2427
import java.math.BigDecimal
28+
import java.util.Locale
2529

2630
object LongCoercing : Coercing<Long, String> {
27-
override fun parseValue(input: Any): Long =
31+
override fun parseValue(
32+
input: Any,
33+
graphQLContext: GraphQLContext,
34+
locale: Locale,
35+
): Long =
2836
runCatching {
2937
BigDecimal(input as? String).longValueExact()
3038
}.getOrElse {
3139
throw CoercingParseValueException("Expected valid Long but was $input")
3240
}
3341

34-
override fun parseLiteral(input: Any): Long {
42+
override fun parseLiteral(
43+
input: Value<*>,
44+
variables: CoercedVariables,
45+
graphQLContext: GraphQLContext,
46+
locale: Locale,
47+
): Long {
3548
val inputValue = (input as? StringValue)?.value
3649
return runCatching {
3750
BigDecimal(inputValue).longValueExact()
@@ -40,7 +53,11 @@ object LongCoercing : Coercing<Long, String> {
4053
}
4154
}
4255

43-
override fun serialize(dataFetcherResult: Any): String =
56+
override fun serialize(
57+
dataFetcherResult: Any,
58+
graphQLContext: GraphQLContext,
59+
locale: Locale,
60+
): String =
4461
runCatching {
4562
dataFetcherResult.toString()
4663
}.getOrElse {

0 commit comments

Comments
 (0)