major changes

This commit is contained in:
ston1th 2018-02-07 21:41:54 +01:00
commit 2b56832843
83 changed files with 7760 additions and 1244 deletions

124
routes.go
View file

@ -2,134 +2,126 @@
package main
import (
"net/http"
"github.com/gorilla/mux"
)
type route struct {
Path string
Handler http.HandlerFunc
Handler ctxHandler
Methods []string
}
func buildRoutes() http.Handler {
m := mux.NewRouter()
m.NotFoundHandler = notFoundHandler{}
for _, v := range routes {
m.HandleFunc(v.Path, v.Handler).Methods(v.Methods...)
}
return m
}
var routes = []route{
{
"/",
contextWrapper(
indexHandler),
indexHandler,
[]string{"GET"},
},
{
"/bootstrap.css",
contextWrapper(
staticHandler),
staticHandler,
[]string{"GET"},
},
{
"/custom.css",
contextWrapper(
staticHandler),
staticHandler,
[]string{"GET"},
},
{
"/login",
contextWrapper(
loginHandler),
loginHandler,
[]string{"GET", "POST"},
},
{
"/search",
contextWrapper(
searchHandler),
searchHandler,
[]string{"GET", "POST"},
},
{
"/new",
contextWrapper(
authHandler(
wikiNewHandler),
[]string{"GET", "POST"},
},
{
"/all",
contextWrapper(
allHandler),
allHandler,
[]string{"GET"},
},
{
"/wiki/{title:[a-zA-Z0-9+]+$}",
contextWrapper(
"/wiki/{title:[a-zA-Z0-9+-]+$}",
wikiHandler,
[]string{"GET"},
},
{
"/wiki/{title:[a-zA-Z0-9+-]+}/md",
wikiMDHandler(
wikiHandler),
[]string{"GET"},
},
{
"/wiki/{title:[a-zA-Z0-9+]+}/md",
contextWrapper(
wikiMDHandler(
wikiHandler)),
[]string{"GET"},
},
{
"/wiki/{title:[a-zA-Z0-9+]+}/edit",
contextWrapper(
"/wiki/{title:[a-zA-Z0-9+-]+}/edit",
authHandler(
wikiEditHandler),
[]string{"GET", "POST"},
},
{
"/wiki/{title:[a-zA-Z0-9+]+}/del",
contextWrapper(
"/wiki/{title:[a-zA-Z0-9+-]+}/del",
authHandler(
wikiDelHandler),
[]string{"POST"},
},
{
"/users",
contextWrapper(
adminAuthHandler(
usersHandler)),
adminAuthHandler(
usersHandler),
[]string{"GET"},
},
{
"/user/new",
contextWrapper(
adminAuthHandler(
userNewHandler)),
"/users/{user:[a-zA-Z0-9]+}/{title:[a-zA-Z0-9+-]+$}",
wikiHandler,
[]string{"GET"},
},
{
"/users/{user:[a-zA-Z0-9]+}/{title:[a-zA-Z0-9+-]+}/md",
wikiMDHandler(
wikiHandler),
[]string{"GET"},
},
{
"/users/{user:[a-zA-Z0-9]+}/{title:[a-zA-Z0-9+-]+}/edit",
wikiEditHandler,
[]string{"GET", "POST"},
},
{
"/user/del/{user:[a-z]+$}",
contextWrapper(
adminAuthHandler(
userDelHandler)),
[]string{"GET", "POST"},
},
{
"/user/unlock/{user:[a-z]+$}",
contextWrapper(
adminAuthHandler(
userUnlockHandler)),
"/users/{user:[a-zA-Z0-9]+}/{title:[a-zA-Z0-9+-]+}/del",
wikiDelHandler,
[]string{"POST"},
},
{
"/user/edit/{user:[a-z]+$}",
contextWrapper(
userAuthHandler(
userEditHandler)),
"/user/new",
adminAuthHandler(
userNewHandler),
[]string{"GET", "POST"},
},
{
"/user/del/{user:[a-zA-Z0-9]+$}",
adminAuthHandler(
userDelHandler),
[]string{"GET", "POST"},
},
{
"/user/unlock/{user:[a-zA-Z0-9]+$}",
adminAuthHandler(
userUnlockHandler),
[]string{"POST"},
},
{
"/user/edit/{user:[a-zA-Z0-9]+$}",
userAuthHandler(
userEditHandler),
[]string{"GET", "POST"},
},
{
"/logout",
contextWrapper(
logoutHandler),
logoutHandler,
[]string{"GET", "POST"},
},
}