forked from tangled.org/core
this repo has no description

appview/models: init

move db.Artifact to models.Artifact

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

oppi.li 454dcc8e a8781322

verified
Changed files
+91 -77
appview
+5 -25
appview/db/artifact.go
··· 5 5 "strings" 6 6 "time" 7 7 8 - "github.com/bluesky-social/indigo/atproto/syntax" 9 8 "github.com/go-git/go-git/v5/plumbing" 10 9 "github.com/ipfs/go-cid" 11 - "tangled.org/core/api/tangled" 10 + "tangled.org/core/appview/models" 12 11 ) 13 12 14 - type Artifact struct { 15 - Id uint64 16 - Did string 17 - Rkey string 18 - 19 - RepoAt syntax.ATURI 20 - Tag plumbing.Hash 21 - CreatedAt time.Time 22 - 23 - BlobCid cid.Cid 24 - Name string 25 - Size uint64 26 - MimeType string 27 - } 28 - 29 - func (a *Artifact) ArtifactAt() syntax.ATURI { 30 - return syntax.ATURI(fmt.Sprintf("at://%s/%s/%s", a.Did, tangled.RepoArtifactNSID, a.Rkey)) 31 - } 32 - 33 - func AddArtifact(e Execer, artifact Artifact) error { 13 + func AddArtifact(e Execer, artifact models.Artifact) error { 34 14 _, err := e.Exec( 35 15 `insert or ignore into artifacts ( 36 16 did, ··· 57 37 return err 58 38 } 59 39 60 - func GetArtifact(e Execer, filters ...filter) ([]Artifact, error) { 61 - var artifacts []Artifact 40 + func GetArtifact(e Execer, filters ...filter) ([]models.Artifact, error) { 41 + var artifacts []models.Artifact 62 42 63 43 var conditions []string 64 44 var args []any ··· 94 74 defer rows.Close() 95 75 96 76 for rows.Next() { 97 - var artifact Artifact 77 + var artifact models.Artifact 98 78 var createdAt string 99 79 var tag []byte 100 80 var blobCid string
+47 -46
appview/ingester.go
··· 9 9 "time" 10 10 11 11 "github.com/bluesky-social/indigo/atproto/syntax" 12 - "github.com/bluesky-social/jetstream/pkg/models" 12 + jmodels "github.com/bluesky-social/jetstream/pkg/models" 13 13 "github.com/go-git/go-git/v5/plumbing" 14 14 "github.com/ipfs/go-cid" 15 15 "tangled.org/core/api/tangled" 16 16 "tangled.org/core/appview/config" 17 17 "tangled.org/core/appview/db" 18 + "tangled.org/core/appview/models" 18 19 "tangled.org/core/appview/serververify" 19 20 "tangled.org/core/appview/validator" 20 21 "tangled.org/core/idresolver" ··· 30 31 Validator *validator.Validator 31 32 } 32 33 33 - type processFunc func(ctx context.Context, e *models.Event) error 34 + type processFunc func(ctx context.Context, e *jmodels.Event) error 34 35 35 36 func (i *Ingester) Ingest() processFunc { 36 - return func(ctx context.Context, e *models.Event) error { 37 + return func(ctx context.Context, e *jmodels.Event) error { 37 38 var err error 38 39 defer func() { 39 40 eventTime := e.TimeUS ··· 45 46 46 47 l := i.Logger.With("kind", e.Kind) 47 48 switch e.Kind { 48 - case models.EventKindAccount: 49 + case jmodels.EventKindAccount: 49 50 if !e.Account.Active && *e.Account.Status == "deactivated" { 50 51 err = i.IdResolver.InvalidateIdent(ctx, e.Account.Did) 51 52 } 52 - case models.EventKindIdentity: 53 + case jmodels.EventKindIdentity: 53 54 err = i.IdResolver.InvalidateIdent(ctx, e.Identity.Did) 54 - case models.EventKindCommit: 55 + case jmodels.EventKindCommit: 55 56 switch e.Commit.Collection { 56 57 case tangled.GraphFollowNSID: 57 58 err = i.ingestFollow(e) ··· 91 92 } 92 93 } 93 94 94 - func (i *Ingester) ingestStar(e *models.Event) error { 95 + func (i *Ingester) ingestStar(e *jmodels.Event) error { 95 96 var err error 96 97 did := e.Did 97 98 ··· 99 100 l = l.With("nsid", e.Commit.Collection) 100 101 101 102 switch e.Commit.Operation { 102 - case models.CommitOperationCreate, models.CommitOperationUpdate: 103 + case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate: 103 104 var subjectUri syntax.ATURI 104 105 105 106 raw := json.RawMessage(e.Commit.Record) ··· 120 121 RepoAt: subjectUri, 121 122 Rkey: e.Commit.RKey, 122 123 }) 123 - case models.CommitOperationDelete: 124 + case jmodels.CommitOperationDelete: 124 125 err = db.DeleteStarByRkey(i.Db, did, e.Commit.RKey) 125 126 } 126 127 ··· 131 132 return nil 132 133 } 133 134 134 - func (i *Ingester) ingestFollow(e *models.Event) error { 135 + func (i *Ingester) ingestFollow(e *jmodels.Event) error { 135 136 var err error 136 137 did := e.Did 137 138 ··· 139 140 l = l.With("nsid", e.Commit.Collection) 140 141 141 142 switch e.Commit.Operation { 142 - case models.CommitOperationCreate, models.CommitOperationUpdate: 143 + case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate: 143 144 raw := json.RawMessage(e.Commit.Record) 144 145 record := tangled.GraphFollow{} 145 146 err = json.Unmarshal(raw, &record) ··· 153 154 SubjectDid: record.Subject, 154 155 Rkey: e.Commit.RKey, 155 156 }) 156 - case models.CommitOperationDelete: 157 + case jmodels.CommitOperationDelete: 157 158 err = db.DeleteFollowByRkey(i.Db, did, e.Commit.RKey) 158 159 } 159 160 ··· 164 165 return nil 165 166 } 166 167 167 - func (i *Ingester) ingestPublicKey(e *models.Event) error { 168 + func (i *Ingester) ingestPublicKey(e *jmodels.Event) error { 168 169 did := e.Did 169 170 var err error 170 171 ··· 172 173 l = l.With("nsid", e.Commit.Collection) 173 174 174 175 switch e.Commit.Operation { 175 - case models.CommitOperationCreate, models.CommitOperationUpdate: 176 + case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate: 176 177 l.Debug("processing add of pubkey") 177 178 raw := json.RawMessage(e.Commit.Record) 178 179 record := tangled.PublicKey{} ··· 185 186 name := record.Name 186 187 key := record.Key 187 188 err = db.AddPublicKey(i.Db, did, name, key, e.Commit.RKey) 188 - case models.CommitOperationDelete: 189 + case jmodels.CommitOperationDelete: 189 190 l.Debug("processing delete of pubkey") 190 191 err = db.DeletePublicKeyByRkey(i.Db, did, e.Commit.RKey) 191 192 } ··· 197 198 return nil 198 199 } 199 200 200 - func (i *Ingester) ingestArtifact(e *models.Event) error { 201 + func (i *Ingester) ingestArtifact(e *jmodels.Event) error { 201 202 did := e.Did 202 203 var err error 203 204 ··· 205 206 l = l.With("nsid", e.Commit.Collection) 206 207 207 208 switch e.Commit.Operation { 208 - case models.CommitOperationCreate, models.CommitOperationUpdate: 209 + case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate: 209 210 raw := json.RawMessage(e.Commit.Record) 210 211 record := tangled.RepoArtifact{} 211 212 err = json.Unmarshal(raw, &record) ··· 234 235 createdAt = time.Now() 235 236 } 236 237 237 - artifact := db.Artifact{ 238 + artifact := models.Artifact{ 238 239 Did: did, 239 240 Rkey: e.Commit.RKey, 240 241 RepoAt: repoAt, ··· 247 248 } 248 249 249 250 err = db.AddArtifact(i.Db, artifact) 250 - case models.CommitOperationDelete: 251 + case jmodels.CommitOperationDelete: 251 252 err = db.DeleteArtifact(i.Db, db.FilterEq("did", did), db.FilterEq("rkey", e.Commit.RKey)) 252 253 } 253 254 ··· 258 259 return nil 259 260 } 260 261 261 - func (i *Ingester) ingestProfile(e *models.Event) error { 262 + func (i *Ingester) ingestProfile(e *jmodels.Event) error { 262 263 did := e.Did 263 264 var err error 264 265 ··· 270 271 } 271 272 272 273 switch e.Commit.Operation { 273 - case models.CommitOperationCreate, models.CommitOperationUpdate: 274 + case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate: 274 275 raw := json.RawMessage(e.Commit.Record) 275 276 record := tangled.ActorProfile{} 276 277 err = json.Unmarshal(raw, &record) ··· 338 339 } 339 340 340 341 err = db.UpsertProfile(tx, &profile) 341 - case models.CommitOperationDelete: 342 + case jmodels.CommitOperationDelete: 342 343 err = db.DeleteArtifact(i.Db, db.FilterEq("did", did), db.FilterEq("rkey", e.Commit.RKey)) 343 344 } 344 345 ··· 349 350 return nil 350 351 } 351 352 352 - func (i *Ingester) ingestSpindleMember(ctx context.Context, e *models.Event) error { 353 + func (i *Ingester) ingestSpindleMember(ctx context.Context, e *jmodels.Event) error { 353 354 did := e.Did 354 355 var err error 355 356 ··· 357 358 l = l.With("nsid", e.Commit.Collection) 358 359 359 360 switch e.Commit.Operation { 360 - case models.CommitOperationCreate: 361 + case jmodels.CommitOperationCreate: 361 362 raw := json.RawMessage(e.Commit.Record) 362 363 record := tangled.SpindleMember{} 363 364 err = json.Unmarshal(raw, &record) ··· 402 403 } 403 404 404 405 l.Info("added spindle member") 405 - case models.CommitOperationDelete: 406 + case jmodels.CommitOperationDelete: 406 407 rkey := e.Commit.RKey 407 408 408 409 ddb, ok := i.Db.Execer.(*db.DB) ··· 455 456 return nil 456 457 } 457 458 458 - func (i *Ingester) ingestSpindle(ctx context.Context, e *models.Event) error { 459 + func (i *Ingester) ingestSpindle(ctx context.Context, e *jmodels.Event) error { 459 460 did := e.Did 460 461 var err error 461 462 ··· 463 464 l = l.With("nsid", e.Commit.Collection) 464 465 465 466 switch e.Commit.Operation { 466 - case models.CommitOperationCreate: 467 + case jmodels.CommitOperationCreate: 467 468 raw := json.RawMessage(e.Commit.Record) 468 469 record := tangled.Spindle{} 469 470 err = json.Unmarshal(raw, &record) ··· 501 502 502 503 return nil 503 504 504 - case models.CommitOperationDelete: 505 + case jmodels.CommitOperationDelete: 505 506 instance := e.Commit.RKey 506 507 507 508 ddb, ok := i.Db.Execer.(*db.DB) ··· 569 570 return nil 570 571 } 571 572 572 - func (i *Ingester) ingestString(e *models.Event) error { 573 + func (i *Ingester) ingestString(e *jmodels.Event) error { 573 574 did := e.Did 574 575 rkey := e.Commit.RKey 575 576 ··· 584 585 } 585 586 586 587 switch e.Commit.Operation { 587 - case models.CommitOperationCreate, models.CommitOperationUpdate: 588 + case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate: 588 589 raw := json.RawMessage(e.Commit.Record) 589 590 record := tangled.String{} 590 591 err = json.Unmarshal(raw, &record) ··· 607 608 608 609 return nil 609 610 610 - case models.CommitOperationDelete: 611 + case jmodels.CommitOperationDelete: 611 612 if err := db.DeleteString( 612 613 ddb, 613 614 db.FilterEq("did", did), ··· 623 624 return nil 624 625 } 625 626 626 - func (i *Ingester) ingestKnotMember(e *models.Event) error { 627 + func (i *Ingester) ingestKnotMember(e *jmodels.Event) error { 627 628 did := e.Did 628 629 var err error 629 630 ··· 631 632 l = l.With("nsid", e.Commit.Collection) 632 633 633 634 switch e.Commit.Operation { 634 - case models.CommitOperationCreate: 635 + case jmodels.CommitOperationCreate: 635 636 raw := json.RawMessage(e.Commit.Record) 636 637 record := tangled.KnotMember{} 637 638 err = json.Unmarshal(raw, &record) ··· 661 662 } 662 663 663 664 l.Info("added knot member") 664 - case models.CommitOperationDelete: 665 + case jmodels.CommitOperationDelete: 665 666 // we don't store knot members in a table (like we do for spindle) 666 667 // and we can't remove this just yet. possibly fixed if we switch 667 668 // to either: ··· 675 676 return nil 676 677 } 677 678 678 - func (i *Ingester) ingestKnot(e *models.Event) error { 679 + func (i *Ingester) ingestKnot(e *jmodels.Event) error { 679 680 did := e.Did 680 681 var err error 681 682 ··· 683 684 l = l.With("nsid", e.Commit.Collection) 684 685 685 686 switch e.Commit.Operation { 686 - case models.CommitOperationCreate: 687 + case jmodels.CommitOperationCreate: 687 688 raw := json.RawMessage(e.Commit.Record) 688 689 record := tangled.Knot{} 689 690 err = json.Unmarshal(raw, &record) ··· 718 719 719 720 return nil 720 721 721 - case models.CommitOperationDelete: 722 + case jmodels.CommitOperationDelete: 722 723 domain := e.Commit.RKey 723 724 724 725 ddb, ok := i.Db.Execer.(*db.DB) ··· 778 779 779 780 return nil 780 781 } 781 - func (i *Ingester) ingestIssue(ctx context.Context, e *models.Event) error { 782 + func (i *Ingester) ingestIssue(ctx context.Context, e *jmodels.Event) error { 782 783 did := e.Did 783 784 rkey := e.Commit.RKey 784 785 ··· 793 794 } 794 795 795 796 switch e.Commit.Operation { 796 - case models.CommitOperationCreate, models.CommitOperationUpdate: 797 + case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate: 797 798 raw := json.RawMessage(e.Commit.Record) 798 799 record := tangled.RepoIssue{} 799 800 err = json.Unmarshal(raw, &record) ··· 829 830 830 831 return nil 831 832 832 - case models.CommitOperationDelete: 833 + case jmodels.CommitOperationDelete: 833 834 if err := db.DeleteIssues( 834 835 ddb, 835 836 db.FilterEq("did", did), ··· 845 846 return nil 846 847 } 847 848 848 - func (i *Ingester) ingestIssueComment(e *models.Event) error { 849 + func (i *Ingester) ingestIssueComment(e *jmodels.Event) error { 849 850 did := e.Did 850 851 rkey := e.Commit.RKey 851 852 ··· 860 861 } 861 862 862 863 switch e.Commit.Operation { 863 - case models.CommitOperationCreate, models.CommitOperationUpdate: 864 + case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate: 864 865 raw := json.RawMessage(e.Commit.Record) 865 866 record := tangled.RepoIssueComment{} 866 867 err = json.Unmarshal(raw, &record) ··· 884 885 885 886 return nil 886 887 887 - case models.CommitOperationDelete: 888 + case jmodels.CommitOperationDelete: 888 889 if err := db.DeleteIssueComments( 889 890 ddb, 890 891 db.FilterEq("did", did), ··· 899 900 return nil 900 901 } 901 902 902 - func (i *Ingester) ingestLabelDefinition(e *models.Event) error { 903 + func (i *Ingester) ingestLabelDefinition(e *jmodels.Event) error { 903 904 did := e.Did 904 905 rkey := e.Commit.RKey 905 906 ··· 914 915 } 915 916 916 917 switch e.Commit.Operation { 917 - case models.CommitOperationCreate, models.CommitOperationUpdate: 918 + case jmodels.CommitOperationCreate, jmodels.CommitOperationUpdate: 918 919 raw := json.RawMessage(e.Commit.Record) 919 920 record := tangled.LabelDefinition{} 920 921 err = json.Unmarshal(raw, &record) ··· 938 939 939 940 return nil 940 941 941 - case models.CommitOperationDelete: 942 + case jmodels.CommitOperationDelete: 942 943 if err := db.DeleteLabelDefinition( 943 944 ddb, 944 945 db.FilterEq("did", did),
+30
appview/models/artifact.go
··· 1 + package models 2 + 3 + import ( 4 + "fmt" 5 + "time" 6 + 7 + "github.com/bluesky-social/indigo/atproto/syntax" 8 + "github.com/go-git/go-git/v5/plumbing" 9 + "github.com/ipfs/go-cid" 10 + "tangled.org/core/api/tangled" 11 + ) 12 + 13 + type Artifact struct { 14 + Id uint64 15 + Did string 16 + Rkey string 17 + 18 + RepoAt syntax.ATURI 19 + Tag plumbing.Hash 20 + CreatedAt time.Time 21 + 22 + BlobCid cid.Cid 23 + Name string 24 + Size uint64 25 + MimeType string 26 + } 27 + 28 + func (a *Artifact) ArtifactAt() syntax.ATURI { 29 + return syntax.ATURI(fmt.Sprintf("at://%s/%s/%s", a.Did, tangled.RepoArtifactNSID, a.Rkey)) 30 + }
+4 -3
appview/pages/pages.go
··· 20 20 "tangled.org/core/appview/commitverify" 21 21 "tangled.org/core/appview/config" 22 22 "tangled.org/core/appview/db" 23 + "tangled.org/core/appview/models" 23 24 "tangled.org/core/appview/oauth" 24 25 "tangled.org/core/appview/pages/markup" 25 26 "tangled.org/core/appview/pages/repoinfo" ··· 729 730 RepoInfo repoinfo.RepoInfo 730 731 Active string 731 732 types.RepoTagsResponse 732 - ArtifactMap map[plumbing.Hash][]db.Artifact 733 - DanglingArtifacts []db.Artifact 733 + ArtifactMap map[plumbing.Hash][]models.Artifact 734 + DanglingArtifacts []models.Artifact 734 735 } 735 736 736 737 func (p *Pages) RepoTags(w io.Writer, params RepoTagsParams) error { ··· 741 742 type RepoArtifactParams struct { 742 743 LoggedInUser *oauth.User 743 744 RepoInfo repoinfo.RepoInfo 744 - Artifact db.Artifact 745 + Artifact models.Artifact 745 746 } 746 747 747 748 func (p *Pages) RepoArtifactFragment(w io.Writer, params RepoArtifactParams) error {
+2 -1
appview/repo/artifact.go
··· 18 18 "github.com/ipfs/go-cid" 19 19 "tangled.org/core/api/tangled" 20 20 "tangled.org/core/appview/db" 21 + "tangled.org/core/appview/models" 21 22 "tangled.org/core/appview/pages" 22 23 "tangled.org/core/appview/reporesolver" 23 24 "tangled.org/core/appview/xrpcclient" ··· 100 101 } 101 102 defer tx.Rollback() 102 103 103 - artifact := db.Artifact{ 104 + artifact := models.Artifact{ 104 105 Did: user.Did, 105 106 Rkey: rkey, 106 107 RepoAt: f.RepoAt(),
+3 -2
appview/repo/repo.go
··· 24 24 "tangled.org/core/appview/commitverify" 25 25 "tangled.org/core/appview/config" 26 26 "tangled.org/core/appview/db" 27 + "tangled.org/core/appview/models" 27 28 "tangled.org/core/appview/notify" 28 29 "tangled.org/core/appview/oauth" 29 30 "tangled.org/core/appview/pages" ··· 575 576 } 576 577 577 578 // convert artifacts to map for easy UI building 578 - artifactMap := make(map[plumbing.Hash][]db.Artifact) 579 + artifactMap := make(map[plumbing.Hash][]models.Artifact) 579 580 for _, a := range artifacts { 580 581 artifactMap[a.Tag] = append(artifactMap[a.Tag], a) 581 582 } 582 583 583 - var danglingArtifacts []db.Artifact 584 + var danglingArtifacts []models.Artifact 584 585 for _, a := range artifacts { 585 586 found := false 586 587 for _, t := range result.Tags {