package admin import ( "github.com/gin-gonic/gin" "github.com/mattnite/forgejo-tickets/internal/auth" "github.com/mattnite/forgejo-tickets/internal/config" "github.com/mattnite/forgejo-tickets/internal/email" "github.com/mattnite/forgejo-tickets/internal/forgejo" "github.com/mattnite/forgejo-tickets/internal/templates" "gorm.io/gorm" ) type Dependencies struct { DB *gorm.DB Renderer *templates.Renderer Auth *auth.Service SessionStore *auth.PGStore EmailClient *email.Client ForgejoClient *forgejo.Client Config *config.Config } func RegisterRoutes(g *gin.RouterGroup, deps Dependencies) { dashboardHandler := &DashboardHandler{deps: deps} g.GET("/", dashboardHandler.Index) userHandler := &UserHandler{deps: deps} g.GET("/users", userHandler.List) g.GET("/users/pending", userHandler.PendingList) g.GET("/users/new", userHandler.NewForm) g.GET("/users/:id", userHandler.Detail) g.POST("/users", userHandler.Create) g.POST("/users/:id/approve", userHandler.Approve) g.POST("/users/:id/reject", userHandler.Reject) g.POST("/users/:id/repos", userHandler.UpdateRepos) ticketHandler := &TicketHandler{deps: deps} g.GET("/tickets", ticketHandler.List) g.GET("/tickets/:id", ticketHandler.Detail) g.POST("/tickets/:id/status", ticketHandler.UpdateStatus) repoHandler := &RepoHandler{deps: deps} g.GET("/repos", repoHandler.List) g.GET("/repos/new", repoHandler.NewForm) g.POST("/repos", repoHandler.Create) g.GET("/repos/:id/edit", repoHandler.EditForm) g.POST("/repos/:id", repoHandler.Update) }