forked from tangled.org/core
Monorepo for Tangled — https://tangled.org
at master 1.2 kB view raw
1package issues 2 3import ( 4 "net/http" 5 6 "github.com/go-chi/chi/v5" 7 "tangled.org/core/appview/middleware" 8) 9 10func (i *Issues) Router(mw *middleware.Middleware) http.Handler { 11 r := chi.NewRouter() 12 13 r.Route("/", func(r chi.Router) { 14 r.With(middleware.Paginate).Get("/", i.RepoIssues) 15 16 r.Route("/{issue}", func(r chi.Router) { 17 r.Use(mw.ResolveIssue) 18 r.Get("/", i.RepoSingleIssue) 19 r.Get("/opengraph", i.IssueOpenGraphSummary) 20 21 // authenticated routes 22 r.Group(func(r chi.Router) { 23 r.Use(middleware.AuthMiddleware(i.oauth)) 24 r.Post("/comment", i.NewIssueComment) 25 r.Route("/comment/{commentId}/", func(r chi.Router) { 26 r.Get("/", i.IssueComment) 27 r.Delete("/", i.DeleteIssueComment) 28 r.Get("/edit", i.EditIssueComment) 29 r.Post("/edit", i.EditIssueComment) 30 r.Get("/reply", i.ReplyIssueComment) 31 r.Get("/replyPlaceholder", i.ReplyIssueCommentPlaceholder) 32 }) 33 r.Get("/edit", i.EditIssue) 34 r.Post("/edit", i.EditIssue) 35 r.Delete("/", i.DeleteIssue) 36 r.Post("/close", i.CloseIssue) 37 r.Post("/reopen", i.ReopenIssue) 38 }) 39 }) 40 41 r.Group(func(r chi.Router) { 42 r.Use(middleware.AuthMiddleware(i.oauth)) 43 r.Get("/new", i.NewIssue) 44 r.Post("/new", i.NewIssue) 45 }) 46 }) 47 48 return r 49}