split db and bolt to store interface

This commit is contained in:
ston1th 2018-09-11 14:50:53 +02:00
commit 7e77fd7d27
14 changed files with 419 additions and 545 deletions

View file

@ -3,6 +3,8 @@
package server
import (
"git.giftfish.de/ston1th/gowiki/pkg/core"
"git.giftfish.de/ston1th/gowiki/pkg/log"
"html/template"
"net/http"
"time"
@ -97,13 +99,13 @@ func loginHandler(ctx *Context) {
ctx.Exec()
return
}
err := ctx.Srv.BS.Login(user, password)
err := ctx.Srv.DB.Login(user, password)
if err != nil {
ctx.Data.Msg = err.Error()
ctx.Exec()
return
}
ctx.SetUdata(user, ctx.Srv.BS.UserIsAdmin(user))
ctx.SetUdata(user, ctx.Srv.DB.UserIsAdmin(user))
ctx.Redirect("/wiki/Index", 302)
}
}
@ -129,7 +131,7 @@ func searchHandler(ctx *Context) {
return
}
res, err := ctx.Srv.Index.Search(!ctx.LoggedOn(), search)
res, err := ctx.Srv.DB.Index.Search(search)
if err != nil {
ctx.Data.Msg = err.Error()
ctx.Exec()
@ -148,7 +150,7 @@ func allHandler(ctx *Context) {
BodyTitle: "All Articles",
Admin: ctx.GetAdmin(),
}
all, err := ctx.Srv.Index.GetAll(!ctx.LoggedOn())
all, err := ctx.Srv.DB.Index.GetAll(!ctx.LoggedOn())
if err != nil {
ctx.Data.Msg = err.Error()
}
@ -171,11 +173,11 @@ func wikiNewHandler(ctx *Context) {
pub = true
}
submit := ctx.Form("submit")
art := Article{
p := core.Page{
Title: title,
MD: text,
}
ctx.Data.Data = art
ctx.Data.Data = p
if !ctx.CheckToken(nil) {
return
}
@ -184,7 +186,7 @@ func wikiNewHandler(ctx *Context) {
ctx.Exec()
return
}
newTitle, err := ctx.Srv.Index.Index(title, text, ctx.GetUser(), pub)
newTitle, err := ctx.Srv.DB.Index.Index(title, text, ctx.GetUser(), pub)
if err != nil {
ctx.Data.Msg = err.Error()
ctx.Exec()
@ -202,7 +204,7 @@ func wikiHandler(ctx *Context) {
Admin: ctx.GetAdmin(),
}
title := ctx.Var("title")
art, err := ctx.Srv.Index.Get(!ctx.LoggedOn(), title)
art, err := ctx.Srv.DB.Index.Get(!ctx.LoggedOn(), title)
if err != nil {
ctx.NotFound()
return
@ -227,7 +229,7 @@ func wikiEditHandler(ctx *Context) {
title := ctx.Var("title")
switch ctx.Method() {
case "GET":
art, err := ctx.Srv.Index.Get(!ctx.LoggedOn(), title)
art, err := ctx.Srv.DB.Index.Get(!ctx.LoggedOn(), title)
if err != nil {
ctx.NotFound()
return
@ -236,7 +238,6 @@ func wikiEditHandler(ctx *Context) {
ctx.Data.Data = art
ctx.Data.Title = art.Title
ctx.Data.BodyTitle = art.Title
ctx.Data.Editor = ctx.Srv.Editors.Set(title, ctx.GetUser())
ctx.Exec()
case "POST":
ftitle := ctx.Form("title")
@ -247,7 +248,7 @@ func wikiEditHandler(ctx *Context) {
pub = true
}
submit := ctx.Form("submit")
ctx.Data.Data = Article{
ctx.Data.Data = core.Page{
Title: ftitle,
LinkTitle: title,
MD: text,
@ -258,17 +259,12 @@ func wikiEditHandler(ctx *Context) {
if !ctx.CheckToken(nil) {
return
}
if submit == "Back" {
ctx.Srv.Editors.RemoveEditor(title, ctx.GetUser())
ctx.Redirect("/wiki/"+title, 302)
return
}
if submit != "Submit" {
ctx.Data.Msg = "wrong inputs"
ctx.Exec()
return
}
err := ctx.Srv.Index.Update(title, text, ctx.GetUser(), pub)
err := ctx.Srv.DB.Index.Update(title, text, ctx.GetUser(), pub)
if err != nil {
ctx.Data.Msg = err.Error()
ctx.Exec()