A vibe coded tangled fork which supports pijul.
at master 53 lines 1.2 kB view raw
1package discussions 2 3import ( 4 "net/http" 5 6 "github.com/go-chi/chi/v5" 7 "tangled.org/core/appview/middleware" 8) 9 10func (d *Discussions) Router(mw *middleware.Middleware) http.Handler { 11 r := chi.NewRouter() 12 13 r.Route("/", func(r chi.Router) { 14 r.With(middleware.Paginate).Get("/", d.RepoDiscussionsList) 15 16 // Authenticated routes for creating discussions 17 r.Group(func(r chi.Router) { 18 r.Use(middleware.AuthMiddleware(d.oauth)) 19 r.Get("/new", d.NewDiscussion) 20 r.Post("/new", d.NewDiscussion) 21 }) 22 23 // Single discussion routes 24 r.Route("/{discussion}", func(r chi.Router) { 25 r.Use(mw.ResolveDiscussion) 26 r.Get("/", d.RepoSingleDiscussion) 27 28 // Authenticated routes 29 r.Group(func(r chi.Router) { 30 r.Use(middleware.AuthMiddleware(d.oauth)) 31 32 // Comments 33 r.Post("/comment", d.NewComment) 34 35 // Patches - anyone authenticated can add patches 36 r.Post("/patches", d.AddPatch) 37 38 // Patch management 39 r.Route("/patches/{patchId}", func(r chi.Router) { 40 r.Delete("/", d.RemovePatch) 41 r.Post("/readd", d.ReaddPatch) 42 }) 43 44 // Discussion state changes 45 r.Post("/close", d.CloseDiscussion) 46 r.Post("/reopen", d.ReopenDiscussion) 47 r.Post("/merge", d.MergeDiscussion) 48 }) 49 }) 50 }) 51 52 return r 53}