tangled
alpha
login
or
join now
moth11.net
/
88x31
0
fork
atom
tiny 88x31 lexicon for atproto
0
fork
atom
overview
issues
pulls
pipelines
i think this should improve cursors on getButtons
moth11.net
1 month ago
4633b7d4
fa12e0fa
+29
-13
2 changed files
expand all
collapse all
unified
split
db
lexicon.go
handler
button.go
+28
-12
db/lexicon.go
···
9
"time"
10
)
11
12
-
func (s *Store) GetButtonsAuth(limit int, cursor *string, ctx context.Context, did string) ([]types.ButtonViewAuth, time.Time, error) {
13
query := `
14
SELECT
15
b.uri,
···
43
}
44
if err != nil {
45
if err == pgx.ErrNoRows {
46
-
return nil, time.Time{}, nil
47
}
48
-
return nil, time.Time{}, err
49
}
50
defer rows.Close()
51
var buttons = make([]types.ButtonViewAuth, 0)
52
-
var postedAt time.Time
0
53
for rows.Next() {
0
0
0
0
54
var btnView types.ButtonViewAuth
55
err := rows.Scan(&btnView.URI, &btnView.DID, &btnView.Alt, &btnView.Title, &btnView.HREF, &postedAt, &btnView.Liked)
56
if err != nil {
57
-
return nil, time.Time{}, err
58
}
59
buttons = append(buttons, btnView)
0
0
0
60
}
61
return buttons, postedAt, nil
62
}
···
120
return buttons, postedAt, nil
121
}
122
123
-
func (s *Store) GetButtons(limit int, cursor *string, ctx context.Context) ([]types.ButtonView, time.Time, error) {
124
query := `
125
SELECT
126
uri,
···
143
var rows pgx.Rows
144
var err error
145
if cursor != nil {
146
-
rows, err = s.pool.Query(ctx, query, limit, cursor)
147
} else {
148
-
rows, err = s.pool.Query(ctx, query, limit)
149
}
150
if err != nil {
151
if err == pgx.ErrNoRows {
152
-
return nil, time.Time{}, nil
153
}
154
-
return nil, time.Time{}, err
155
}
156
defer rows.Close()
157
var buttons = make([]types.ButtonView, 0)
158
-
var postedAt time.Time
0
159
for rows.Next() {
0
0
0
0
160
var btnView types.ButtonView
161
err := rows.Scan(&btnView.URI, &btnView.CID, &btnView.DID, &btnView.Alt, &btnView.Title, &btnView.HREF, &postedAt)
162
if err != nil {
163
-
return nil, time.Time{}, err
164
}
165
buttons = append(buttons, btnView)
0
0
0
166
}
167
return buttons, postedAt, nil
168
}
···
9
"time"
10
)
11
12
+
func (s *Store) GetButtonsAuth(limit int, cursor *string, ctx context.Context, did string) ([]types.ButtonViewAuth, *time.Time, error) {
13
query := `
14
SELECT
15
b.uri,
···
43
}
44
if err != nil {
45
if err == pgx.ErrNoRows {
46
+
return nil, nil, nil
47
}
48
+
return nil, nil, err
49
}
50
defer rows.Close()
51
var buttons = make([]types.ButtonViewAuth, 0)
52
+
var postedAt *time.Time
53
+
i := 0
54
for rows.Next() {
55
+
i = i + 1
56
+
if i == limit+1 {
57
+
break
58
+
}
59
var btnView types.ButtonViewAuth
60
err := rows.Scan(&btnView.URI, &btnView.DID, &btnView.Alt, &btnView.Title, &btnView.HREF, &postedAt, &btnView.Liked)
61
if err != nil {
62
+
return nil, nil, err
63
}
64
buttons = append(buttons, btnView)
65
+
}
66
+
if i != limit+1 {
67
+
postedAt = nil
68
}
69
return buttons, postedAt, nil
70
}
···
128
return buttons, postedAt, nil
129
}
130
131
+
func (s *Store) GetButtons(limit int, cursor *string, ctx context.Context) ([]types.ButtonView, *time.Time, error) {
132
query := `
133
SELECT
134
uri,
···
151
var rows pgx.Rows
152
var err error
153
if cursor != nil {
154
+
rows, err = s.pool.Query(ctx, query, limit+1, cursor)
155
} else {
156
+
rows, err = s.pool.Query(ctx, query, limit+1)
157
}
158
if err != nil {
159
if err == pgx.ErrNoRows {
160
+
return nil, nil, nil
161
}
162
+
return nil, nil, err
163
}
164
defer rows.Close()
165
var buttons = make([]types.ButtonView, 0)
166
+
var postedAt *time.Time
167
+
i := 0
168
for rows.Next() {
169
+
i = i + 1
170
+
if i == limit+1 {
171
+
break
172
+
}
173
var btnView types.ButtonView
174
err := rows.Scan(&btnView.URI, &btnView.CID, &btnView.DID, &btnView.Alt, &btnView.Title, &btnView.HREF, &postedAt)
175
if err != nil {
176
+
return nil, nil, err
177
}
178
buttons = append(buttons, btnView)
179
+
}
180
+
if i != limit+1 {
181
+
postedAt = nil
182
}
183
return buttons, postedAt, nil
184
}
+1
-1
handler/button.go
···
43
myresp.Cursor = nil
44
} else {
45
myresp.BtnViews = btnViews
46
-
myresp.Cursor = &ncursor
47
}
48
err = encoder.Encode(btnViews)
49
if err != nil {
···
43
myresp.Cursor = nil
44
} else {
45
myresp.BtnViews = btnViews
46
+
myresp.Cursor = ncursor
47
}
48
err = encoder.Encode(btnViews)
49
if err != nil {