1package issues
2
3import (
4 "net/http"
5
6 "github.com/go-chi/chi/v5"
7 "tangled.sh/tangled.sh/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 r.Get("/{issue}", i.RepoSingleIssue)
16
17 r.Group(func(r chi.Router) {
18 r.Use(middleware.AuthMiddleware(i.oauth))
19 r.Get("/new", i.NewIssue)
20 r.Post("/new", i.NewIssue)
21 r.Post("/{issue}/comment", i.NewIssueComment)
22 r.Route("/{issue}/comment/{comment_id}/", func(r chi.Router) {
23 r.Get("/", i.IssueComment)
24 r.Delete("/", i.DeleteIssueComment)
25 r.Get("/edit", i.EditIssueComment)
26 r.Post("/edit", i.EditIssueComment)
27 })
28 r.Post("/{issue}/close", i.CloseIssue)
29 r.Post("/{issue}/reopen", i.ReopenIssue)
30 })
31 })
32
33 return r
34}