Monorepo for Tangled tangled.org
4

Configure Feed

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

1package db 2 3import ( 4 "database/sql" 5 "errors" 6) 7 8type RepoAlias struct { 9 OwnerDid string 10 Rkey string 11 RepoDid string 12 Rev string 13} 14 15func (d *DB) UpsertRepoAlias(a RepoAlias) error { 16 _, err := d.db.Exec( 17 `insert into repo_aliases (owner_did, rkey, repo_did, rev) 18 values (?, ?, ?, ?) 19 on conflict(owner_did, rkey) do update set 20 repo_did = excluded.repo_did, 21 rev = excluded.rev 22 where excluded.rev > repo_aliases.rev`, 23 a.OwnerDid, a.Rkey, a.RepoDid, a.Rev, 24 ) 25 return err 26} 27 28func (d *DB) ResolveAlias(ownerDid, rkey string) (*RepoAlias, error) { 29 var a RepoAlias 30 err := d.db.QueryRow( 31 `select owner_did, rkey, repo_did, rev from repo_aliases where owner_did = ? and rkey = ?`, 32 ownerDid, rkey, 33 ).Scan(&a.OwnerDid, &a.Rkey, &a.RepoDid, &a.Rev) 34 if errors.Is(err, sql.ErrNoRows) { 35 return nil, nil 36 } 37 if err != nil { 38 return nil, err 39 } 40 return &a, nil 41} 42 43func (d *DB) CurrentRkey(repoDid string) (ownerDid string, rkey string, err error) { 44 err = d.db.QueryRow( 45 `select owner_did, rkey from repo_aliases 46 where repo_did = ? 47 order by rev desc 48 limit 1`, 49 repoDid, 50 ).Scan(&ownerDid, &rkey) 51 return 52}