File tree Expand file tree Collapse file tree 1 file changed +17
-8
lines changed Expand file tree Collapse file tree 1 file changed +17
-8
lines changed Original file line number Diff line number Diff line change @@ -36,14 +36,23 @@ public class UppercaseDirective implements SchemaDirectiveWiring {
36
36
@Override
37
37
public GraphQLFieldDefinition onField(SchemaDirectiveWiringEnvironment<GraphQLFieldDefinition> env) {
38
38
GraphQLFieldDefinition field = env.getElement();
39
- DataFetcher dataFetcher = DataFetcherFactories.wrapDataFetcher(field.getDataFetcher(), {
40
- dataFetchingEnvironment, value ->
41
- if (value == null) {
42
- return null
43
- }
44
- return ((String) value).toUpperCase()
45
- })
46
- return field.transform({ builder -> builder.dataFetcher(dataFetcher) });
39
+ GraphQLFieldsContainer parentType = env.getFieldsContainer();
40
+
41
+ // build a data fetcher that transforms the given value to uppercase
42
+ DataFetcher originalFetcher = env.getCodeRegistry().getDataFetcher(parentType, field);
43
+ DataFetcher dataFetcher =
44
+ DataFetcherFactories.wrapDataFetcher(
45
+ originalFetcher,
46
+ ((dataFetchingEnvironment, value) -> {
47
+ if (value instanceof String) {
48
+ return ((String) value).toUpperCase();
49
+ }
50
+ return value;
51
+ }));
52
+
53
+ // now change the field definition to use the new uppercase data fetcher
54
+ env.getCodeRegistry().dataFetcher(parentType, field, dataFetcher);
55
+ return field;
47
56
}
48
57
}
49
58
```
You can’t perform that action at this time.
0 commit comments