public Object editorFetcher(DataFetchingEnvironment env) { GraphQLContext gc = env.getContext(); NodeContent content = env.getSource(); if (content == null) { return null; } User user = content.getContainer().getEditor(); return gc.requiresPerm(user, READ_PERM); }
@Override protected List<FilterField<NodeContent, ?>> getFilters() { List<FilterField<NodeContent, ?>> filters = new ArrayList<>(); filters.add(new MappedFilter<>("uuid", "Filters by uuid", StringFilter.filter(), content -> content.getNode().getUuid())); filters .add(new MappedFilter<>("schema", "Filters by schema", SchemaFilter.filter(context), content -> content.getNode().getSchemaContainer())); filters.add(new MappedFilter<>("created", "Filters by node creation timestamp", DateFilter.filter(), content -> content.getNode().getCreationTimestamp())); filters.add(new MappedFilter<>("creator", "Filters by creator", UserFilter.filter(), content -> content.getNode().getCreator())); filters.add(new MappedFilter<>("edited", "Filters by node update timestamp", DateFilter.filter(), content -> content.getContainer().getLastEditedTimestamp())); filters.add(new MappedFilter<>("editor", "Filters by editor", UserFilter.filter(), content -> content.getContainer().getEditor())); filters.add(new MappedFilter<>("fields", "Filters by fields", createAllFieldFilters(), Function.identity())); return filters; }
/** * Fetches nodes and applies filters * * @param env * the environment of the request * @return the filtered nodes */ protected DynamicStreamPageImpl<NodeContent> fetchFilteredNodes(DataFetchingEnvironment env) { GraphQLContext gc = env.getContext(); NodeRoot nodeRoot = gc.getProject().getNodeRoot(); List<String> languageTags = getLanguageArgument(env); Stream<NodeContent> contents = nodeRoot.findAllStream(gc) // Now lets try to load the containers for those found nodes - apply the language fallback .map(node -> new NodeContent(node, node.findVersion(gc, languageTags), languageTags)) // Filter nodes without a container .filter(content -> content.getContainer() != null); return applyNodeFilter(env, contents); }
.filter(item -> item.getContainer() != null); NodeGraphFieldContainer container = content.getContainer(); if (container == null) { return null; NodeGraphFieldContainer container = content.getContainer(); if (container == null) { return null; NodeGraphFieldContainer container = content.getContainer(); if (container == null) { return null; NodeGraphFieldContainer container = content.getContainer(); if (container == null) { return null; GraphQLContext gc = env.getContext(); NodeContent content = env.getSource(); NodeGraphFieldContainer container = content.getContainer(); if (container == null) { return null; NodeGraphFieldContainer container = content.getContainer(); if (container == null) { return null; return content.getContainer();