gosora/common/statistics.go

39 lines
999 B
Go

package common
// EXPERIMENTAL
import (
"errors"
)
var StatStore StatStoreInt
type StatStoreInt interface {
LookupInt(name string, duration int, unit string) (int, error)
}
type DefaultStatStore struct {
}
func NewDefaultStatStore() *DefaultStatStore {
return &DefaultStatStore{}
}
func (s *DefaultStatStore) LookupInt(name string, duration int, unit string) (int, error) {
switch name {
case "postCount":
return s.countTable("replies", duration, unit)
}
return 0, errors.New("The requested stat doesn't exist")
}
func (s *DefaultStatStore) countTable(table string, duration int, unit string) (stat int, err error) {
/*counter := qgen.NewAcc().Count("replies").DateCutoff("createdAt", 1, "day").Prepare()
if acc.FirstError() != nil {
return 0, acc.FirstError()
}
err := counter.QueryRow().Scan(&stat)*/
return stat, err
}
//stmts.todaysPostCount, err = db.Prepare("select count(*) from replies where createdAt BETWEEN (utc_timestamp() - interval 1 day) and utc_timestamp()")