Monorepo for Tangled tangled.org

appview/repo: add delete branch handler

Signed-off-by: oppiliappan <me@oppi.li>

oppi.li 40f57a2c c0e7c0bb

verified
Changed files
+48
appview
+47
appview/repo/repo.go
··· 628 628 }) 629 629 } 630 630 631 + func (rp *Repo) DeleteBranch(w http.ResponseWriter, r *http.Request) { 632 + f, err := rp.repoResolver.Resolve(r) 633 + if err != nil { 634 + log.Println("failed to get repo and knot", err) 635 + return 636 + } 637 + 638 + noticeId := "delete-branch-error" 639 + fail := func(msg string, err error) { 640 + log.Println(msg, "err", err) 641 + rp.pages.Notice(w, noticeId, msg) 642 + } 643 + 644 + branch := r.FormValue("branch") 645 + if branch == "" { 646 + fail("No branch provided.", nil) 647 + return 648 + } 649 + 650 + client, err := rp.oauth.ServiceClient( 651 + r, 652 + oauth.WithService(f.Knot), 653 + oauth.WithLxm(tangled.RepoDeleteBranchNSID), 654 + oauth.WithDev(rp.config.Core.Dev), 655 + ) 656 + if err != nil { 657 + fail("Failed to connect to knotserver", nil) 658 + return 659 + } 660 + 661 + err = tangled.RepoDeleteBranch( 662 + r.Context(), 663 + client, 664 + &tangled.RepoDeleteBranch_Input{ 665 + Branch: branch, 666 + Repo: f.RepoAt().String(), 667 + }, 668 + ) 669 + if err := xrpcclient.HandleXrpcErr(err); err != nil { 670 + fail(fmt.Sprintf("Failed to delete branch: %s", err), err) 671 + return 672 + } 673 + log.Println("deleted branch from knot", "branch", branch, "repo", f.RepoAt()) 674 + 675 + rp.pages.HxRefresh(w) 676 + } 677 + 631 678 func (rp *Repo) RepoBlob(w http.ResponseWriter, r *http.Request) { 632 679 f, err := rp.repoResolver.Resolve(r) 633 680 if err != nil {
+1
appview/repo/router.go
··· 18 18 }) 19 19 r.Get("/commit/{ref}", rp.RepoCommit) 20 20 r.Get("/branches", rp.RepoBranches) 21 + r.Delete("/branches", rp.DeleteBranch) 21 22 r.Route("/tags", func(r chi.Router) { 22 23 r.Get("/", rp.RepoTags) 23 24 r.Route("/{tag}", func(r chi.Router) {