2017-12-30 05:47:46 +00:00
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 ) {
2018-08-04 11:46:36 +00:00
/ * counter := qgen . NewAcc ( ) . Count ( "replies" ) . DateCutoff ( "createdAt" , 1 , "day" ) . Prepare ( )
2017-12-30 05:47:46 +00:00
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()")