···
func (rp *Issues) DeleteIssue(w http.ResponseWriter, r *http.Request) {
l := rp.logger.With("handler", "DeleteIssue")
user := rp.oauth.GetUser(r)
f, err := rp.repoResolver.Resolve(r)
-
log.Println("failed to get repo and knot", err)
issue, ok := r.Context().Value("issue").(*db.Issue)
l.Error("failed to get issue")
-
rp.pages.EditIssueFragment(w, pages.EditIssueParams{
-
RepoInfo: f.RepoInfo(user),
func (rp *Issues) CloseIssue(w http.ResponseWriter, r *http.Request) {
···
replyToUri := r.FormValue("reply-to")
-
uri, err := syntax.ParseATURI(replyToUri)
-
l.Error("failed to get parse replyTo", "err", err, "replyTo", replyToUri)
-
rp.pages.Notice(w, "issue-comment", "Failed to create comment.")
-
if uri.Collection() != tangled.RepoIssueCommentNSID {
-
l.Error("invalid replyTo collection", "collection", uri.Collection())
-
rp.pages.Notice(w, "issue-comment", "Failed to create comment.")
comment := db.IssueComment{
···
_, err = client.RepoDeleteRecord(r.Context(), &comatproto.RepoDeleteRecord_Input{
-
Collection: tangled.GraphFollowNSID,
···
func (rp *Issues) DeleteIssue(w http.ResponseWriter, r *http.Request) {
l := rp.logger.With("handler", "DeleteIssue")
+
noticeId := "issue-actions-error"
user := rp.oauth.GetUser(r)
f, err := rp.repoResolver.Resolve(r)
+
l.Error("failed to get repo and knot", "err", err)
issue, ok := r.Context().Value("issue").(*db.Issue)
l.Error("failed to get issue")
+
rp.pages.Notice(w, noticeId, "Failed to delete issue.")
+
l = l.With("did", issue.Did, "rkey", issue.Rkey)
+
client, err := rp.oauth.AuthorizedClient(r)
+
log.Println("failed to get authorized client", err)
+
rp.pages.Notice(w, "issue-comment", "Failed to delete comment.")
+
_, err = client.RepoDeleteRecord(r.Context(), &comatproto.RepoDeleteRecord_Input{
+
Collection: tangled.RepoIssueNSID,
+
// TODO: transact this better
+
l.Error("failed to delete issue from PDS", "err", err)
+
rp.pages.Notice(w, noticeId, "Failed to delete issue.")
+
if err := db.DeleteIssues(rp.db, db.FilterEq("id", issue.Id)); err != nil {
+
l.Error("failed to delete issue", "err", err)
+
rp.pages.Notice(w, noticeId, "Failed to delete issue.")
+
// return to all issues page
+
rp.pages.HxRedirect(w, "/"+f.RepoInfo(user).FullName()+"/issues")
func (rp *Issues) CloseIssue(w http.ResponseWriter, r *http.Request) {
···
replyToUri := r.FormValue("reply-to")
comment := db.IssueComment{
···
_, err = client.RepoDeleteRecord(r.Context(), &comatproto.RepoDeleteRecord_Input{
+
Collection: tangled.RepoIssueCommentNSID,