statping/types/checkins/database.go

53 lines
958 B
Go

package checkins
import (
"github.com/statping/statping/database"
"github.com/statping/statping/utils"
)
func DB() database.Database {
return database.DB().Model(&Checkin{})
}
func DBhits() database.Database {
return database.DB().Model(&CheckinHit{})
}
func Find(id int64) (*Checkin, error) {
var checkin Checkin
db := DB().Where("id = ?", id).Find(&checkin)
return &checkin, db.Error()
}
func FindByAPI(key string) (*Checkin, error) {
var checkin Checkin
db := DB().Where("api = ?", key).Find(&checkin)
return &checkin, db.Error()
}
func All() []*Checkin {
var checkins []*Checkin
DB().Find(&checkins)
return checkins
}
func (c *Checkin) Create() error {
c.ApiKey = utils.RandomString(7)
db := DB().Create(c)
c.Start()
go c.CheckinRoutine()
return db.Error()
}
func (c *Checkin) Update() error {
db := DB().Update(c)
return db.Error()
}
func (c *Checkin) Delete() error {
c.Close()
db := DB().Delete(c)
return db.Error()
}