pgweb/pkg/api/routes.go
Tim Ings 17e95601ec
Explain analyze dropdown button (#532)
* Adds bootstrap dropdown plugin
* Float dropdown toggle left
* Extract query running message toggles
* Adds analyze function and api call
* Adds analyze api
2022-01-03 19:05:46 -06:00

59 lines
1.5 KiB
Go

package api
import (
"github.com/gin-gonic/gin"
"github.com/sosedoff/pgweb/pkg/command"
)
func SetupMiddlewares(group *gin.RouterGroup) {
if command.Opts.Debug {
group.Use(requestInspectMiddleware())
}
if command.Opts.Cors {
group.Use(corsMiddleware())
}
group.Use(dbCheckMiddleware())
}
func SetupRoutes(router *gin.Engine) {
root := router.Group(command.Opts.Prefix)
root.GET("/", gin.WrapH(GetHome(command.Opts.Prefix)))
root.GET("/static/*path", gin.WrapH(GetAssets(command.Opts.Prefix)))
root.GET("/connect/:resource", ConnectWithBackend)
api := root.Group("/api")
SetupMiddlewares(api)
if command.Opts.Sessions {
api.GET("/sessions", GetSessions)
}
api.GET("/info", GetInfo)
api.POST("/connect", Connect)
api.POST("/disconnect", Disconnect)
api.POST("/switchdb", SwitchDb)
api.GET("/databases", GetDatabases)
api.GET("/connection", GetConnectionInfo)
api.GET("/activity", GetActivity)
api.GET("/schemas", GetSchemas)
api.GET("/objects", GetObjects)
api.GET("/tables/:table", GetTable)
api.GET("/tables/:table/rows", GetTableRows)
api.GET("/tables/:table/info", GetTableInfo)
api.GET("/tables/:table/indexes", GetTableIndexes)
api.GET("/tables/:table/constraints", GetTableConstraints)
api.GET("/query", RunQuery)
api.POST("/query", RunQuery)
api.GET("/explain", ExplainQuery)
api.POST("/explain", ExplainQuery)
api.GET("/analyze", AnalyzeQuery)
api.POST("/analyze", AnalyzeQuery)
api.GET("/history", GetHistory)
api.GET("/bookmarks", GetBookmarks)
api.GET("/export", DataExport)
}