refactored ModuleRegistry to singleton system

Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
2025-09-12 00:38:28 +02:00
parent e8e215f24c
commit bfe87f53a8
23 changed files with 140 additions and 163 deletions

View File

@@ -29,10 +29,11 @@ import org.json.JSONArray;
public class BookmarkApi extends BaseHandler implements BookmarkService {
private final BookmarkDb db;
public BookmarkApi(ModuleRegistry registry, Configuration config) {
super(registry);
public BookmarkApi(Configuration config) {
super();
var dbFile = config.get(CONFIG_DATABASE).orElseThrow(() -> missingFieldException(CONFIG_DATABASE));
db = new SqliteDb(connect(dbFile));
ModuleRegistry.add(this);
}
@Override
@@ -40,7 +41,7 @@ public class BookmarkApi extends BaseHandler implements BookmarkService {
addCors(ex);
try {
Optional<Token> token = SessionToken.from(ex).map(Token::of);
var user = userService().loadUser(token);
var user = ModuleRegistry.userService().loadUser(token);
if (user.isEmpty()) return unauthorized(ex);
var head = path.pop();
return switch (head) {
@@ -60,7 +61,7 @@ public class BookmarkApi extends BaseHandler implements BookmarkService {
private boolean getBookmark(UmbrellaUser user, long id, HttpExchange ex) throws IOException {
var bookmark = db.load(id,user.id());
tagService().getTags(BOOKMARK, id, user).forEach(bookmark.tags()::add);
ModuleRegistry.tagService().getTags(BOOKMARK, id, user).forEach(bookmark.tags()::add);
return sendContent(ex,bookmark);
}
@@ -69,7 +70,7 @@ public class BookmarkApi extends BaseHandler implements BookmarkService {
addCors(ex);
try {
Optional<Token> token = SessionToken.from(ex).map(Token::of);
var user = userService().loadUser(token);
var user = ModuleRegistry.userService().loadUser(token);
if (user.isEmpty()) return unauthorized(ex);
var head = path.pop();
return switch (head) {
@@ -117,7 +118,7 @@ public class BookmarkApi extends BaseHandler implements BookmarkService {
if (json.has(TAGS) && json.get(TAGS) instanceof JSONArray tagList){
var list = tagList.toList().stream().map(Object::toString).toList();
tagService().save(BOOKMARK,bookmark.urlId(), userList, list);
ModuleRegistry.tagService().save(BOOKMARK,bookmark.urlId(), userList, list);
}
return sendContent(ex,bookmark);
}