Mirror of @tangled.org/core. Running on a Raspberry Pi Zero 2 (Please be gentle).
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

appview/ingester: ingest sh.tangled.label.definition

Signed-off-by: oppiliappan <me@oppi.li>

+58 -1
+57 -1
appview/ingester.go
··· 77 77 err = i.ingestIssue(ctx, e) 78 78 case tangled.RepoIssueCommentNSID: 79 79 err = i.ingestIssueComment(e) 80 + case tangled.LabelDefinitionNSID: 81 + err = i.ingestLabelDefinition(e) 80 82 } 81 83 l = i.Logger.With("nsid", e.Commit.Collection) 82 84 } ··· 868 866 return fmt.Errorf("invalid record: %w", err) 869 867 } 870 868 871 - comment, err := db.IssueCommentFromRecord(ddb, did, rkey, record) 869 + comment, err := db.IssueCommentFromRecord(did, rkey, record) 872 870 if err != nil { 873 871 return fmt.Errorf("failed to parse comment from record: %w", err) 874 872 } ··· 891 889 db.FilterEq("rkey", rkey), 892 890 ); err != nil { 893 891 return fmt.Errorf("failed to delete issue comment record: %w", err) 892 + } 893 + 894 + return nil 895 + } 896 + 897 + return nil 898 + } 899 + 900 + func (i *Ingester) ingestLabelDefinition(e *models.Event) error { 901 + did := e.Did 902 + rkey := e.Commit.RKey 903 + 904 + var err error 905 + 906 + l := i.Logger.With("handler", "ingestLabelDefinition", "nsid", e.Commit.Collection, "did", did, "rkey", rkey) 907 + l.Info("ingesting record") 908 + 909 + ddb, ok := i.Db.Execer.(*db.DB) 910 + if !ok { 911 + return fmt.Errorf("failed to index label definition, invalid db cast") 912 + } 913 + 914 + switch e.Commit.Operation { 915 + case models.CommitOperationCreate, models.CommitOperationUpdate: 916 + raw := json.RawMessage(e.Commit.Record) 917 + record := tangled.LabelDefinition{} 918 + err = json.Unmarshal(raw, &record) 919 + if err != nil { 920 + return fmt.Errorf("invalid record: %w", err) 921 + } 922 + 923 + def, err := db.LabelDefinitionFromRecord(did, rkey, record) 924 + if err != nil { 925 + return fmt.Errorf("failed to parse labeldef from record: %w", err) 926 + } 927 + 928 + if err := i.Validator.ValidateLabelDefinition(def); err != nil { 929 + return fmt.Errorf("failed to validate labeldef: %w", err) 930 + } 931 + 932 + _, err = db.AddLabelDefinition(ddb, def) 933 + if err != nil { 934 + return fmt.Errorf("failed to create labeldef: %w", err) 935 + } 936 + 937 + return nil 938 + 939 + case models.CommitOperationDelete: 940 + if err := db.DeleteLabelDefinition( 941 + ddb, 942 + db.FilterEq("did", did), 943 + db.FilterEq("rkey", rkey), 944 + ); err != nil { 945 + return fmt.Errorf("failed to delete labeldef record: %w", err) 894 946 } 895 947 896 948 return nil
+1
appview/state/state.go
··· 102 102 tangled.StringNSID, 103 103 tangled.RepoIssueNSID, 104 104 tangled.RepoIssueCommentNSID, 105 + tangled.LabelDefinitionNSID, 105 106 }, 106 107 nil, 107 108 slog.Default(),