summaryrefslogtreecommitdiff
path: root/pkg/webui/routes.go
blob: 1fce700b8449c23922119f017b86d7b880adb5ce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package webui

import (
	"net/http"

	"git.adyxax.org/adyxax/tfstated/pkg/database"
)

func addRoutes(
	mux *http.ServeMux,
	db *database.DB,
) {
	requireSession := sessionsMiddleware(db)
	requireLogin := loginMiddleware(db, requireSession)
	mux.Handle("GET /healthz", handleHealthz())
	mux.Handle("GET /login", requireSession(handleLoginGET()))
	mux.Handle("POST /login", requireSession(handleLoginPOST(db)))
	mux.Handle("GET /logout", requireLogin(handleLogoutGET(db)))
	mux.Handle("GET /settings", requireLogin(handleSettingsGET(db)))
	mux.Handle("POST /settings", requireLogin(handleSettingsPOST(db)))
	mux.Handle("GET /states", requireLogin(handleStatesGET(db)))
	mux.Handle("POST /states", requireLogin(handleStatesPOST(db)))
	mux.Handle("GET /states/{id}", requireLogin(handleStatesIdGET(db)))
	mux.Handle("GET /static/", cache(http.FileServer(http.FS(staticFS))))
	mux.Handle("GET /versions/{id}", requireLogin(handleVersionsGET(db)))
	mux.Handle("GET /", requireLogin(handleIndexGET()))
}