···55 "strings"66 "time"7788- "github.com/bluesky-social/indigo/atproto/syntax"98 "github.com/go-git/go-git/v5/plumbing"109 "github.com/ipfs/go-cid"1111- "tangled.org/core/api/tangled"1010+ "tangled.org/core/appview/models"1211)13121414-type Artifact struct {1515- Id uint641616- Did string1717- Rkey string1818-1919- RepoAt syntax.ATURI2020- Tag plumbing.Hash2121- CreatedAt time.Time2222-2323- BlobCid cid.Cid2424- Name string2525- Size uint642626- MimeType string2727-}2828-2929-func (a *Artifact) ArtifactAt() syntax.ATURI {3030- return syntax.ATURI(fmt.Sprintf("at://%s/%s/%s", a.Did, tangled.RepoArtifactNSID, a.Rkey))3131-}3232-3333-func AddArtifact(e Execer, artifact Artifact) error {1313+func AddArtifact(e Execer, artifact models.Artifact) error {3414 _, err := e.Exec(3515 `insert or ignore into artifacts (3616 did,···3757 return err3858}39594040-func GetArtifact(e Execer, filters ...filter) ([]Artifact, error) {4141- var artifacts []Artifact6060+func GetArtifact(e Execer, filters ...filter) ([]models.Artifact, error) {6161+ var artifacts []models.Artifact42624363 var conditions []string4464 var args []any···7494 defer rows.Close()75957696 for rows.Next() {7777- var artifact Artifact9797+ var artifact models.Artifact7898 var createdAt string7999 var tag []byte80100 var blobCid string
+47-46
appview/ingester.go
···99 "time"10101111 "github.com/bluesky-social/indigo/atproto/syntax"1212- "github.com/bluesky-social/jetstream/pkg/models"1212+ jmodels "github.com/bluesky-social/jetstream/pkg/models"1313 "github.com/go-git/go-git/v5/plumbing"1414 "github.com/ipfs/go-cid"1515 "tangled.org/core/api/tangled"1616 "tangled.org/core/appview/config"1717 "tangled.org/core/appview/db"1818+ "tangled.org/core/appview/models"1819 "tangled.org/core/appview/serververify"1920 "tangled.org/core/appview/validator"2021 "tangled.org/core/idresolver"···3130 Validator *validator.Validator3231}33323434-type processFunc func(ctx context.Context, e *models.Event) error3333+type processFunc func(ctx context.Context, e *jmodels.Event) error35343635func (i *Ingester) Ingest() processFunc {3737- return func(ctx context.Context, e *models.Event) error {3636+ return func(ctx context.Context, e *jmodels.Event) error {3837 var err error3938 defer func() {4039 eventTime := e.TimeUS···46454746 l := i.Logger.With("kind", e.Kind)4847 switch e.Kind {4949- case models.EventKindAccount:4848+ case jmodels.EventKindAccount:5049 if !e.Account.Active && *e.Account.Status == "deactivated" {5150 err = i.IdResolver.InvalidateIdent(ctx, e.Account.Did)5251 }5353- case models.EventKindIdentity:5252+ case jmodels.EventKindIdentity:5453 err = i.IdResolver.InvalidateIdent(ctx, e.Identity.Did)5555- case models.EventKindCommit:5454+ case jmodels.EventKindCommit:5655 switch e.Commit.Collection {5756 case tangled.GraphFollowNSID:5857 err = i.ingestFollow(e)···9291 }9392}94939595-func (i *Ingester) ingestStar(e *models.Event) error {9494+func (i *Ingester) ingestStar(e *jmodels.Event) error {9695 var err error9796 did := e.Did9897···10099 l = l.With("nsid", e.Commit.Collection)101100102101 switch e.Commit.Operation {103103- case models.CommitOperationCreate, models.CommitOperationUpdate:102102+ case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate:104103 var subjectUri syntax.ATURI105104106105 raw := json.RawMessage(e.Commit.Record)···121120 RepoAt: subjectUri,122121 Rkey: e.Commit.RKey,123122 })124124- case models.CommitOperationDelete:123123+ case jmodels.CommitOperationDelete:125124 err = db.DeleteStarByRkey(i.Db, did, e.Commit.RKey)126125 }127126···132131 return nil133132}134133135135-func (i *Ingester) ingestFollow(e *models.Event) error {134134+func (i *Ingester) ingestFollow(e *jmodels.Event) error {136135 var err error137136 did := e.Did138137···140139 l = l.With("nsid", e.Commit.Collection)141140142141 switch e.Commit.Operation {143143- case models.CommitOperationCreate, models.CommitOperationUpdate:142142+ case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate:144143 raw := json.RawMessage(e.Commit.Record)145144 record := tangled.GraphFollow{}146145 err = json.Unmarshal(raw, &record)···154153 SubjectDid: record.Subject,155154 Rkey: e.Commit.RKey,156155 })157157- case models.CommitOperationDelete:156156+ case jmodels.CommitOperationDelete:158157 err = db.DeleteFollowByRkey(i.Db, did, e.Commit.RKey)159158 }160159···165164 return nil166165}167166168168-func (i *Ingester) ingestPublicKey(e *models.Event) error {167167+func (i *Ingester) ingestPublicKey(e *jmodels.Event) error {169168 did := e.Did170169 var err error171170···173172 l = l.With("nsid", e.Commit.Collection)174173175174 switch e.Commit.Operation {176176- case models.CommitOperationCreate, models.CommitOperationUpdate:175175+ case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate:177176 l.Debug("processing add of pubkey")178177 raw := json.RawMessage(e.Commit.Record)179178 record := tangled.PublicKey{}···186185 name := record.Name187186 key := record.Key188187 err = db.AddPublicKey(i.Db, did, name, key, e.Commit.RKey)189189- case models.CommitOperationDelete:188188+ case jmodels.CommitOperationDelete:190189 l.Debug("processing delete of pubkey")191190 err = db.DeletePublicKeyByRkey(i.Db, did, e.Commit.RKey)192191 }···198197 return nil199198}200199201201-func (i *Ingester) ingestArtifact(e *models.Event) error {200200+func (i *Ingester) ingestArtifact(e *jmodels.Event) error {202201 did := e.Did203202 var err error204203···206205 l = l.With("nsid", e.Commit.Collection)207206208207 switch e.Commit.Operation {209209- case models.CommitOperationCreate, models.CommitOperationUpdate:208208+ case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate:210209 raw := json.RawMessage(e.Commit.Record)211210 record := tangled.RepoArtifact{}212211 err = json.Unmarshal(raw, &record)···235234 createdAt = time.Now()236235 }237236238238- artifact := db.Artifact{237237+ artifact := models.Artifact{239238 Did: did,240239 Rkey: e.Commit.RKey,241240 RepoAt: repoAt,···248247 }249248250249 err = db.AddArtifact(i.Db, artifact)251251- case models.CommitOperationDelete:250250+ case jmodels.CommitOperationDelete:252251 err = db.DeleteArtifact(i.Db, db.FilterEq("did", did), db.FilterEq("rkey", e.Commit.RKey))253252 }254253···259258 return nil260259}261260262262-func (i *Ingester) ingestProfile(e *models.Event) error {261261+func (i *Ingester) ingestProfile(e *jmodels.Event) error {263262 did := e.Did264263 var err error265264···271270 }272271273272 switch e.Commit.Operation {274274- case models.CommitOperationCreate, models.CommitOperationUpdate:273273+ case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate:275274 raw := json.RawMessage(e.Commit.Record)276275 record := tangled.ActorProfile{}277276 err = json.Unmarshal(raw, &record)···339338 }340339341340 err = db.UpsertProfile(tx, &profile)342342- case models.CommitOperationDelete:341341+ case jmodels.CommitOperationDelete:343342 err = db.DeleteArtifact(i.Db, db.FilterEq("did", did), db.FilterEq("rkey", e.Commit.RKey))344343 }345344···350349 return nil351350}352351353353-func (i *Ingester) ingestSpindleMember(ctx context.Context, e *models.Event) error {352352+func (i *Ingester) ingestSpindleMember(ctx context.Context, e *jmodels.Event) error {354353 did := e.Did355354 var err error356355···358357 l = l.With("nsid", e.Commit.Collection)359358360359 switch e.Commit.Operation {361361- case models.CommitOperationCreate:360360+ case jmodels.CommitOperationCreate:362361 raw := json.RawMessage(e.Commit.Record)363362 record := tangled.SpindleMember{}364363 err = json.Unmarshal(raw, &record)···403402 }404403405404 l.Info("added spindle member")406406- case models.CommitOperationDelete:405405+ case jmodels.CommitOperationDelete:407406 rkey := e.Commit.RKey408407409408 ddb, ok := i.Db.Execer.(*db.DB)···456455 return nil457456}458457459459-func (i *Ingester) ingestSpindle(ctx context.Context, e *models.Event) error {458458+func (i *Ingester) ingestSpindle(ctx context.Context, e *jmodels.Event) error {460459 did := e.Did461460 var err error462461···464463 l = l.With("nsid", e.Commit.Collection)465464466465 switch e.Commit.Operation {467467- case models.CommitOperationCreate:466466+ case jmodels.CommitOperationCreate:468467 raw := json.RawMessage(e.Commit.Record)469468 record := tangled.Spindle{}470469 err = json.Unmarshal(raw, &record)···502501503502 return nil504503505505- case models.CommitOperationDelete:504504+ case jmodels.CommitOperationDelete:506505 instance := e.Commit.RKey507506508507 ddb, ok := i.Db.Execer.(*db.DB)···570569 return nil571570}572571573573-func (i *Ingester) ingestString(e *models.Event) error {572572+func (i *Ingester) ingestString(e *jmodels.Event) error {574573 did := e.Did575574 rkey := e.Commit.RKey576575···585584 }586585587586 switch e.Commit.Operation {588588- case models.CommitOperationCreate, models.CommitOperationUpdate:587587+ case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate:589588 raw := json.RawMessage(e.Commit.Record)590589 record := tangled.String{}591590 err = json.Unmarshal(raw, &record)···608607609608 return nil610609611611- case models.CommitOperationDelete:610610+ case jmodels.CommitOperationDelete:612611 if err := db.DeleteString(613612 ddb,614613 db.FilterEq("did", did),···624623 return nil625624}626625627627-func (i *Ingester) ingestKnotMember(e *models.Event) error {626626+func (i *Ingester) ingestKnotMember(e *jmodels.Event) error {628627 did := e.Did629628 var err error630629···632631 l = l.With("nsid", e.Commit.Collection)633632634633 switch e.Commit.Operation {635635- case models.CommitOperationCreate:634634+ case jmodels.CommitOperationCreate:636635 raw := json.RawMessage(e.Commit.Record)637636 record := tangled.KnotMember{}638637 err = json.Unmarshal(raw, &record)···662661 }663662664663 l.Info("added knot member")665665- case models.CommitOperationDelete:664664+ case jmodels.CommitOperationDelete:666665 // we don't store knot members in a table (like we do for spindle)667666 // and we can't remove this just yet. possibly fixed if we switch668667 // to either:···676675 return nil677676}678677679679-func (i *Ingester) ingestKnot(e *models.Event) error {678678+func (i *Ingester) ingestKnot(e *jmodels.Event) error {680679 did := e.Did681680 var err error682681···684683 l = l.With("nsid", e.Commit.Collection)685684686685 switch e.Commit.Operation {687687- case models.CommitOperationCreate:686686+ case jmodels.CommitOperationCreate:688687 raw := json.RawMessage(e.Commit.Record)689688 record := tangled.Knot{}690689 err = json.Unmarshal(raw, &record)···719718720719 return nil721720722722- case models.CommitOperationDelete:721721+ case jmodels.CommitOperationDelete:723722 domain := e.Commit.RKey724723725724 ddb, ok := i.Db.Execer.(*db.DB)···779778780779 return nil781780}782782-func (i *Ingester) ingestIssue(ctx context.Context, e *models.Event) error {781781+func (i *Ingester) ingestIssue(ctx context.Context, e *jmodels.Event) error {783782 did := e.Did784783 rkey := e.Commit.RKey785784···794793 }795794796795 switch e.Commit.Operation {797797- case models.CommitOperationCreate, models.CommitOperationUpdate:796796+ case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate:798797 raw := json.RawMessage(e.Commit.Record)799798 record := tangled.RepoIssue{}800799 err = json.Unmarshal(raw, &record)···830829831830 return nil832831833833- case models.CommitOperationDelete:832832+ case jmodels.CommitOperationDelete:834833 if err := db.DeleteIssues(835834 ddb,836835 db.FilterEq("did", did),···846845 return nil847846}848847849849-func (i *Ingester) ingestIssueComment(e *models.Event) error {848848+func (i *Ingester) ingestIssueComment(e *jmodels.Event) error {850849 did := e.Did851850 rkey := e.Commit.RKey852851···861860 }862861863862 switch e.Commit.Operation {864864- case models.CommitOperationCreate, models.CommitOperationUpdate:863863+ case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate:865864 raw := json.RawMessage(e.Commit.Record)866865 record := tangled.RepoIssueComment{}867866 err = json.Unmarshal(raw, &record)···885884886885 return nil887886888888- case models.CommitOperationDelete:887887+ case jmodels.CommitOperationDelete:889888 if err := db.DeleteIssueComments(890889 ddb,891890 db.FilterEq("did", did),···900899 return nil901900}902901903903-func (i *Ingester) ingestLabelDefinition(e *models.Event) error {902902+func (i *Ingester) ingestLabelDefinition(e *jmodels.Event) error {904903 did := e.Did905904 rkey := e.Commit.RKey906905···915914 }916915917916 switch e.Commit.Operation {918918- case models.CommitOperationCreate, models.CommitOperationUpdate:917917+ case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate:919918 raw := json.RawMessage(e.Commit.Record)920919 record := tangled.LabelDefinition{}921920 err = json.Unmarshal(raw, &record)···939938940939 return nil941940942942- case models.CommitOperationDelete:941941+ case jmodels.CommitOperationDelete:943942 if err := db.DeleteLabelDefinition(944943 ddb,945944 db.FilterEq("did", did),
+30
appview/models/artifact.go
···11+package models22+33+import (44+ "fmt"55+ "time"66+77+ "github.com/bluesky-social/indigo/atproto/syntax"88+ "github.com/go-git/go-git/v5/plumbing"99+ "github.com/ipfs/go-cid"1010+ "tangled.org/core/api/tangled"1111+)1212+1313+type Artifact struct {1414+ Id uint641515+ Did string1616+ Rkey string1717+1818+ RepoAt syntax.ATURI1919+ Tag plumbing.Hash2020+ CreatedAt time.Time2121+2222+ BlobCid cid.Cid2323+ Name string2424+ Size uint642525+ MimeType string2626+}2727+2828+func (a *Artifact) ArtifactAt() syntax.ATURI {2929+ return syntax.ATURI(fmt.Sprintf("at://%s/%s/%s", a.Did, tangled.RepoArtifactNSID, a.Rkey))3030+}
···2424 "tangled.org/core/appview/commitverify"2525 "tangled.org/core/appview/config"2626 "tangled.org/core/appview/db"2727+ "tangled.org/core/appview/models"2728 "tangled.org/core/appview/notify"2829 "tangled.org/core/appview/oauth"2930 "tangled.org/core/appview/pages"···576575 }577576578577 // convert artifacts to map for easy UI building579579- artifactMap := make(map[plumbing.Hash][]db.Artifact)578578+ artifactMap := make(map[plumbing.Hash][]models.Artifact)580579 for _, a := range artifacts {581580 artifactMap[a.Tag] = append(artifactMap[a.Tag], a)582581 }583582584584- var danglingArtifacts []db.Artifact583583+ var danglingArtifacts []models.Artifact585584 for _, a := range artifacts {586585 found := false587586 for _, t := range result.Tags {