5 Commits

Author SHA1 Message Date
Adrian Zürcher
86a4ef798a fix json error 2025-11-06 16:47:31 +01:00
Adrian Zürcher
442afcb44c change responsible person to struct 2025-11-06 16:30:37 +01:00
Adrian Zürcher
8b8d99e162 new set id to 0 to create new uniq id by gorm 2025-11-06 15:22:23 +01:00
Adrian Zürcher
103a07b7ac extend add responsible from single to array 2025-11-06 15:10:28 +01:00
Adrian Zürcher
a20a21d251 change start events to return event as data 2025-11-06 09:03:56 +01:00
7 changed files with 32 additions and 35 deletions

View File

@@ -23,7 +23,7 @@ func (a *APIHandler) StartNewEvent(c *gin.Context) {
return
}
if err := a.DbHandler.StartNewEvent(event); err != nil {
if err := a.DbHandler.StartNewEvent(&event); err != nil {
a.logger.Error("StartNewEvent", err)
c.JSON(http.StatusBadRequest, gin.H{"message": err.Error()})
return
@@ -31,6 +31,7 @@ func (a *APIHandler) StartNewEvent(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
"message": "New Event added " + event.Name,
"data": event,
})
}

View File

@@ -16,24 +16,25 @@ func (a *APIHandler) AddNewResponsible(c *gin.Context) {
return
}
var responsible models.Person
err := c.BindJSON(&responsible)
var responsibles []models.Person
err := c.BindJSON(&responsibles)
if err != nil {
a.logger.Error("AddNewResponsible", err)
c.JSON(http.StatusInternalServerError, nil)
return
}
err = a.DbHandler.AddNewResponsible(responsible)
err = a.DbHandler.AddNewResponsible(responsibles...)
if err != nil {
c.JSON(http.StatusBadRequest, gin.H{
"message": err.Error(),
})
return
}
c.JSON(http.StatusOK, gin.H{
"message": "responsible added",
"message": "responsible(s) added",
})
}

View File

@@ -8,7 +8,7 @@ import (
"gitea.tecamino.com/paadi/memberDB/models"
)
func (dh *DatabaseHandler) StartNewEvent(event models.Event) error {
func (dh *DatabaseHandler) StartNewEvent(event *models.Event) error {
if !dh.DatabaseOpened() {
return errors.New("database not opened")
}

View File

@@ -91,11 +91,6 @@ func (dh *DatabaseHandler) AddNewMember(members ...models.Member) error {
return err
}
encResponsiblePerson, err := crypto.Encrypt(member.ResponsiblePerson, dh.token)
if err != nil {
return err
}
member.FirstNameHash = dh.hashField(member.FirstName)
member.FirstName = encFirstName
member.LastNameHash = dh.hashField(member.LastName)
@@ -110,7 +105,6 @@ func (dh *DatabaseHandler) AddNewMember(members ...models.Member) error {
member.FirstVisit = encFirstVisit
member.LastVisit = encLastVisit
member.Group = encGroup
member.ResponsiblePerson = encResponsiblePerson
err = dh.database.AddNewColum(&member)
if err != nil {
@@ -198,11 +192,6 @@ func (dh *DatabaseHandler) GetMember(id uint) (members []models.Member, err erro
if err != nil {
return
}
members[i].ResponsiblePerson, err = crypto.Decrypt(members[i].ResponsiblePerson, dh.token)
if err != nil {
return
}
}
return
}
@@ -298,13 +287,6 @@ func (dh *DatabaseHandler) UpdateMember(id int, member models.Member) (err error
return err
}
}
if member.ResponsiblePerson != "" {
member.ResponsiblePerson, err = crypto.Encrypt(member.ResponsiblePerson, dh.token)
if err != nil {
return err
}
}
return dh.database.UpdateValuesById(&member, uint(member.Id))
}

View File

@@ -10,11 +10,10 @@ func (dh *DatabaseHandler) AddNewResponsible(responsibles ...models.Person) erro
if !dh.DatabaseOpened() {
return errors.New("database not opened")
}
if !dh.DatabaseOpened() {
return errors.New("database not opened")
}
for _, responsible := range responsibles {
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

View File

@@ -16,5 +16,5 @@ type Member struct {
FirstVisit string `gorm:"column:firstVisit" json:"firstVisit,omitempty"`
LastVisit string `gorm:"column:lastVisit" json:"lastVisit,omitempty"`
Group string `gorm:"column:group" json:"group,omitempty"`
ResponsiblePerson string `gorm:"column:responsiblePerson" json:"responsiblePerson,omitempty"`
ResponsiblePerson Person `gorm:"type:json" json:"responsiblePerson"`
}

View File

@@ -8,12 +8,6 @@ import (
type Persons []Person
type Person struct {
Id int `gorm:"primaryKey" json:"id"`
FirstName string `gorm:"column:firstName" json:"firstName"`
LastName string `gorm:"column:lastName" json:"lastName"`
}
// --- Implement driver.Valuer (for saving to DB)
func (r Persons) Value() (driver.Value, error) {
return json.Marshal(r)
@@ -27,3 +21,23 @@ func (r *Persons) Scan(value any) error {
}
return json.Unmarshal(bytes, r)
}
type Person struct {
Id int `gorm:"primaryKey" json:"id"`
FirstName string `gorm:"column:firstName" json:"firstName"`
LastName string `gorm:"column:lastName" json:"lastName"`
}
// --- Implement driver.Valuer (for saving to DB)
func (r Person) Value() (driver.Value, error) {
return json.Marshal(r)
}
// --- Implement sql.Scanner (for reading from DB)
func (r *Person) Scan(value any) error {
bytes, ok := value.([]byte)
if !ok {
return fmt.Errorf("failed to unmarshal Settings: %v", value)
}
return json.Unmarshal(bytes, r)
}