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