package handlers import ( "errors" "gitea.tecamino.com/paadi/memberDB/models" ) func (dh *DatabaseHandler) AddNewResponsible(responsibles ...models.Responsible) error { if !dh.DatabaseOpened() { return errors.New("database not opened") } next: for _, r := range responsibles { if r.MemberId == 0 && r.Id != 0 { r.MemberId = r.Id r.Id = 0 } //check if member exists if !dh.database.Exists(&models.Member{}, "", "id", &r.MemberId, false) { continue } // check if already exists var oldResponsibles models.Responsibles err := dh.database.GetById(&oldResponsibles, "Member", 0) if err != nil { return err } for _, oldR := range oldResponsibles { if oldR.Member == nil { continue } else if oldR.Member.Id == int(r.MemberId) { continue next } } err = dh.database.AddNewColum(&r) if err != nil { return err } } return nil } func (dh *DatabaseHandler) GetResponsible(id uint) (members []models.Member, err error) { if !dh.DatabaseOpened() { return members, errors.New("database not opened") } var responsibles models.Responsibles err = dh.database.GetById(&responsibles, "Member", id) for _, r := range responsibles { err := r.Member.Decrypt(dh.token) if err != nil { return members, err } members = append(members, *r.Member) } 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.Responsible{}, "", ids...) }