conveniance modification: added registry and getters for modules to BaseHandler

Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
2025-08-17 23:31:06 +02:00
parent ecb1ddac0f
commit a50a451b95
21 changed files with 260 additions and 198 deletions

View File

@@ -28,12 +28,11 @@ import java.util.stream.Collectors;
public class NoteModule extends BaseHandler implements NoteService {
private final NotesDb notesDb;
private final ModuleRegistry registry;
public NoteModule(ModuleRegistry registry, Configuration config) {
super(registry);
var dbFile = config.get(CONFIG_DATABASE).orElseThrow(() -> missingFieldException(CONFIG_DATABASE));
notesDb = new SqliteDb(connect(dbFile));
this.registry = registry.add(this);
}
@Override
@@ -46,7 +45,7 @@ public class NoteModule extends BaseHandler implements NoteService {
addCors(ex);
try {
Optional<Token> token = SessionToken.from(ex).map(Token::of);
var user = registry.userService().loadUser(token);
var user = userService().loadUser(token);
if (user.isEmpty()) return unauthorized(ex);
var head = path.pop();
if (head == null) throw unprocessable("Module missing in path.");
@@ -73,7 +72,7 @@ public class NoteModule extends BaseHandler implements NoteService {
public boolean doGet(Path path, HttpExchange ex) throws IOException {
addCors(ex);
try {
var user = registry.userService().refreshSession(ex);
var user = userService().refreshSession(ex);
if (user.isEmpty()) return unauthorized(ex);
var module = path.pop();
return switch (module){
@@ -105,7 +104,7 @@ public class NoteModule extends BaseHandler implements NoteService {
}
private Map<String, Object> addUsers(Map<Long, Note> notes) {
var authors = notes.values().stream().map(Note::authorId).distinct().map(registry.userService()::loadUser).collect(Collectors.toMap(UmbrellaUser::id,UmbrellaUser::toMap));
var authors = notes.values().stream().map(Note::authorId).distinct().map(userService()::loadUser).collect(Collectors.toMap(UmbrellaUser::id,UmbrellaUser::toMap));
return Map.of("notes",mapValues(notes),"authors",authors);
}
@@ -114,7 +113,7 @@ public class NoteModule extends BaseHandler implements NoteService {
addCors(ex);
try {
Optional<Token> token = SessionToken.from(ex).map(Token::of);
var user = registry.userService().loadUser(token);
var user = userService().loadUser(token);
if (user.isEmpty()) return unauthorized(ex);
var head = path.pop();
long noteId = Long.parseLong(head);
@@ -137,7 +136,7 @@ public class NoteModule extends BaseHandler implements NoteService {
addCors(ex);
try {
Optional<Token> token = SessionToken.from(ex).map(Token::of);
var user = registry.userService().loadUser(token);
var user = userService().loadUser(token);
if (user.isEmpty()) return unauthorized(ex);
var module = path.pop();
if (module == null) throw unprocessable("Module missing in path.");