diff --git a/backend/internal/api/notes.go b/backend/internal/api/notes.go index 219f600..f43c924 100644 --- a/backend/internal/api/notes.go +++ b/backend/internal/api/notes.go @@ -732,12 +732,26 @@ func (s *NoteWriteService) CreateReply(w http.ResponseWriter, r *http.Request) { return } - if req.ParentURI == "" || req.ParentCID == "" { - WriteBadRequest(w, "parentUri and parentCid are required") + if req.ParentURI == "" { + WriteBadRequest(w, "parentUri is required") return } - if req.RootURI == "" || req.RootCID == "" { - WriteBadRequest(w, "rootUri and rootCid are required") + if req.ParentCID == "" { + req.ParentCID = s.resolveCID(r, req.ParentURI) + } + if req.ParentCID == "" { + WriteBadRequest(w, "parentCid is required and could not be resolved") + return + } + if req.RootURI == "" { + WriteBadRequest(w, "rootUri is required") + return + } + if req.RootCID == "" { + req.RootCID = s.resolveCID(r, req.RootURI) + } + if req.RootCID == "" { + WriteBadRequest(w, "rootCid is required and could not be resolved") return } if req.Text == "" { diff --git a/web/src/views/content/AnnotationDetail.tsx b/web/src/views/content/AnnotationDetail.tsx index 21f733e..9a92414 100644 --- a/web/src/views/content/AnnotationDetail.tsx +++ b/web/src/views/content/AnnotationDetail.tsx @@ -153,14 +153,14 @@ export default function AnnotationDetail({ : targetUri; const parentCid = replyingTo ? replyingTo.cid : annotation.cid; - if (!parentUri || !parentCid || !annotation.cid) + if (!parentUri) throw new Error("Missing parent info"); await createReply( parentUri, - parentCid, + parentCid || "", targetUri, - annotation.cid, + annotation.cid || "", replyText, );