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