some additional Scan error handling

This commit is contained in:
2025-12-29 22:20:51 -07:00
parent 98a74487c2
commit 07395b9c1d
2 changed files with 21 additions and 11 deletions
+15 -9
View File
@@ -247,8 +247,12 @@ func (c *Community) MemberCount(ctx context.Context, hidden bool) (int, error) {
} }
if rs.Next() { if rs.Next() {
var rc int var rc int
rs.Scan(&rc) err = rs.Scan(&rc)
return rc, nil if err == nil {
return rc, nil
} else {
return -1, err
}
} }
return -1, errors.New("internal error reading member count") return -1, errors.New("internal error reading member count")
} }
@@ -321,13 +325,15 @@ func (c *Community) ListMembers(ctx context.Context, field int, oper int, term s
return nil, -1, errors.New("internal error getting member count") return nil, -1, errors.New("internal error getting member count")
} }
var total int var total int
rs.Scan(&total) err = rs.Scan(&total)
if offset > 0 { if err == nil {
rs, err = amdb.QueryContext(ctx, `SELECT m.uid FROM commmember m, users u, contacts c WHERE m.commid = ? AND m.uid = u.uid if offset > 0 {
AND u.contactid = c.contactid`+q+" ORDER BY u.username LIMIT ? OFFSET ?", c.Id, max, offset) rs, err = amdb.QueryContext(ctx, `SELECT m.uid FROM commmember m, users u, contacts c WHERE m.commid = ? AND m.uid = u.uid
} else { AND u.contactid = c.contactid`+q+" ORDER BY u.username LIMIT ? OFFSET ?", c.Id, max, offset)
rs, err = amdb.QueryContext(ctx, `SELECT m.uid FROM commmember m, users u, contacts c WHERE m.commid = ? AND m.uid = u.uid } else {
AND u.contactid = c.contactid`+q+" ORDER BY u.username LIMIT ?", c.Id, max) rs, err = amdb.QueryContext(ctx, `SELECT m.uid FROM commmember m, users u, contacts c WHERE m.commid = ? AND m.uid = u.uid
AND u.contactid = c.contactid`+q+" ORDER BY u.username LIMIT ?", c.Id, max)
}
} }
if err != nil { if err != nil {
return nil, total, err return nil, total, err
+6 -2
View File
@@ -18,6 +18,7 @@ import (
lru "github.com/hashicorp/golang-lru" lru "github.com/hashicorp/golang-lru"
"github.com/jmoiron/sqlx" "github.com/jmoiron/sqlx"
log "github.com/sirupsen/logrus"
) )
// Conference struct is the top-level structure for a conference. // Conference struct is the top-level structure for a conference.
@@ -75,8 +76,11 @@ func (c *Conference) Aliases(ctx context.Context) ([]string, error) {
rc := make([]string, 0, 5) rc := make([]string, 0, 5)
for rs.Next() { for rs.Next() {
var a string var a string
rs.Scan(&a) if err = rs.Scan(&a); err == nil {
rc = append(rc, a) rc = append(rc, a)
} else {
log.Errorf("Aliases scan error: %v", err)
}
} }
return rc, nil return rc, nil
} }