Files
memberDB/handlers/responsible.go
2025-11-07 08:29:17 +01:00

69 lines
1.6 KiB
Go

package handlers
import (
"errors"
"gitea.tecamino.com/paadi/memberDB/models"
)
func (dh *DatabaseHandler) AddNewResponsible(responsibles ...models.Person) error {
if !dh.DatabaseOpened() {
return errors.New("database not opened")
}
for _, responsible := range responsibles {
// set id to 0 so new uniq id is created
responsible.Id = 0
exists, err := dh.responsibleExists(responsible)
if err != nil {
return err
} else if exists {
continue
}
err = dh.database.AddNewColum(&responsible)
if err != nil {
return err
}
}
return nil
}
func (dh *DatabaseHandler) GetResponsible(id uint) (persons []models.Person, err error) {
if !dh.DatabaseOpened() {
return persons, errors.New("database not opened")
}
err = dh.database.GetById(&persons, id)
return
}
func (dh *DatabaseHandler) DeleteResponsible(ids ...uint) error {
if !dh.DatabaseOpened() {
return errors.New("database not opened")
}
if len(ids) == 0 {
return errors.New("no ids given to be deleted")
}
return dh.database.DeleteById(&models.Person{}, ids...)
}
func (dh *DatabaseHandler) responsibleExists(CheckResponsible models.Person) (bool, error) {
if !dh.DatabaseOpened() {
return false, errors.New("database not opened")
}
var persons []models.Person
if !dh.database.Exists(&persons, "lastName", CheckResponsible.LastName, false) {
return false, nil
}
for _, person := range persons {
if person.FirstName == CheckResponsible.FirstName && person.LastName == CheckResponsible.LastName {
return true, nil
}
}
return false, nil
}