83 lines
2.6 KiB
Go
83 lines
2.6 KiB
Go
package tysc
|
|
|
|
import (
|
|
"gitlab.thpeetz.de/kontor/kontor-go/pkg/dao"
|
|
|
|
mgo "gopkg.in/mgo.v2"
|
|
"gopkg.in/mgo.v2/bson"
|
|
)
|
|
|
|
// InsertSetDAO extends the type BaseDAO.
|
|
type InsertSetDAO struct {
|
|
Db dao.BaseDAO
|
|
}
|
|
|
|
const (
|
|
// INSERTSETCOLLECTION defines the collection name for storing insert sets.
|
|
INSERTSETCOLLECTION = "insertSet"
|
|
// INSERTSETMODEL defines the name of the insert set data model.
|
|
INSERTSETMODEL = "kontor.tysc.insertSet"
|
|
)
|
|
|
|
// FindAll retrieves the list of cards from the database.
|
|
func (m *InsertSetDAO) FindAll() ([]InsertSet, error) {
|
|
m.Db.Connect()
|
|
var insertSets []InsertSet
|
|
err := m.Db.MongoDb.C(INSERTSETCOLLECTION).Find(bson.M{"model": INSERTSETMODEL}).All(&insertSets)
|
|
return insertSets, err
|
|
}
|
|
|
|
// FindByID returns an card with given id or returns the error.
|
|
func (m *InsertSetDAO) FindByID(id string) (InsertSet, error) {
|
|
m.Db.Connect()
|
|
var insertSet InsertSet
|
|
err := m.Db.MongoDb.C(INSERTSETCOLLECTION).FindId(bson.ObjectIdHex(id)).One(&insertSet)
|
|
return insertSet, err
|
|
}
|
|
|
|
// FindByManufacturer returns a insert set with given manufacturer or returns the error.
|
|
func (m *InsertSetDAO) FindByManufacturer(manufacturer string) ([]InsertSet, error) {
|
|
m.Db.Connect()
|
|
var insertSets []InsertSet
|
|
err := m.Db.MongoDb.C(INSERTSETCOLLECTION).Find(bson.M{"model": INSERTSETMODEL, "manufacturer": bson.ObjectIdHex(manufacturer)}).All(&insertSets)
|
|
return insertSets, err
|
|
}
|
|
|
|
// FindByName returns a insert set with given name or returns the error.
|
|
func (m *InsertSetDAO) FindByName(name string) (InsertSet, error) {
|
|
m.Db.Connect()
|
|
var insertSet InsertSet
|
|
err := m.Db.MongoDb.C(INSERTSETCOLLECTION).Find(bson.M{"name": name, "model": INSERTSETMODEL}).One(&insertSet)
|
|
return insertSet, err
|
|
}
|
|
|
|
// Insert an insert set into database.
|
|
func (m *InsertSetDAO) Insert(insertSet InsertSet) error {
|
|
m.Db.Connect()
|
|
insertSet.Model = INSERTSETMODEL
|
|
err := m.Db.MongoDb.C(INSERTSETCOLLECTION).Insert(&insertSet)
|
|
return err
|
|
}
|
|
|
|
// Upsert an insert set into database.
|
|
func (m *InsertSetDAO) Upsert(insertSet InsertSet) (*mgo.ChangeInfo, error) {
|
|
m.Db.Connect()
|
|
insertSet.Model = INSERTSETMODEL
|
|
info, err := m.Db.MongoDb.C(INSERTSETCOLLECTION).Upsert(bson.M{"name": insertSet.Name}, &insertSet)
|
|
return info, err
|
|
}
|
|
|
|
// Update an existing insert set.
|
|
func (m *InsertSetDAO) Update(insertSet InsertSet) error {
|
|
m.Db.Connect()
|
|
err := m.Db.MongoDb.C(INSERTSETCOLLECTION).UpdateId(insertSet.ID, &insertSet)
|
|
return err
|
|
}
|
|
|
|
// Delete an existing insert set.
|
|
func (m *InsertSetDAO) Delete(insertSet InsertSet) error {
|
|
m.Db.Connect()
|
|
err := m.Db.MongoDb.C(INSERTSETCOLLECTION).Remove(&insertSet)
|
|
return err
|
|
}
|