187 lines
3.1 KiB
Go
187 lines
3.1 KiB
Go
// Copyright (C) 2021 Marius Schellenberger
|
|
|
|
package server
|
|
|
|
import "git.giftfish.de/ston1th/gowiki/pkg/core"
|
|
|
|
type route struct {
|
|
Path string
|
|
Handler ctxHandler
|
|
Methods []string
|
|
}
|
|
|
|
var routes = []route{
|
|
{
|
|
core.RootURI,
|
|
jwtHandler(
|
|
indexHandler),
|
|
[]string{"GET"},
|
|
},
|
|
{
|
|
core.SectionsURI,
|
|
jwtHandler(
|
|
sectionsHandler),
|
|
[]string{"GET"},
|
|
},
|
|
{
|
|
core.SectionURI + "/new",
|
|
jwtHandler(
|
|
adminAuthHandler(
|
|
sectionNewHandler)),
|
|
[]string{"GET", "POST"},
|
|
},
|
|
{
|
|
core.SectionURI + "/edit/{section:[a-zA-Z0-9]+$}",
|
|
jwtHandler(
|
|
adminAuthHandler(
|
|
sectionEditHandler)),
|
|
[]string{"GET", "POST"},
|
|
},
|
|
{
|
|
core.SectionURI + "/del/{section:[a-zA-Z0-9]+$}",
|
|
jwtHandler(
|
|
adminAuthHandler(
|
|
sectionDelHandler)),
|
|
[]string{"GET", "POST"},
|
|
},
|
|
{
|
|
core.SearchURI,
|
|
jwtHandler(
|
|
searchHandler),
|
|
[]string{"GET", "POST"},
|
|
},
|
|
{
|
|
core.NewURI,
|
|
jwtHandler(
|
|
authHandler(
|
|
pageNewHandler)),
|
|
[]string{"GET", "POST"},
|
|
},
|
|
{
|
|
core.LoginURI,
|
|
jwtHandler(
|
|
loginHandler),
|
|
[]string{"GET", "POST"},
|
|
},
|
|
{
|
|
core.TotpURI,
|
|
jwtHandler(
|
|
totpAuthHandler(
|
|
loginTotpHandler)),
|
|
[]string{"GET", "POST"},
|
|
},
|
|
{
|
|
core.BlacklistURI,
|
|
jwtHandler(
|
|
authHandler(
|
|
pageBlacklistHandler)),
|
|
[]string{"GET", "POST"},
|
|
},
|
|
{
|
|
core.UsersURI,
|
|
jwtHandler(
|
|
adminAuthHandler(
|
|
usersHandler)),
|
|
[]string{"GET"},
|
|
},
|
|
{
|
|
core.UserURI + "/new",
|
|
jwtHandler(
|
|
adminAuthHandler(
|
|
userNewHandler)),
|
|
[]string{"GET", "POST"},
|
|
},
|
|
{
|
|
core.UserURI + "/edit/{user:[a-zA-Z0-9]+$}",
|
|
jwtHandler(
|
|
userAuthHandler(
|
|
userEditHandler)),
|
|
[]string{"GET", "POST"},
|
|
},
|
|
{
|
|
core.UserURI + "/del/{user:[a-zA-Z0-9]+$}",
|
|
jwtHandler(
|
|
userAuthHandler(
|
|
userDelHandler)),
|
|
[]string{"GET", "POST"},
|
|
},
|
|
{
|
|
core.UserURI + "/totp/{user:[a-zA-Z0-9]+$}",
|
|
jwtHandler(
|
|
userAuthHandler(
|
|
userTotpHandler)),
|
|
[]string{"GET", "POST"},
|
|
},
|
|
{
|
|
core.UserURI + "/unlock/{user:[a-zA-Z0-9]+$}",
|
|
jwtHandler(
|
|
adminAuthHandler(
|
|
userUnlockHandler)),
|
|
[]string{"POST"},
|
|
},
|
|
{
|
|
core.StatsURI,
|
|
jwtHandler(
|
|
adminAuthHandler(
|
|
statsHandler)),
|
|
[]string{"GET"},
|
|
},
|
|
{
|
|
core.LogoutURI,
|
|
jwtHandler(
|
|
logoutHandler),
|
|
[]string{"GET", "POST"},
|
|
},
|
|
{
|
|
core.ViewURI + "/{key}",
|
|
jwtHandler(
|
|
pageHandler),
|
|
[]string{"GET"},
|
|
},
|
|
{
|
|
core.ViewURI + "/{key}/md",
|
|
jwtHandler(
|
|
pageMDHandler(
|
|
pageHandler)),
|
|
[]string{"GET"},
|
|
},
|
|
{
|
|
"/{section:[a-zA-Z0-9]+}",
|
|
jwtHandler(
|
|
sectionHandler),
|
|
[]string{"GET"},
|
|
},
|
|
{
|
|
"/{section:[a-zA-Z0-9]+}/{title:[a-zA-Z0-9+-]+}",
|
|
jwtHandler(
|
|
pageHandler),
|
|
[]string{"GET"},
|
|
},
|
|
{
|
|
"/{section:[a-zA-Z0-9]+}/{title:[a-zA-Z0-9+-]+}/md",
|
|
jwtHandler(
|
|
pageMDHandler(
|
|
pageHandler)),
|
|
[]string{"GET"},
|
|
},
|
|
{
|
|
"/{section:[a-zA-Z0-9]+}/{title:[a-zA-Z0-9+-]+}/share",
|
|
jwtHandler(
|
|
pageShareHandler),
|
|
[]string{"GET", "POST"},
|
|
},
|
|
{
|
|
"/{section:[a-zA-Z0-9]+}/{title:[a-zA-Z0-9+-]+}/edit",
|
|
jwtHandler(
|
|
authHandler(
|
|
pageEditHandler)),
|
|
[]string{"GET", "POST"},
|
|
},
|
|
{
|
|
"/{section:[a-zA-Z0-9]+}/{title:[a-zA-Z0-9+-]+}/del",
|
|
jwtHandler(
|
|
authHandler(
|
|
pageDelHandler)),
|
|
[]string{"GET", "POST"},
|
|
},
|
|
}
|