Files
kontor/go/pkg/tysc/manufacturer_dao.go
T
2025-04-29 12:52:55 +02:00

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
}