some additional Scan error handling
This commit is contained in:
@@ -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)
|
||||||
|
if err == nil {
|
||||||
return rc, 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,7 +325,8 @@ 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 err == nil {
|
||||||
if offset > 0 {
|
if offset > 0 {
|
||||||
rs, err = amdb.QueryContext(ctx, `SELECT m.uid FROM commmember m, users u, contacts c WHERE m.commid = ? AND m.uid = u.uid
|
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 ? OFFSET ?", c.Id, max, offset)
|
AND u.contactid = c.contactid`+q+" ORDER BY u.username LIMIT ? OFFSET ?", c.Id, max, offset)
|
||||||
@@ -329,6 +334,7 @@ func (c *Community) ListMembers(ctx context.Context, field int, oper int, term s
|
|||||||
rs, err = amdb.QueryContext(ctx, `SELECT m.uid FROM commmember m, users u, contacts c WHERE m.commid = ? AND m.uid = u.uid
|
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)
|
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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user