Skip to content

Instantly share code, notes, and snippets.

View nwillc's full-sized avatar

Nwillc nwillc

View GitHub Profile
var categoryGQL = new Graphql("v1/graphql", "{ categories { key name }}");
categoryGQL.execute((response) => loadCategories(response.data.categories));
var Graphql = function (url, query) {
"use strict";
var _this = this;
this.url = url;
this.query = query;
this.variables = {};
this.toString = function () {
return JSON.stringify(_this);
};
return newObject()
.name("mutation")
.field(newFieldDefinition()
.name("category")
.type(new GraphQLTypeReference("category"))
.argument(newArgument()
.name("key")
.type(new GraphQLNonNull(GraphQLString))
.build())
.argument(newArgument()
return newObject()
.name("query")
.field(newFieldDefinition()
.name("category")
.type(category)
.argument(newArgument()
.name("key")
.type(new GraphQLNonNull(GraphQLString))
.build())
.dataFetcher(environment -> categoryDao.findOne(environment.getArgument("key")).orElse(null))
GraphQLObjectType category = newObject()
.name("category")
.field(newFieldDefinition()
.name("key")
.type(GraphQLString)
.build())
.field(newFieldDefinition()
.name("name")
.type(GraphQLString)
.build())
public class Category {
private String name;
private String key;
/* Constructors, Gettters, Setters */
}
{
"query": "{ categories{ key name }}",
"variables": {}
}
private Map<String, Object> graphql(Request request,
Response response) {
Map<String, Object> payload;
payload = getMapper().readValue(request.body(), Map.class);
Map<String,Object> variables =
(Map<String, Object>) payload.get("variables");
ExecutionResult executionResult =
graphql.execute(payload.get("query").toString(), null, null, variables);
Map<String, Object> result = new LinkedHashMap<>();
if (executionResult.getErrors().size() > 0) {
@nwillc
nwillc / bp3_graphql_server.java
Created October 13, 2016 02:37
Attaching graphql-java to sparkjava
private Map<String, Object> graphql(Request request, Response response) {
Map<String, Object> payload;
payload = getMapper().readValue(request.body(), Map.class);
Map<String,Object> variables = (Map<String, Object>) payload.get("variables");
ExecutionResult executionResult = graphql.execute(payload.get("query").toString(), null, null, variables);
Map<String, Object> result = new LinkedHashMap<>();
if (executionResult.getErrors().size() > 0) {
result.put("errors", executionResult.getErrors());
}
result.put("data", executionResult.getData());
final Extractor<Bean> extractor = factory
.add(Bean::setSomeLong, ResultSet::getLong, 1)
.add(Been::setFName, ResultSet::getString, "fname")
.factory(Bean::new)
.getExtractor();