package models import ( "github.com/thermokarst/bactdb/Godeps/_workspace/src/github.com/jmoiron/modl" "github.com/thermokarst/bactdb/types" ) type base interface { PreInsert(modl.SqlExecutor) error PreUpdate(modl.SqlExecutor) error UpdateError() error DeleteError() error validate() types.ValidationError } // Create will create a new DB record of a model. func Create(b base) error { if err := b.validate(); err != nil { return err } if err := DBH.Insert(b); err != nil { return nil } return nil } // Update runs a DB update on a model. func Update(b base) error { if err := b.validate(); err != nil { return err } count, err := DBH.Update(b) if err != nil { return err } if count != 1 { return b.UpdateError() } return nil } // Delete runs a DB delete on a model. func Delete(b base) error { count, err := DBH.Delete(b) if err != nil { return err } if count != 1 { return b.DeleteError() } return nil }