···
"github.com/bluesky-social/indigo/atproto/syntax"
+
jmodels "github.com/bluesky-social/jetstream/pkg/models"
"github.com/go-git/go-git/v5/plumbing"
"tangled.org/core/api/tangled"
"tangled.org/core/appview/config"
"tangled.org/core/appview/db"
+
"tangled.org/core/appview/models"
"tangled.org/core/appview/serververify"
"tangled.org/core/appview/validator"
"tangled.org/core/idresolver"
···
Validator *validator.Validator
+
type processFunc func(ctx context.Context, e *jmodels.Event) error
func (i *Ingester) Ingest() processFunc {
+
return func(ctx context.Context, e *jmodels.Event) error {
···
l := i.Logger.With("kind", e.Kind)
+
case jmodels.EventKindAccount:
if !e.Account.Active && *e.Account.Status == "deactivated" {
err = i.IdResolver.InvalidateIdent(ctx, e.Account.Did)
+
case jmodels.EventKindIdentity:
err = i.IdResolver.InvalidateIdent(ctx, e.Identity.Did)
+
case jmodels.EventKindCommit:
switch e.Commit.Collection {
case tangled.GraphFollowNSID:
···
+
func (i *Ingester) ingestStar(e *jmodels.Event) error {
···
l = l.With("nsid", e.Commit.Collection)
switch e.Commit.Operation {
+
case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate:
var subjectUri syntax.ATURI
raw := json.RawMessage(e.Commit.Record)
···
+
case jmodels.CommitOperationDelete:
err = db.DeleteStarByRkey(i.Db, did, e.Commit.RKey)
···
+
func (i *Ingester) ingestFollow(e *jmodels.Event) error {
···
l = l.With("nsid", e.Commit.Collection)
switch e.Commit.Operation {
+
case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate:
raw := json.RawMessage(e.Commit.Record)
record := tangled.GraphFollow{}
err = json.Unmarshal(raw, &record)
···
SubjectDid: record.Subject,
+
case jmodels.CommitOperationDelete:
err = db.DeleteFollowByRkey(i.Db, did, e.Commit.RKey)
···
+
func (i *Ingester) ingestPublicKey(e *jmodels.Event) error {
···
l = l.With("nsid", e.Commit.Collection)
switch e.Commit.Operation {
+
case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate:
l.Debug("processing add of pubkey")
raw := json.RawMessage(e.Commit.Record)
record := tangled.PublicKey{}
···
err = db.AddPublicKey(i.Db, did, name, key, e.Commit.RKey)
+
case jmodels.CommitOperationDelete:
l.Debug("processing delete of pubkey")
err = db.DeletePublicKeyByRkey(i.Db, did, e.Commit.RKey)
···
+
func (i *Ingester) ingestArtifact(e *jmodels.Event) error {
···
l = l.With("nsid", e.Commit.Collection)
switch e.Commit.Operation {
+
case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate:
raw := json.RawMessage(e.Commit.Record)
record := tangled.RepoArtifact{}
err = json.Unmarshal(raw, &record)
···
+
artifact := models.Artifact{
···
err = db.AddArtifact(i.Db, artifact)
+
case jmodels.CommitOperationDelete:
err = db.DeleteArtifact(i.Db, db.FilterEq("did", did), db.FilterEq("rkey", e.Commit.RKey))
···
+
func (i *Ingester) ingestProfile(e *jmodels.Event) error {
···
switch e.Commit.Operation {
+
case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate:
raw := json.RawMessage(e.Commit.Record)
record := tangled.ActorProfile{}
err = json.Unmarshal(raw, &record)
···
err = db.UpsertProfile(tx, &profile)
+
case jmodels.CommitOperationDelete:
err = db.DeleteArtifact(i.Db, db.FilterEq("did", did), db.FilterEq("rkey", e.Commit.RKey))
···
+
func (i *Ingester) ingestSpindleMember(ctx context.Context, e *jmodels.Event) error {
···
l = l.With("nsid", e.Commit.Collection)
switch e.Commit.Operation {
+
case jmodels.CommitOperationCreate:
raw := json.RawMessage(e.Commit.Record)
record := tangled.SpindleMember{}
err = json.Unmarshal(raw, &record)
···
l.Info("added spindle member")
+
case jmodels.CommitOperationDelete:
ddb, ok := i.Db.Execer.(*db.DB)
···
+
func (i *Ingester) ingestSpindle(ctx context.Context, e *jmodels.Event) error {
···
l = l.With("nsid", e.Commit.Collection)
switch e.Commit.Operation {
+
case jmodels.CommitOperationCreate:
raw := json.RawMessage(e.Commit.Record)
record := tangled.Spindle{}
err = json.Unmarshal(raw, &record)
···
+
case jmodels.CommitOperationDelete:
instance := e.Commit.RKey
ddb, ok := i.Db.Execer.(*db.DB)
···
+
func (i *Ingester) ingestString(e *jmodels.Event) error {
···
switch e.Commit.Operation {
+
case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate:
raw := json.RawMessage(e.Commit.Record)
record := tangled.String{}
err = json.Unmarshal(raw, &record)
···
+
case jmodels.CommitOperationDelete:
if err := db.DeleteString(
···
+
func (i *Ingester) ingestKnotMember(e *jmodels.Event) error {
···
l = l.With("nsid", e.Commit.Collection)
switch e.Commit.Operation {
+
case jmodels.CommitOperationCreate:
raw := json.RawMessage(e.Commit.Record)
record := tangled.KnotMember{}
err = json.Unmarshal(raw, &record)
···
l.Info("added knot member")
+
case jmodels.CommitOperationDelete:
// we don't store knot members in a table (like we do for spindle)
// and we can't remove this just yet. possibly fixed if we switch
···
+
func (i *Ingester) ingestKnot(e *jmodels.Event) error {
···
l = l.With("nsid", e.Commit.Collection)
switch e.Commit.Operation {
+
case jmodels.CommitOperationCreate:
raw := json.RawMessage(e.Commit.Record)
err = json.Unmarshal(raw, &record)
···
+
case jmodels.CommitOperationDelete:
ddb, ok := i.Db.Execer.(*db.DB)
···
+
func (i *Ingester) ingestIssue(ctx context.Context, e *jmodels.Event) error {
···
switch e.Commit.Operation {
+
case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate:
raw := json.RawMessage(e.Commit.Record)
record := tangled.RepoIssue{}
err = json.Unmarshal(raw, &record)
···
+
case jmodels.CommitOperationDelete:
if err := db.DeleteIssues(
···
+
func (i *Ingester) ingestIssueComment(e *jmodels.Event) error {
···
switch e.Commit.Operation {
+
case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate:
raw := json.RawMessage(e.Commit.Record)
record := tangled.RepoIssueComment{}
err = json.Unmarshal(raw, &record)
···
+
case jmodels.CommitOperationDelete:
if err := db.DeleteIssueComments(
···
+
func (i *Ingester) ingestLabelDefinition(e *jmodels.Event) error {
···
switch e.Commit.Operation {
+
case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate:
raw := json.RawMessage(e.Commit.Record)
record := tangled.LabelDefinition{}
err = json.Unmarshal(raw, &record)
···
+
case jmodels.CommitOperationDelete:
if err := db.DeleteLabelDefinition(