started to implement TaskEvent methods
Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
@@ -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());
|
||||
};
|
||||
}}
|
||||
|
||||
Reference in New Issue
Block a user