introduced ModuleRegistry to easy inter-module dependencies
This commit is contained in:
@@ -14,8 +14,8 @@ import de.srsoftware.configuration.Configuration;
|
||||
import de.srsoftware.tools.Path;
|
||||
import de.srsoftware.tools.SessionToken;
|
||||
import de.srsoftware.umbrella.core.BaseHandler;
|
||||
import de.srsoftware.umbrella.core.api.TagService;
|
||||
import de.srsoftware.umbrella.core.api.UserService;
|
||||
import de.srsoftware.umbrella.core.ModuleRegistry;
|
||||
import de.srsoftware.umbrella.core.api.BookmarkService;
|
||||
import de.srsoftware.umbrella.core.exceptions.UmbrellaException;
|
||||
import de.srsoftware.umbrella.core.model.Token;
|
||||
import de.srsoftware.umbrella.core.model.UmbrellaUser;
|
||||
@@ -24,16 +24,14 @@ import java.util.ArrayList;
|
||||
import java.util.Optional;
|
||||
import org.json.JSONArray;
|
||||
|
||||
public class BookmarkApi extends BaseHandler {
|
||||
public class BookmarkApi extends BaseHandler implements BookmarkService {
|
||||
private final BookmarkDb db;
|
||||
private final UserService users;
|
||||
private final TagService tags;
|
||||
private final ModuleRegistry registry;
|
||||
|
||||
public BookmarkApi(Configuration config, TagService tagService) {
|
||||
public BookmarkApi(ModuleRegistry registry, Configuration config) {
|
||||
var dbFile = config.get(CONFIG_DATABASE).orElseThrow(() -> missingFieldException(CONFIG_DATABASE));
|
||||
db = new SqliteDb(connect(dbFile));
|
||||
tags = tagService;
|
||||
users = tagService.userService();
|
||||
this.registry = registry.add(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -41,7 +39,7 @@ public class BookmarkApi extends BaseHandler {
|
||||
addCors(ex);
|
||||
try {
|
||||
Optional<Token> token = SessionToken.from(ex).map(Token::of);
|
||||
var user = users.loadUser(token);
|
||||
var user = registry.userService().loadUser(token);
|
||||
if (user.isEmpty()) return unauthorized(ex);
|
||||
var head = path.pop();
|
||||
return switch (head) {
|
||||
@@ -61,7 +59,7 @@ public class BookmarkApi extends BaseHandler {
|
||||
|
||||
private boolean getBookmark(UmbrellaUser user, long id, HttpExchange ex) throws IOException {
|
||||
var bookmark = db.load(id,user.id());
|
||||
tags.getTags(BOOKMARK, id, user).forEach(bookmark.tags()::add);
|
||||
registry.tagService().getTags(BOOKMARK, id, user).forEach(bookmark.tags()::add);
|
||||
return sendContent(ex,bookmark);
|
||||
}
|
||||
|
||||
@@ -70,7 +68,7 @@ public class BookmarkApi extends BaseHandler {
|
||||
addCors(ex);
|
||||
try {
|
||||
Optional<Token> token = SessionToken.from(ex).map(Token::of);
|
||||
var user = users.loadUser(token);
|
||||
var user = registry.userService().loadUser(token);
|
||||
if (user.isEmpty()) return unauthorized(ex);
|
||||
var head = path.pop();
|
||||
return switch (head) {
|
||||
@@ -117,7 +115,7 @@ public class BookmarkApi extends BaseHandler {
|
||||
|
||||
if (json.has(TAGS) && json.get(TAGS) instanceof JSONArray tagList){
|
||||
var list = tagList.toList().stream().map(Object::toString).toList();
|
||||
tags.save(BOOKMARK,bookmark.urlId(), userList, list);
|
||||
registry.tagService().save(BOOKMARK,bookmark.urlId(), userList, list);
|
||||
}
|
||||
return sendContent(ex,bookmark);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user