···
"github.com/bluesky-social/indigo/atproto/syntax"
···
switch e.Commit.Operation {
793
-
case models.CommitOperationCreate:
794
+
case models.CommitOperationCreate, models.CommitOperationUpdate:
raw := json.RawMessage(e.Commit.Record)
record := tangled.RepoIssue{}
err = json.Unmarshal(raw, &record)
···
l.Error("failed to begin transaction", "err", err)
818
+
defer tx.Rollback()
err = db.NewIssue(tx, &issue)
···
826
-
case models.CommitOperationUpdate:
827
-
raw := json.RawMessage(e.Commit.Record)
828
-
record := tangled.RepoIssue{}
829
-
err = json.Unmarshal(raw, &record)
831
-
l.Error("invalid record", "err", err)
836
-
if record.Body != nil {
837
-
body = *record.Body
840
-
sanitizer := markup.NewSanitizer()
841
-
if st := strings.TrimSpace(sanitizer.SanitizeDescription(record.Title)); st == "" {
842
-
return fmt.Errorf("title is empty after HTML sanitization")
844
-
if sb := strings.TrimSpace(sanitizer.SanitizeDefault(body)); sb == "" {
845
-
return fmt.Errorf("body is empty after HTML sanitization")
848
-
err = db.UpdateIssueByRkey(ddb, did, rkey, record.Title, body)
850
-
l.Error("failed to update issue", "err", err)
828
+
l.Error("failed to commit txn", "err", err)
case models.CommitOperationDelete:
857
-
if err := db.DeleteIssueByRkey(ddb, did, rkey); err != nil {
835
+
if err := db.DeleteIssues(
837
+
db.FilterEq("did", did),
838
+
db.FilterEq("rkey", rkey),
l.Error("failed to delete", "err", err)
return fmt.Errorf("failed to delete issue record: %w", err)
···
865
-
return fmt.Errorf("unknown operation: %s", e.Commit.Operation)
func (i *Ingester) ingestIssueComment(e *models.Event) error {
···
switch e.Commit.Operation {
883
-
case models.CommitOperationCreate:
865
+
case models.CommitOperationCreate, models.CommitOperationUpdate:
raw := json.RawMessage(e.Commit.Record)
record := tangled.RepoIssueComment{}
err = json.Unmarshal(raw, &record)
···
return fmt.Errorf("body is empty after HTML sanitization")
901
-
err = db.NewIssueComment(ddb, &comment)
883
+
_, err = db.AddIssueComment(ddb, *comment)
return fmt.Errorf("failed to create issue comment: %w", err)
908
-
case models.CommitOperationUpdate:
909
-
raw := json.RawMessage(e.Commit.Record)
910
-
record := tangled.RepoIssueComment{}
911
-
err = json.Unmarshal(raw, &record)
913
-
return fmt.Errorf("invalid record: %w", err)
916
-
sanitizer := markup.NewSanitizer()
917
-
if sb := strings.TrimSpace(sanitizer.SanitizeDefault(record.Body)); sb == "" {
918
-
return fmt.Errorf("body is empty after HTML sanitization")
921
-
err = db.UpdateCommentByRkey(ddb, did, rkey, record.Body)
923
-
return fmt.Errorf("failed to update issue comment: %w", err)
case models.CommitOperationDelete:
929
-
if err := db.DeleteCommentByRkey(ddb, did, rkey); err != nil {
891
+
if err := db.DeleteIssueComments(
893
+
db.FilterEq("did", did),
894
+
db.FilterEq("rkey", rkey),
return fmt.Errorf("failed to delete issue comment record: %w", err)
936
-
return fmt.Errorf("unknown operation: %s", e.Commit.Operation)