Skip to content

Instantly share code, notes, and snippets.

View nwillc's full-sized avatar

Nwillc nwillc

View GitHub Profile
public final class ExtractorFactory<B> {
/* ... */
public <T> ExtractorFactory<B> add(BiConsumer<B, T> setter,
ThrowingBiFunction<ResultSet, Integer, T> getter,
Integer index) { /* ... */ }
public <T> ExtractorFactory<B> add(BiConsumer<B, T> setter,
ThrowingBiFunction<ResultSet, String, T> getter,
String column) { /* ... */ }
}
final Extractor<Bean> extractor = factory
.add(Bean::setSomeLong, ResultSet::getLong, 1)
.add(Been::setFName, ResultSet::getString, "fname")
.factory(Bean::new)
.getExtractor();
@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());
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) {
{
"query": "{ categories{ key name }}",
"variables": {}
}
public class Category {
private String name;
private String key;
/* Constructors, Gettters, Setters */
}
GraphQLObjectType category = newObject()
.name("category")
.field(newFieldDefinition()
.name("key")
.type(GraphQLString)
.build())
.field(newFieldDefinition()
.name("name")
.type(GraphQLString)
.build())
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))
return newObject()
.name("mutation")
.field(newFieldDefinition()
.name("category")
.type(new GraphQLTypeReference("category"))
.argument(newArgument()
.name("key")
.type(new GraphQLNonNull(GraphQLString))
.build())
.argument(newArgument()
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);
};