···
"github.com/bluesky-social/indigo/atproto/syntax"
···
switch e.Commit.Operation {
-
case models.CommitOperationCreate:
raw := json.RawMessage(e.Commit.Record)
record := tangled.RepoIssue{}
err = json.Unmarshal(raw, &record)
···
l.Error("failed to begin transaction", "err", err)
err = db.NewIssue(tx, &issue)
···
-
case models.CommitOperationUpdate:
-
raw := json.RawMessage(e.Commit.Record)
-
record := tangled.RepoIssue{}
-
err = json.Unmarshal(raw, &record)
-
l.Error("invalid record", "err", err)
-
if record.Body != nil {
-
sanitizer := markup.NewSanitizer()
-
if st := strings.TrimSpace(sanitizer.SanitizeDescription(record.Title)); st == "" {
-
return fmt.Errorf("title is empty after HTML sanitization")
-
if sb := strings.TrimSpace(sanitizer.SanitizeDefault(body)); sb == "" {
-
return fmt.Errorf("body is empty after HTML sanitization")
-
err = db.UpdateIssueByRkey(ddb, did, rkey, record.Title, body)
-
l.Error("failed to update issue", "err", err)
case models.CommitOperationDelete:
-
if err := db.DeleteIssueByRkey(ddb, did, rkey); err != nil {
l.Error("failed to delete", "err", err)
return fmt.Errorf("failed to delete issue record: %w", err)
···
-
return fmt.Errorf("unknown operation: %s", e.Commit.Operation)
func (i *Ingester) ingestIssueComment(e *models.Event) error {
···
switch e.Commit.Operation {
-
case models.CommitOperationCreate:
raw := json.RawMessage(e.Commit.Record)
record := tangled.RepoIssueComment{}
err = json.Unmarshal(raw, &record)
···
return fmt.Errorf("body is empty after HTML sanitization")
-
err = db.NewIssueComment(ddb, &comment)
return fmt.Errorf("failed to create issue comment: %w", err)
-
case models.CommitOperationUpdate:
-
raw := json.RawMessage(e.Commit.Record)
-
record := tangled.RepoIssueComment{}
-
err = json.Unmarshal(raw, &record)
-
return fmt.Errorf("invalid record: %w", err)
-
sanitizer := markup.NewSanitizer()
-
if sb := strings.TrimSpace(sanitizer.SanitizeDefault(record.Body)); sb == "" {
-
return fmt.Errorf("body is empty after HTML sanitization")
-
err = db.UpdateCommentByRkey(ddb, did, rkey, record.Body)
-
return fmt.Errorf("failed to update issue comment: %w", err)
case models.CommitOperationDelete:
-
if err := db.DeleteCommentByRkey(ddb, did, rkey); err != nil {
return fmt.Errorf("failed to delete issue comment record: %w", err)
-
return fmt.Errorf("unknown operation: %s", e.Commit.Operation)