implemented display of wiki pages
Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
@@ -20,6 +20,7 @@ public class Constants {
|
||||
public static final String COMMENT = "comment";
|
||||
public static final String COMPANY = "company";
|
||||
public static final String COMPANY_ID = "company_id";
|
||||
public static final String CONTENT = "content";
|
||||
public static final String CONTENT_TYPE = "Content-Type";
|
||||
public static final String CUSTOMER_NUMBER_PREFIX = "customer_number_prefix";
|
||||
|
||||
@@ -179,5 +180,7 @@ public class Constants {
|
||||
public static final String UTF8 = UTF_8.displayName();
|
||||
|
||||
public static final String VALUE = "value";
|
||||
public static final String VERSION = "version";
|
||||
public static final String VERSIONS = "versions";
|
||||
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ public class Paths {
|
||||
public static final String LEGACY = "legacy";
|
||||
public static final String LIST = "list";
|
||||
public static final String LOGOUT = "logout";
|
||||
public static final String PAGE = "page";
|
||||
public static final String SEARCH = "search";
|
||||
public static final String SERVICE = "service";
|
||||
public static final String SETTINGS = "settings";
|
||||
|
||||
@@ -2,20 +2,57 @@ package de.srsoftware.umbrella.core.model;
|
||||
|
||||
import de.srsoftware.tools.Mappable;
|
||||
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static de.srsoftware.umbrella.core.Constants.ID;
|
||||
import static de.srsoftware.umbrella.core.Constants.*;
|
||||
import static de.srsoftware.umbrella.core.Util.markdown;
|
||||
|
||||
public class WikiPage implements Mappable {
|
||||
|
||||
private final long id;
|
||||
private final String id;
|
||||
private final int version;
|
||||
private final List<Integer> versions = new ArrayList<>();
|
||||
private final Map<Long,Member> members = new HashMap<>();
|
||||
private final String content;
|
||||
|
||||
public WikiPage(long id){
|
||||
public WikiPage(String id, int version, String content) {
|
||||
this.id = id;
|
||||
this.version = version;
|
||||
this.content = content;
|
||||
}
|
||||
|
||||
public String id(){
|
||||
return id;
|
||||
}
|
||||
|
||||
public Map<Long,Member> members(){
|
||||
return members;
|
||||
}
|
||||
|
||||
public static WikiPage of(ResultSet rs) throws SQLException {
|
||||
return new WikiPage(rs.getString(ID),rs.getInt(VERSION),rs.getString(CONTENT));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> toMap() {
|
||||
return Map.of(ID,id);
|
||||
var memberMap = new HashMap<Long,Map<String,Object>>();
|
||||
for (var entry : members.entrySet()) memberMap.put(entry.getKey(),entry.getValue().toMap());
|
||||
|
||||
return Map.of(
|
||||
ID,id,
|
||||
CONTENT,Map.of(SOURCE,content,RENDERED,markdown(content)),
|
||||
MEMBERS,memberMap,
|
||||
VERSION,version,
|
||||
VERSIONS,versions
|
||||
);
|
||||
}
|
||||
|
||||
public List<Integer> versions(){
|
||||
return versions;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user