add CountUsers func to sqlstore

This commit is contained in:
Danny van Kooten 2018-09-12 09:11:50 +02:00
parent b860937107
commit 291d53fcaf
3 changed files with 13 additions and 1 deletions

View File

@ -72,7 +72,7 @@ func (api *API) LogoutHandler(w http.ResponseWriter, r *http.Request) error {
return respond(w, envelope{Data: true})
}
/* middleware */
// Authorize is middleware that aborts the request if unauthorized
func (api *API) Authorize(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
// clear context from request after it is handled

View File

@ -10,11 +10,13 @@ import (
// ErrNoResults is returned whenever a single-item query returns 0 results
var ErrNoResults = sqlstore.ErrNoResults // ???
// Datastore represents a database implementations
type Datastore interface {
// users
GetUser(int64) (*models.User, error)
GetUserByEmail(string) (*models.User, error)
SaveUser(*models.User) error
CountUsers() (int64, error)
// site stats
GetSiteStats(time.Time) (*models.SiteStats, error)

View File

@ -2,6 +2,7 @@ package sqlstore
import (
"database/sql"
"github.com/usefathom/fathom/pkg/models"
)
@ -49,3 +50,12 @@ func (db *sqlstore) SaveUser(u *models.User) error {
u.ID, _ = result.LastInsertId()
return nil
}
// CountUsers returns the number of users
func (db *sqlstore) CountUsers() (int64, error) {
var c int64
var sql = `SELECT COUNT(*) FROM users`
query := db.Rebind(sql)
err := db.Get(&c, query)
return c, err
}