implemented easy-list

Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
2025-11-28 13:56:55 +01:00
parent 40c35bc9ed
commit b0550db5c2
13 changed files with 202 additions and 5 deletions

View File

@@ -1,8 +1,7 @@
/* © SRSoftware 2025 */
package de.srsoftware.umbrella.task;
import static de.srsoftware.tools.Optionals.is0;
import static de.srsoftware.tools.Optionals.isSet;
import static de.srsoftware.tools.Optionals.*;
import static de.srsoftware.umbrella.core.ConnectionProvider.connect;
import static de.srsoftware.umbrella.core.Constants.*;
import static de.srsoftware.umbrella.core.ModuleRegistry.*;
@@ -92,6 +91,7 @@ public class TaskModule extends BaseHandler implements TaskService {
var head = path.pop();
return switch (head) {
case PERMISSIONS -> getPermissionList(ex);
case TAGGED -> getTaggedTasks(path, user.get(), ex);
case null -> getUserTasks(user.get(), ex);
default -> {
var taskId = Long.parseLong(head);
@@ -179,6 +179,14 @@ public class TaskModule extends BaseHandler implements TaskService {
return sendContent(ex, map);
}
private boolean getTaggedTasks(Path path, UmbrellaUser user, HttpExchange ex) throws IOException {
var tag = path.toString();
var tags = tagService().getTagUses(user,tag);
var taskIds = nullable(tags.get(TASK)).orElseGet(ArrayList::new);
var tasks = taskDb.load(taskIds);
return sendContent(ex, mapValues(tasks));
}
private boolean getTask(HttpExchange ex, long taskId, UmbrellaUser user) throws IOException {
var task = loadMembers(taskDb.load(taskId));
if (!task.hasMember(user)) throw forbidden("You are not a member of {0}",task.name());