All Downloads are FREE. Search and download functionalities are using the official Maven repository.

graphql.kickstart.execution.GraphQLRequest Maven / Gradle / Ivy

package graphql.kickstart.execution;

import static graphql.kickstart.execution.OperationNameExtractor.extractOperationName;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import graphql.introspection.IntrospectionQuery;
import java.util.HashMap;
import java.util.Map;

/** @author Andrew Potter */
@JsonIgnoreProperties(ignoreUnknown = true)
public class GraphQLRequest {

  private String query;

  @JsonDeserialize(using = VariablesDeserializer.class)
  private Map variables = new HashMap<>();

  @JsonDeserialize(using = ExtensionsDeserializer.class)
  private Map extensions = new HashMap<>();

  private String operationName;

  public GraphQLRequest() {}

  public GraphQLRequest(
      String query,
      Map variables,
      Map extensions,
      String operationName) {
    this.query = query;
    this.operationName = operationName;
    if (extensions != null) {
      this.extensions = extensions;
    }
    if (variables != null) {
      this.variables = variables;
    }
  }

  public static GraphQLRequest createIntrospectionRequest() {
    return new GraphQLRequest(
        IntrospectionQuery.INTROSPECTION_QUERY,
        new HashMap<>(),
        new HashMap<>(),
        "IntrospectionQuery");
  }

  public static GraphQLRequest createQueryOnlyRequest(String query) {
    return new GraphQLRequest(query, new HashMap<>(), new HashMap<>(), null);
  }

  public String getQuery() {
    return query;
  }

  public void setQuery(String query) {
    this.query = query;
  }

  public Map getVariables() {
    return variables;
  }

  public void setVariables(Map variables) {
    if (variables != null) {
      this.variables = variables;
    }
  }

  public Map getExtensions() {
    return extensions;
  }

  public void setExtensions(Map extensions) {
    if (extensions != null) {
      this.extensions = extensions;
    }
  }

  public String getOperationName() {
    return extractOperationName(query, operationName, null);
  }

  public void setOperationName(String operationName) {
    this.operationName = operationName;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy