implemented restoring of wiki tags from tag and bookmark database

This commit is contained in:
2025-09-12 01:56:28 +02:00
parent f13da92b48
commit 4bc717756f
9 changed files with 74 additions and 5 deletions

View File

@@ -23,6 +23,7 @@ import de.srsoftware.umbrella.core.model.UmbrellaUser;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.util.Optional;
import org.json.JSONArray;
@@ -85,6 +86,11 @@ public class BookmarkApi extends BaseHandler implements BookmarkService {
}
}
@Override
public Map<Long, String> find(String key) {
return db.findUrls(key);
}
private boolean getUserBookmarks(UmbrellaUser user, HttpExchange ex) throws IOException {
var param = queryParam(ex);
long offset = switch (param.get(OFFSET)){
@@ -128,7 +134,7 @@ public class BookmarkApi extends BaseHandler implements BookmarkService {
if (!(json.has(KEY) && json.get(KEY) instanceof String key)) throw missingFieldException(KEY);
var keys = Arrays.asList(key.split(" "));
var fulltext = json.has(FULLTEXT) && json.get(FULLTEXT) instanceof Boolean val && val;
var bookmarks = db.find(user.id(),keys);
var bookmarks = db.findUrls(user.id(),keys);
return sendContent(ex,mapValues(bookmarks));
}
}

View File

@@ -7,7 +7,9 @@ import java.util.Collection;
import java.util.Map;
public interface BookmarkDb {
Map<Long, Bookmark> find(long userId, Collection<String> key);
Map<Long, Bookmark> findUrls(long userId, Collection<String> key);
Map<Long, String> findUrls(String key);
Map<Long, Bookmark> list(long userId, Long offset, Long limit);

View File

@@ -70,7 +70,20 @@ CREATE TABLE IF NOT EXISTS {0} (
}
@Override
public Map<Long, Bookmark> find(long userId, Collection<String> keys) {
public Map<Long, String> findUrls(String key) {
try {
var map = new HashMap<Long,String>();
var rs = select(ALL).from(TABLE_URLS).where(URL, like(key)).exec(db);
while (rs.next()) map.put(rs.getLong(ID),rs.getString(URL));
rs.close();;
return map;
} catch (SQLException e) {
throw new UmbrellaException("Failed to load bookmark list");
}
}
@Override
public Map<Long, Bookmark> findUrls(long userId, Collection<String> keys) {
try {
var map = new HashMap<Long,Bookmark>();
var query = select(ALL).from(TABLE_URL_COMMENTS).leftJoin(URL_ID,TABLE_URLS,ID)