package api import ( "github.com/gin-gonic/gin" ctx "github.com/smira/aptly/context" "net/http" ) var context *ctx.AptlyContext // Router returns prebuilt with routes http.Handler func Router(c *ctx.AptlyContext) http.Handler { context = c router := gin.Default() router.Use(gin.ErrorLogger()) root := router.Group("/api") { root.GET("/version", apiVersion) } { root.GET("/repos", apiReposList) root.POST("/repos", apiReposCreate) root.GET("/repos/:name", apiReposShow) root.PUT("/repos/:name", apiReposEdit) root.DELETE("/repos/:name", apiReposDrop) root.GET("/repos/:name/packages", apiReposPackagesShow) root.POST("/repos/:name/packages", apiReposPackagesAdd) root.DELETE("/repos/:name/packages", apiReposPackagesDelete) root.POST("/repos/:name/file/:dir/:file", apiReposPackageFromFile) root.POST("/repos/:name/file/:dir", apiReposPackageFromDir) } { root.GET("/files", apiFilesListDirs) root.POST("/files/:dir", apiFilesUpload) root.GET("/files/:dir", apiFilesListFiles) root.DELETE("/files/:dir", apiFilesDeleteDir) root.DELETE("/files/:dir/:name", apiFilesDeleteFile) } { root.GET("/publish", apiPublishList) root.POST("/publish/:prefix/repos", apiPublishRepoOrSnapshot) root.POST("/publish/:prefix/snapshots", apiPublishRepoOrSnapshot) root.PUT("/publish/:prefix/:distribution", apiPublishUpdateSwitch) root.DELETE("/publish/:prefix/:distribution", apiPublishDrop) } return router }