···
err = i.ingestIssue(ctx, e)
case tangled.RepoIssueCommentNSID:
err = i.ingestIssueComment(e)
80
+
case tangled.LabelDefinitionNSID:
81
+
err = i.ingestLabelDefinition(e)
l = i.Logger.With("nsid", e.Commit.Collection)
···
return fmt.Errorf("invalid record: %w", err)
869
-
comment, err := db.IssueCommentFromRecord(ddb, did, rkey, record)
871
+
comment, err := db.IssueCommentFromRecord(did, rkey, record)
return fmt.Errorf("failed to parse comment from record: %w", err)
···
902
+
func (i *Ingester) ingestLabelDefinition(e *models.Event) error {
904
+
rkey := e.Commit.RKey
908
+
l := i.Logger.With("handler", "ingestLabelDefinition", "nsid", e.Commit.Collection, "did", did, "rkey", rkey)
909
+
l.Info("ingesting record")
911
+
ddb, ok := i.Db.Execer.(*db.DB)
913
+
return fmt.Errorf("failed to index label definition, invalid db cast")
916
+
switch e.Commit.Operation {
917
+
case models.CommitOperationCreate, models.CommitOperationUpdate:
918
+
raw := json.RawMessage(e.Commit.Record)
919
+
record := tangled.LabelDefinition{}
920
+
err = json.Unmarshal(raw, &record)
922
+
return fmt.Errorf("invalid record: %w", err)
925
+
def, err := db.LabelDefinitionFromRecord(did, rkey, record)
927
+
return fmt.Errorf("failed to parse labeldef from record: %w", err)
930
+
if err := i.Validator.ValidateLabelDefinition(def); err != nil {
931
+
return fmt.Errorf("failed to validate labeldef: %w", err)
934
+
_, err = db.AddLabelDefinition(ddb, def)
936
+
return fmt.Errorf("failed to create labeldef: %w", err)
941
+
case models.CommitOperationDelete:
942
+
if err := db.DeleteLabelDefinition(
944
+
db.FilterEq("did", did),
945
+
db.FilterEq("rkey", rkey),
947
+
return fmt.Errorf("failed to delete labeldef record: %w", err)