implemented storage of new wiki page version, prepared page display for several versions
Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
@@ -12,6 +12,7 @@ import java.sql.SQLException;
|
||||
import java.util.*;
|
||||
|
||||
import static de.srsoftware.tools.jdbc.Query.SelectQuery.ALL;
|
||||
import static de.srsoftware.tools.jdbc.Query.insertInto;
|
||||
import static de.srsoftware.tools.jdbc.Query.select;
|
||||
import static de.srsoftware.umbrella.core.Constants.*;
|
||||
import static de.srsoftware.umbrella.core.Constants.ERROR_FAILED_CREATE_TABLE;
|
||||
@@ -81,11 +82,11 @@ public class SqliteDb extends BaseDb implements WikiDb {
|
||||
@Override
|
||||
public WikiPage load(String id) {
|
||||
try {
|
||||
var rs = select(ALL).from(TABLE_PAGES).where(ID,Condition.equal(id)).sort(VERSION).limit(1).exec(db);
|
||||
var rs = select(ALL).from(TABLE_PAGES).where(ID,Condition.equal(id)).sort(VERSION+" DESC").limit(1).exec(db);
|
||||
WikiPage page = null;
|
||||
if (rs.next()) page = WikiPage.of(rs);
|
||||
rs.close();
|
||||
if (page == null) throw notFound("Failed to load wiki page \"{0}\" from databse!",id);
|
||||
if (page == null) throw notFound("Failed to load wiki page \"{0}\" from database!",id);
|
||||
rs = select(VERSION).from(TABLE_PAGES).where(ID,Condition.equal(id)).sort(VERSION).exec(db);
|
||||
var versions = page.versions();
|
||||
while (rs.next()) versions.add(rs.getInt(VERSION));
|
||||
@@ -118,6 +119,11 @@ public class SqliteDb extends BaseDb implements WikiDb {
|
||||
|
||||
@Override
|
||||
public WikiPage save(WikiPage page) {
|
||||
throw UmbrellaException.unprocessable("save(Wikipage) not implemented");
|
||||
try {
|
||||
insertInto(TABLE_PAGES,ID,VERSION,CONTENT).values(page.id(),page.version(),page.content()).execute(db).close();
|
||||
return page;
|
||||
} catch (SQLException e) {
|
||||
throw databaseException("Failed to write wiki page \"{0}\" to database",page.id(),e);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user