started to implement TaskEvent methods

Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
2026-01-19 09:05:44 +01:00
parent d9f88af6b7
commit be8f21c734

View File

@@ -2,13 +2,17 @@
package de.srsoftware.umbrella.messagebus.events;
import static de.srsoftware.umbrella.core.constants.Field.OBJECT;
import static de.srsoftware.umbrella.core.constants.Field.USER;
import static de.srsoftware.umbrella.core.ModuleRegistry.projectService;
import static de.srsoftware.umbrella.core.ModuleRegistry.taskService;
import static de.srsoftware.umbrella.core.constants.Field.*;
import static de.srsoftware.umbrella.core.constants.Module.TASK;
import static de.srsoftware.umbrella.core.model.Translatable.t;
import de.srsoftware.umbrella.core.ModuleRegistry;
import de.srsoftware.umbrella.core.constants.Field;
import de.srsoftware.umbrella.core.model.*;
import java.util.Collection;
import java.util.List;
import java.util.Map;
@@ -28,8 +32,24 @@ public class TaskEvent extends Event<Task>{
@Override
public Translatable describe() {
return diff().map(UnTranslatable::new).map(Translatable.class::cast)
.orElseGet(() -> t("[TODO: {object}.describe]",OBJECT,this.getClass().getSimpleName()));
return switch (eventType()){
case CREATE -> {
String parentName = null;
var pid = payload().parentTaskId();
if (pid != null) {
var parent = taskService().load(List.of(pid)).get(pid);
if (parent != null) parentName = parent.name();
}
if (parentName == null){
var project = projectService().load(payload().projectId());
if (project != null) parentName = project.name();
}
if (parentName == null) parentName = "?";
yield t("'{task}' has been added to '{object}':\n\n{body}", Field.TASK, payload().name(), OBJECT, parentName, BODY, payload().description());
}
case DELETE -> t("The task '{task}' has been deleted by {user}",Field.TASK, payload().name(), USER, initiator().name());
case UPDATE -> t("Changes in task '{task}':\n\n{body}",Field.TASK,payload().name(),BODY,diff().orElse(""));
};
}
@Override
@@ -42,5 +62,9 @@ public class TaskEvent extends Event<Task>{
@Override
public Translatable subject() {
return t("{user} edited {object}",USER,initiator(),OBJECT,payload());
return switch (eventType()){
case CREATE -> t("The task '{task}' has been created", Field.TASK, payload().name());
case DELETE -> t("The task '{task}' has been deleted",Field.TASK, payload().name());
case UPDATE -> t("Task '{task} was edited",Field.TASK,payload().name());
};
}}