statping/database/failures.go

52 lines
901 B
Go

package database
import (
"github.com/hunterlong/statping/types"
"time"
)
type FailureObj struct {
o *Object
}
type Failurer interface {
Model() []*types.Failure
}
func (f *FailureObj) Model() []*types.Failure {
return f.All()
}
func (f *FailureObj) All() []*types.Failure {
var fails []*types.Failure
f.o.db.Find(&fails)
return fails
}
func (f *FailureObj) DeleteAll() error {
query := database.Exec(`DELETE FROM failures WHERE service = ?`, f.o.Id)
return query.Error()
}
func (f *FailureObj) Last(amount int) *types.Failure {
var fail types.Failure
f.o.db.Limit(amount).Last(&fail)
return &fail
}
func (f *FailureObj) Count() int {
var amount int
f.o.db.Count(&amount)
return amount
}
func (f *FailureObj) Since(t time.Time) []*types.Failure {
var fails []*types.Failure
f.o.db.Since(t).Find(&fails)
return fails
}
func (f *FailureObj) object() *Object {
return f.o
}