BrainMinder/cmd/web/routes.go

85 lines
3.5 KiB
Go
Raw Permalink Normal View History

2024-08-22 10:13:16 +02:00
package main
import (
"net/http"
"brainminder.speedtech.it/assets"
"github.com/alexedwards/flow"
)
func (app *application) routes() http.Handler {
mux := flow.New()
mux.NotFound = http.HandlerFunc(app.notFound)
mux.Use(app.logAccess)
mux.Use(app.recoverPanic)
mux.Use(app.securityHeaders)
fileServer := http.FileServer(http.FS(assets.EmbeddedFiles))
mux.Handle("/static/...", fileServer, "GET")
mux.Group(func(mux *flow.Mux) {
mux.Use(app.preventCSRF)
mux.Use(app.authenticate)
mux.Group(func(mux *flow.Mux) {
mux.Use(app.requireAnonymousUser)
mux.HandleFunc("/login", app.login, "GET", "POST")
})
mux.Group(func(mux *flow.Mux) {
mux.Use(app.requireAuthenticatedUser)
mux.HandleFunc("/logout", app.logout, "POST", "GET")
// To move
mux.HandleFunc("/signup", app.signup, "GET", "POST")
mux.HandleFunc("/forgotten-password", app.forgottenPassword, "GET", "POST")
mux.HandleFunc("/forgotten-password-confirmation", app.forgottenPasswordConfirmation, "GET")
mux.HandleFunc("/password-reset/:plaintextToken", app.passwordReset, "GET", "POST")
mux.HandleFunc("/password-reset-confirmation", app.passwordResetConfirmation, "GET")
//End to move
mux.HandleFunc("/", app.home, "GET", "POST")
mux.HandleFunc("/item/relation/add/:related_item_id", app.itemsRelationAdd, "GET")
mux.HandleFunc("/items", app.items, "GET", "POST")
mux.HandleFunc("/items/search", app.items, "GET")
mux.HandleFunc("/items/search", app.itemsSearch, "POST")
mux.HandleFunc("/items/search-for-relations/:item_id", app.itemsSearchForRelations, "GET")
mux.HandleFunc("/items/type/:type_id", app.itemsType, "GET", "POST")
mux.HandleFunc("/item/create/:type_id", app.itemCreate, "GET", "POST")
mux.HandleFunc("/item/read/:item_id", app.itemRead, "GET")
mux.HandleFunc("/item/view/:item_id", app.itemView, "GET")
mux.HandleFunc("/item/update/:item_id", app.itemUpdate, "GET", "POST")
mux.HandleFunc("/item/delete/:item_id", app.itemDelete, "DELETE")
mux.HandleFunc("/item/share/:item_id", app.itemShare, "GET", "POST")
mux.HandleFunc("/item/add-to-dashboard/:item_id", app.itemAddToDashboard, "POST")
mux.HandleFunc("/item/remove-from-dashboard/:item_id", app.itemRemoveFromDashboard, "POST", "DELETE")
mux.HandleFunc("/types", app.types, "GET")
mux.HandleFunc("/type/create", app.typeCreate, "GET", "POST")
mux.HandleFunc("/type/update/:type_id", app.typeUpdate, "GET", "POST")
mux.HandleFunc("/type/delete/:type_id", app.typeDelete, "DELETE")
mux.HandleFunc("/type/field-new", app.typeFieldNew, "GET")
mux.HandleFunc("/categories", app.categories, "GET")
mux.HandleFunc("/category/create", app.categoryCreate, "GET", "POST")
mux.HandleFunc("/category/update/:category_id", app.categoryUpdate, "GET", "POST")
mux.HandleFunc("/category/delete/:category_id", app.categoryDelete, "DELETE")
mux.HandleFunc("/notebooks", app.notebooks, "GET")
mux.HandleFunc("/notebook/create", app.notebookCreate, "GET", "POST")
mux.HandleFunc("/notebook/update/:notebook_id", app.notebookUpdate, "GET", "POST")
mux.HandleFunc("/notebook/delete/:notebook_id", app.notebookDelete, "DELETE")
mux.HandleFunc("/quickbox/update/:quicknote_id", app.quickboxUpdate, "GET", "POST")
mux.HandleFunc("/quickbox/delete/:quicknote_id", app.quickboxDelete, "DELETE")
mux.HandleFunc("/quickbox/transform/:quicknote_id", app.quickboxTransform, "GET", "POST")
mux.HandleFunc("/quickbox/add", app.quickboxAdd, "POST")
mux.HandleFunc("/quickbox/all", app.quickboxAll, "GET")
})
})
return mux
}