39 lines
1011 B
Go
39 lines
1011 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 (store *DefaultStatStore) LookupInt(name string, duration int, unit string) (int, error) {
|
|
switch name {
|
|
case "postCount":
|
|
return store.countTable("replies", duration, unit)
|
|
}
|
|
return 0, errors.New("The requested stat doesn't exist")
|
|
}
|
|
|
|
func (store *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()")
|