pgweb/pkg/api/routes.go
Dan Sosedoff 38051b9465
Add support for user functions (#608)
* Add initial support for functions
* Show functions definitions
* Fix client tests
* Fix schema objects search
* Perform partial matching for functions
* Add function test
* Make sure to close client connections so that database could be dropped in tests
* Fix lint
* Allow to copy the view/functions definitions
* Nits
2022-12-07 11:58:07 -06:00

56 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.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("/functions/:id", GetFunction)
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)
}