/** * Add the tag family fields to the document. * * @param document * @param tagFamily */ public void addTagFamily(JsonObject document, TagFamily tagFamily) { JsonObject info = new JsonObject(); info.put(NAME_KEY, tagFamily.getName()); info.put(UUID_KEY, tagFamily.getUuid()); document.put("tagFamily", info); }
public static TagFamily mockTagFamily(String name, User user, Project project) { TagFamily tagFamily = mock(TagFamily.class); when(tagFamily.getCreator()).thenReturn(user); when(tagFamily.getCreationTimestamp()).thenReturn(TIMESTAMP_OLD); when(tagFamily.getEditor()).thenReturn(user); when(tagFamily.getLastEditedTimestamp()).thenReturn(TIMESTAMP_NEW); when(tagFamily.getName()).thenReturn(name); when(tagFamily.getUuid()).thenReturn(TAGFAMILY_FUELS_UUID); when(tagFamily.getProject()).thenReturn(project); when(tagFamily.getRolesWithPerm(GraphPermission.READ_PERM)).thenReturn(createEmptyTraversal()); when(tagFamily.getElementVersion()).thenReturn(UUID_2); return tagFamily; }
/** * Transforms tags grouped by tag families * * @param document * @param tags */ private void addTagFamilies(JsonObject document, Iterable<? extends Tag> tags) { JsonObject familiesObject = new JsonObject(); for (Tag tag : tags) { TagFamily family = tag.getTagFamily(); JsonObject familyObject = familiesObject.getJsonObject(family.getName()); if (familyObject == null) { familyObject = new JsonObject(); familyObject.put("uuid", family.getUuid()); familyObject.put("tags", new JsonArray()); familiesObject.put(family.getName(), familyObject); } familyObject.getJsonArray("tags").add(new JsonObject().put("name", tag.getName()).put("uuid", tag.getUuid())); } document.put("tagFamilies", familiesObject); }
/** * Transform the role to the document which can be stored in ES. * * @param tagFamily * @return */ @Override public JsonObject toDocument(TagFamily tagFamily) { JsonObject document = new JsonObject(); document.put(NAME_KEY, tagFamily.getName()); addBasicReferences(document, tagFamily); addTags(document, tagFamily.findAll()); addProject(document, tagFamily.getProject()); addPermissionInfo(document, tagFamily); document.put(MappingHelper.VERSION_KEY, generateVersion(tagFamily)); return document; }
batch.store(tagFamily, false); } else { throw error(FORBIDDEN, "tag_error_missing_perm_on_tag_family", tagFamily.getName(), tagFamily.getUuid(), tagReference .getName());
public GraphQLObjectType createType() { Builder tagFamilyType = newObject().name(TAG_FAMILY_TYPE_NAME); interfaceTypeProvider.addCommonFields(tagFamilyType); // .name tagFamilyType.field(newFieldDefinition().name("name").type(GraphQLString).dataFetcher((env) -> { TagFamily tagFamily = env.getSource(); return tagFamily.getName(); })); // .tag tagFamilyType.field( newFieldDefinition().name("tag").description("Load a specific tag by name or uuid.").argument(createUuidArg("Uuid of the tag.")) .argument(createNameArg("Name of the tag.")).type(new GraphQLTypeReference(TAG_TYPE_NAME)).dataFetcher(env -> { TagFamily tagFamily = env.getSource(); return handleUuidNameArgs(env, tagFamily); }).build()); // .tags tagFamilyType.field(newPagingFieldWithFetcher("tags", "Tags which are assigned to the tagfamily.", (env) -> { GraphQLContext gc = env.getContext(); TagFamily tagFamily = env.getSource(); PagingParameters pagingInfo = getPagingInfo(env); return tagFamily.getTags(gc.getUser(), pagingInfo); }, TAG_PAGE_TYPE_NAME)); return tagFamilyType.build(); }