Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit cd19d8f

Browse files
authored
Merge pull request #3783 from graphql-java/query-directive-documentation-example
2 parents cb61222 + 9880308 commit cd19d8f

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

src/test/groovy/readme/DirectivesExamples.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44
import graphql.ExecutionResult;
55
import graphql.GraphQL;
66
import graphql.Scalars;
7+
import graphql.execution.directives.QueryAppliedDirective;
8+
import graphql.execution.directives.QueryAppliedDirectiveArgument;
9+
import graphql.execution.directives.QueryDirectives;
710
import graphql.schema.DataFetcher;
811
import graphql.schema.DataFetcherFactories;
912
import graphql.schema.DataFetchingEnvironment;
@@ -20,6 +23,7 @@
2023
import java.time.LocalDateTime;
2124
import java.time.format.DateTimeFormatter;
2225
import java.util.HashMap;
26+
import java.util.List;
2327
import java.util.Map;
2428

2529
@SuppressWarnings({"Convert2Lambda", "unused", "ClassCanBeStatic"})
@@ -171,4 +175,26 @@ public static void main(String[] args) {
171175
// data['default'] == '08-10-1969'
172176
// data['usa'] == '10-08-1969'
173177
}
178+
179+
DataFetcher<?> cacheDataFetcher = new DataFetcher<Object>() {
180+
@Override
181+
public Object get(DataFetchingEnvironment env) {
182+
QueryDirectives queryDirectives = env.getQueryDirectives();
183+
List<QueryAppliedDirective> cacheDirectives = queryDirectives
184+
.getImmediateAppliedDirective("cache");
185+
// We get a List, because we could have
186+
// repeatable directives
187+
if (cacheDirectives.size() > 0) {
188+
QueryAppliedDirective cache = cacheDirectives.get(0);
189+
QueryAppliedDirectiveArgument maxAgeArgument
190+
= cache.getArgument("maxAge");
191+
int maxAge = maxAgeArgument.getValue();
192+
193+
// Now we know the max allowed cache time and
194+
// can make use of it
195+
// Your logic goes here
196+
}
197+
return "your logic here";
198+
}
199+
};
174200
}

0 commit comments

Comments
 (0)