Optimize mindmap list query.

This commit is contained in:
Paulo Gustavo Veiga
2022-01-18 13:16:39 -08:00
parent f844692e66
commit 6307af005c
19 changed files with 252 additions and 288 deletions

View File

@@ -32,6 +32,7 @@ import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Calendar;
import java.util.List;
import java.util.Optional;
import java.util.Set;
@@ -68,9 +69,11 @@ public class MindmapServiceImpl
if ((map.isPublic() && role == CollaborationRole.VIEWER) || isAdmin(user)) {
result = true;
} else if (user != null) {
final Collaboration collaboration = map.findCollaboration(user);
if (collaboration != null) {
result = collaboration.hasPermissions(role);
final Optional<Collaboration> collaboration = map.findCollaboration(user);
if (collaboration .isPresent()) {
result = collaboration
.get()
.hasPermissions(role);
}
}
@@ -87,16 +90,6 @@ public class MindmapServiceImpl
mindmapManager.purgeHistory(mapId);
}
@Override
public void linkLabel(@NotNull Mindmap mindmap, @NotNull final Label label) {
mindmap.addLabel(label);
}
@Override
public void removeLabel(@NotNull Mindmap mindmap, @NotNull Label label) {
mindmap.removeLabel(label);
}
@Override
public Mindmap getMindmapByTitle(String title, User user) {
return mindmapManager.getMindmapByTitle(title, user);
@@ -108,6 +101,12 @@ public class MindmapServiceImpl
return mindmapManager.getMindmapById(id);
}
@NotNull
@Override
public List<Mindmap> findMindmapsByUser(@NotNull User user) {
return mindmapManager.findMindmapByUser(user);
}
@Override
public List<Collaboration> findCollaborations(@NotNull User user) {
return mindmapManager.findCollaboration(user.getId());
@@ -160,9 +159,9 @@ public class MindmapServiceImpl
if (mindmap.getCreator().identityEquality(user) || isAdmin(user)) {
mindmapManager.removeMindmap(mindmap);
} else {
final Collaboration collaboration = mindmap.findCollaboration(user);
if (collaboration != null) {
this.removeCollaboration(mindmap, collaboration);
final Optional<Collaboration> collaboration = mindmap.findCollaboration(user);
if (collaboration.isPresent()) {
this.removeCollaboration(mindmap, collaboration.get());
}
}
}