mirror of
https://github.com/sismics/docs.git
synced 2024-11-16 19:27:56 +01:00
#83: Don't return non-visible tag parent
This commit is contained in:
parent
73133f5ba5
commit
c8f7fe15ef
@ -1,5 +1,6 @@
|
|||||||
package com.sismics.docs.rest.resource;
|
package com.sismics.docs.rest.resource;
|
||||||
|
|
||||||
|
import com.google.common.collect.Sets;
|
||||||
import com.sismics.docs.core.constant.PermType;
|
import com.sismics.docs.core.constant.PermType;
|
||||||
import com.sismics.docs.core.dao.jpa.AclDao;
|
import com.sismics.docs.core.dao.jpa.AclDao;
|
||||||
import com.sismics.docs.core.dao.jpa.TagDao;
|
import com.sismics.docs.core.dao.jpa.TagDao;
|
||||||
@ -17,10 +18,12 @@ import org.apache.commons.lang.StringUtils;
|
|||||||
import javax.json.Json;
|
import javax.json.Json;
|
||||||
import javax.json.JsonArrayBuilder;
|
import javax.json.JsonArrayBuilder;
|
||||||
import javax.json.JsonObjectBuilder;
|
import javax.json.JsonObjectBuilder;
|
||||||
|
import javax.json.JsonValue;
|
||||||
import javax.ws.rs.*;
|
import javax.ws.rs.*;
|
||||||
import javax.ws.rs.core.Response;
|
import javax.ws.rs.core.Response;
|
||||||
import java.text.MessageFormat;
|
import java.text.MessageFormat;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tag REST resources.
|
* Tag REST resources.
|
||||||
@ -43,13 +46,26 @@ public class TagResource extends BaseResource {
|
|||||||
|
|
||||||
TagDao tagDao = new TagDao();
|
TagDao tagDao = new TagDao();
|
||||||
List<TagDto> tagDtoList = tagDao.findByCriteria(new TagCriteria().setTargetIdList(getTargetIdList(null)), new SortCriteria(1, true));
|
List<TagDto> tagDtoList = tagDao.findByCriteria(new TagCriteria().setTargetIdList(getTargetIdList(null)), new SortCriteria(1, true));
|
||||||
|
|
||||||
|
// Extract tag IDs
|
||||||
|
Set<String> tagIdSet = Sets.newHashSet();
|
||||||
|
for (TagDto tagDto : tagDtoList) {
|
||||||
|
tagIdSet.add(tagDto.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
// Build the response
|
||||||
JsonArrayBuilder items = Json.createArrayBuilder();
|
JsonArrayBuilder items = Json.createArrayBuilder();
|
||||||
for (TagDto tagDto : tagDtoList) {
|
for (TagDto tagDto : tagDtoList) {
|
||||||
items.add(Json.createObjectBuilder()
|
JsonObjectBuilder item = Json.createObjectBuilder()
|
||||||
.add("id", tagDto.getId())
|
.add("id", tagDto.getId())
|
||||||
.add("name", tagDto.getName())
|
.add("name", tagDto.getName())
|
||||||
.add("color", tagDto.getColor())
|
.add("color", tagDto.getColor());
|
||||||
.add("parent", JsonUtil.nullable(tagDto.getParentId()))); // TODO Don't return the parent if it's not visible
|
if (tagIdSet.contains(tagDto.getParentId())) {
|
||||||
|
item.add("parent", tagDto.getParentId());
|
||||||
|
} else {
|
||||||
|
item.add("parent", JsonValue.NULL);
|
||||||
|
}
|
||||||
|
items.add(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
JsonObjectBuilder response = Json.createObjectBuilder()
|
JsonObjectBuilder response = Json.createObjectBuilder()
|
||||||
|
Loading…
Reference in New Issue
Block a user