public String getLaunchDate(DataFetchingEnvironment environment) { String dateFormat = environment.getArgument("dateFormat"); return yodaTimeFormatter(launchDate,dateFormat); } }
@Override public Publisher<StockInfo> get(DataFetchingEnvironment environment) { String stockCodeArg = environment.getArgument("stockCode"); return buildPublisherForStockCode(stockCodeArg); } };
@Override public Object get(DataFetchingEnvironment environment) { return fetchUserFromDatabase(environment.getArgument("userId")); } };
@Override public Object get(DataFetchingEnvironment env) { String matchArg = env.getArgument("match"); List<ProductInfo> productInfo = getMatchingProducts(matchArg); List<ProductCostInfo> productCostInfo = getProductCosts(productInfo); List<ProductTaxInfo> productTaxInfo = getProductTax(productInfo); return mapDataTogether(productInfo, productCostInfo, productTaxInfo); } };
String getDefaultMethodUsesDataFetchingEnvironment(DataFetchingEnvironment dataFetchingEnvironment) { return dataFetchingEnvironment.getArgument("argument2"); } }
public String getMethodUsesDataFetchingEnvironment(DataFetchingEnvironment dataFetchingEnvironment) { return dataFetchingEnvironment.getArgument("argument1"); }
@Override public Object get(DataFetchingEnvironment environment) { CompletableFuture<User> userPromise = CompletableFuture.supplyAsync( () -> { return fetchUserFromDatabase(environment.getArgument("userId")); }); return userPromise; } };
@Override public Object get(DataFetchingEnvironment environment) { UserContext userCtx = environment.getContext(); Long businessObjId = environment.getArgument("businessObjId"); return invokeBusinessLayerMethod(userCtx, businessObjId); } };
private void succinctAsyncDataFetcher() { //::FigureF DataFetcher userDataFetcher = environment -> CompletableFuture.supplyAsync( () -> fetchUserFromDatabase(environment.getArgument("userId"))); //::/FigureF }
@Override public List<ProductDTO> get(DataFetchingEnvironment environment) { DatabaseSecurityCtx ctx = environment.getContext(); List<ProductDTO> products; String match = environment.getArgument("match"); if (match != null) { products = fetchProductsFromDatabaseWithMatching(ctx, match); } else { products = fetchAllProductsFromDatabase(ctx); } return products; } };
ConnectionCursor lastPresliceCursor = edges.get(edges.size() - 1).getCursor(); int afterOffset = getOffsetFromCursor(environment.getArgument("after"), -1); int begin = Math.max(afterOffset, -1) + 1; int beforeOffset = getOffsetFromCursor(environment.getArgument("before"), edges.size()); int end = Math.min(beforeOffset, edges.size()); Integer first = environment.getArgument("first"); Integer last = environment.getArgument("last");
@Override @Batched @SuppressWarnings("unchecked") public Object get(DataFetchingEnvironment environment) { increment(callCounts, CallType.APPEND); List<String> retVal = new ArrayList<>(); for (String s : (List<String>) environment.getSource()) { retVal.add(s + environment.getArgument("text")); } // make it an Iterable thing not just List return new ArrayDeque<>(retVal); } });
@Override public Object get(DataFetchingEnvironment environment) { // // Don't DO THIS! // return CompletableFuture.supplyAsync(() -> { String argId = environment.getArgument("id"); DataLoader<String, Object> characterLoader = environment.getDataLoader("characterLoader"); return characterLoader.load(argId); }); } };
@Override public Object get(DataFetchingEnvironment environment) { String argId = environment.getArgument("id"); Object source = environment.getSource(); // // you can pass per load call contexts // return characterDataLoader.load(argId, source); } };
@Override public Object get(DataFetchingEnvironment env) { String userId = env.getArgument("userId"); DataFetchingFieldSelectionSet selectionSet = env.getSelectionSet(); if (selectionSet.contains("user/*")) { return getUserAndTheirFriends(userId); } else { return getUser(userId); } } };
@Override public Object get(DataFetchingEnvironment environment) { // // This is OK // String argId = environment.getArgument("id"); DataLoader<String, Object> characterLoader = environment.getDataLoader("characterLoader"); return characterLoader.load(argId); } };
@Batched @Override @SuppressWarnings("unchecked") public Object get(DataFetchingEnvironment environment) { increment(callCounts, CallType.SPLIT); String regex = environment.getArgument("regex"); List<String> sources = environment.getSource(); List<List<String>> retVal = new ArrayList<>(); if (regex == null) { for (String ignored : sources) { retVal.add(null); } return retVal; } for (String source : sources) { List<String> retItem = new ArrayList<>(); for (String str : source.split(regex)) { if (str.isEmpty()) { retItem.add(null); } else { retItem.add(str); } } retVal.add(retItem); } return retVal; } });
@Override public Review get(DataFetchingEnvironment environment) { // // The graphql specification dictates that input object arguments MUST // be maps. You can convert them to POJOs inside the data fetcher if that // suits your code better // // See http://facebook.github.io/graphql/October2016/#sec-Input-Objects // Map<String, Object> episodeInputMap = environment.getArgument("episode"); Map<String, Object> reviewInputMap = environment.getArgument("review"); // // in this case we have type safe Java objects to call our backing code with // EpisodeInput episodeInput = EpisodeInput.fromMap(episodeInputMap); ReviewInput reviewInput = ReviewInput.fromMap(reviewInputMap); // make a call to your store to mutate your database Review updatedReview = reviewStore().update(episodeInput, reviewInput); // this returns a new view of the data return updatedReview; } };
.type(GraphQLInt) .dataFetcher(environment -> { Integer initialValue = environment.getArgument("initialValue"); Map<String, Object> filter = environment.getArgument("filter"); if (filter != null) { if (filter.containsKey("even")) {
DateTimeFormatter dateTimeFormatter = buildFormatter(dataFetchingEnvironment.getArgument("format")); if (value instanceof LocalDateTime) { return dateTimeFormatter.format((LocalDateTime) value);