tiny 88x31 lexicon for atproto
0
fork

Configure Feed

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

try it in 1 query

+18 -32
+18 -32
db/lexicon.go
··· 101 101 func (s *Store) GetButtonAuth(uri string, ctx context.Context, did string) (*types.ButtonViewAuth, error) { 102 102 row := s.pool.QueryRow(ctx, ` 103 103 SELECT 104 - did, 105 - alt, 106 - href, 107 - cid, 108 - posted_at, 109 - like_count 110 - FROM buttons 104 + b.did, 105 + b.alt, 106 + b.href, 107 + b.cid, 108 + b.like_count, 109 + CASE 110 + WHEN EXISTS ( 111 + SELECT 1 112 + FROM likes l 113 + WHERE did = $1 AND l.subject_uri = b.uri AND l.subject_cid = b.cid 114 + ) THEN TRUE 115 + ELSE FALSE 116 + END AS is_liked 117 + FROM buttons b 111 118 WHERE uri = $1 112 119 `, uri) 113 - var btn types.Button 120 + var btn types.ButtonViewAuth 114 121 err := row.Scan(&btn.DID, 115 122 &btn.Alt, 116 123 &btn.HREF, 117 124 &btn.CID, 118 - &btn.PostedAt, 119 - &btn.Likes) 125 + &btn.Likes, 126 + &btn.Liked) 120 127 if err != nil { 121 128 return nil, err 122 129 } 123 - row = s.pool.QueryRow(ctx, 124 - `CASE 125 - WHEN EXISTS ( 126 - SELECT 1 127 - FROM likes 128 - WHERE did = $1 AND subject_uri = $2 AND subject_cid = $3 129 - ) THEN TRUE 130 - ELSE FALSE 131 - END AS is_liked`, did, btn.URI, btn.CID, 132 - ) 133 - var btna types.ButtonViewAuth 134 - btna.URI = uri 135 - btna.CID = btn.CID 136 - btna.DID = btn.DID 137 - btna.Alt = btn.Alt 138 - btna.HREF = btn.HREF 139 - btna.Likes = btn.Likes 140 - err = row.Scan(&btna.Liked) 141 - if err != nil { 142 - return nil, err 143 - } 144 - return &btna, nil 130 + return &btn, nil 145 131 } 146 132 147 133 func (s *Store) GetButton(uri string, ctx context.Context) (*types.Button, error) {