This repository has been archived on 2025-03-30. You can view files and clone it, but cannot push or open issues or pull requests.
bactdb/models/interfaces.go
Matthew Dillon d46e721063 Refactor delete handlers
Fixes #18.
2015-10-13 13:42:19 -07:00

42 lines
764 B
Go

package models
import "github.com/thermokarst/bactdb/Godeps/_workspace/src/github.com/jmoiron/modl"
type base interface {
PreInsert(modl.SqlExecutor) error
PreUpdate(modl.SqlExecutor) error
UpdateError() error
DeleteError() error
}
// Create will create a new DB record of a model.
func Create(b base) error {
if err := DBH.Insert(b); err != nil {
return nil
}
return nil
}
// Update runs a DB update on a model.
func Update(b base) error {
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
}