63 lines
1.5 KiB
Go
63 lines
1.5 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 person models.Person
|
|
if !dh.database.Exists(&person, "lastName", CheckResponsible.LastName, false) {
|
|
return false, nil
|
|
}
|
|
return person.FirstName == CheckResponsible.FirstName && person.LastName == CheckResponsible.LastName, nil
|
|
}
|