working on loading journal entries

Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
2026-07-29 08:48:13 +02:00
parent 51a9f9272e
commit 6fe8cb4b1d
4 changed files with 59 additions and 20 deletions
@@ -3,6 +3,7 @@ package de.srsoftware.umbrella.journal;
import de.srsoftware.umbrella.core.model.UmbrellaUser;
import de.srsoftware.umbrella.messagebus.events.Event;
import de.srsoftware.umbrella.messagebus.events.JournalEntry;
import java.util.HashMap;
import java.util.List;
@@ -10,5 +11,5 @@ import java.util.List;
public interface JournalDb {
void logEvent(Event<?> event);
List<Event<?>> list(String module, long entityId, HashMap<Long, UmbrellaUser> userLoader);
List<JournalEntry> list(String module, long entityId, HashMap<Long, UmbrellaUser> userLoader);
}
@@ -55,7 +55,8 @@ public class JournalModule extends BaseHandler implements EventListener {
if (head == null) throw missingField(Field.ENTITY_ID);
try {
var entityId = Long.parseLong(head);
journalDb.list(module, entityId, userService().loader());
var entries = journalDb.list(module, entityId, userService().loader());
return sendContent(ex,entries); // TODO: map entries
} catch (NumberFormatException e) {
throw invalidField(Field.ENTITY_ID, Text.NUMBER);
}
@@ -18,6 +18,7 @@ import de.srsoftware.umbrella.core.constants.Module;
import de.srsoftware.umbrella.core.constants.Text;
import de.srsoftware.umbrella.core.model.UmbrellaUser;
import de.srsoftware.umbrella.messagebus.events.Event;
import de.srsoftware.umbrella.messagebus.events.JournalEntry;
import de.srsoftware.umbrella.messagebus.events.TaskEvent;
import java.sql.Connection;
@@ -64,30 +65,16 @@ public class SqliteDb extends BaseDb implements JournalDb{
}
@Override
public List<Event<?>> list(String module, long entityId, HashMap<Long, UmbrellaUser> userLoader) {
public List<JournalEntry> list(String module, long entityId, HashMap<Long, UmbrellaUser> userLoader) {
try {
var rs = select(ALL).from(TABLE_JOURNAL).where(MODULE, equal(module)).where(ENTITY_ID,equal(entityId)).exec(db);
var list = new ArrayList<Event<?>>();
while (rs.next()){
var user = userLoader.get(rs.getLong(USER_ID));
var id = rs.getLong(Field.ID);
var timestamp = rs.getLong(TIMESTAMP);
var action = rs.getString(ACTION);
var descr = rs.getString(DESCRIPTION);
var event = switch (module){
case Module.TASK -> new TaskEvent(user,)
default -> throw notImplemented("No handler for "+module+" events!");
};
list.add(event);
}
var list = new ArrayList<JournalEntry>();
while (rs.next()) list.add(JournalEntry.of(rs));
rs.close();
return list;
} catch (SQLException e) {
throw failedToLoadObject(Text.EVENT_LIST);
};
}
}
@Override