88import java .util .Collections ;
99import java .util .Map ;
1010
11- import com .google .gson .Gson ;
12- import com .google .gson .GsonBuilder ;
1311import graphql .ExecutionInput ;
1412import graphql .ExecutionResult ;
1513import graphql .GraphQL ;
1614import io .jooby .Context ;
1715import io .jooby .Route ;
1816import io .jooby .Router ;
17+ import io .jooby .json .JsonDecoder ;
1918
2019public class GraphQLHandler implements Route .Handler {
21- private static final Gson json = new GsonBuilder ().create ();
22-
2320 protected GraphQL graphQL ;
2421
2522 public GraphQLHandler (GraphQL graphQL ) {
@@ -36,14 +33,15 @@ protected final ExecutionInput newExecutionInput(Context ctx) {
3633 if (ctx .getMethod ().equals (Router .POST )) {
3734 request = ctx .body (GraphQLRequest .class );
3835 } else {
36+ var json = ctx .require (JsonDecoder .class );
3937 request = new GraphQLRequest ();
4038 String query = ctx .query ("query" ).value ();
4139 String operationName = ctx .query ("operationName" ).valueOrNull ();
4240 Map <String , Object > variables =
4341 ctx .query ("variables" )
4442 .toOptional ()
4543 .filter (string -> !string .equals ("{}" ))
46- .map (str -> json .<Map <String , Object >>fromJson (str , Map .class ))
44+ .map (str -> json .<Map <String , Object >>decode (str , Map .class ))
4745 .orElseGet (Collections ::emptyMap );
4846 request .setOperationName (operationName );
4947 request .setQuery (query );
0 commit comments