From 20a693a80cba2cd7e254de0bda007c16dbeef517 Mon Sep 17 00:00:00 2001 From: Alex <$(pass /github/email)> Date: Wed, 14 May 2025 18:25:53 +0200 Subject: [PATCH] Setting Consents userid null upon deletion --- go-backend/internal/controllers/user_controller.go | 6 ++++-- go-backend/internal/models/consents.go | 3 ++- go-backend/internal/models/user.go | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/go-backend/internal/controllers/user_controller.go b/go-backend/internal/controllers/user_controller.go index 9414047..91057bb 100644 --- a/go-backend/internal/controllers/user_controller.go +++ b/go-backend/internal/controllers/user_controller.go @@ -239,6 +239,8 @@ func (uc *UserController) RegisterUser(c *gin.Context) { var regData RegistrationData if err := c.ShouldBindJSON(®Data); err != nil { + logger.Error.Printf("Failed initial Binding: %#v", ®Data.User.Membership) + logger.Error.Printf("Failed initial Binding: %#v", ®Data.User.Membership.Subscription) utils.HandleValidationError(c, err) return } @@ -293,14 +295,14 @@ func (uc *UserController) RegisterUser(c *gin.Context) { LastName: regData.User.LastName, Email: regData.User.Email, ConsentType: "TermsOfService", - UserID: regData.User.ID, + UserID: ®Data.User.ID, }, { FirstName: regData.User.FirstName, LastName: regData.User.LastName, Email: regData.User.Email, ConsentType: "Privacy", - UserID: regData.User.ID, + UserID: ®Data.User.ID, }, } diff --git a/go-backend/internal/models/consents.go b/go-backend/internal/models/consents.go index 965c167..15041c3 100644 --- a/go-backend/internal/models/consents.go +++ b/go-backend/internal/models/consents.go @@ -16,7 +16,8 @@ type Consent struct { LastName string `gorm:"not null" json:"last_name" binding:"safe_content"` Email string `json:"email" binding:"email,safe_content"` ConsentType string `gorm:"not null" json:"consent_type" binding:"safe_content"` - UserID uint `gorm:"not null" json:"user_id"` + UserID *uint `json:"user_id"` + User *User `gorm:"constraint:OnUpdate:CASCADE,OnDelete:SET NULL;"` } func (c *Consent) BeforeSave(tx *gorm.DB) (err error) { diff --git a/go-backend/internal/models/user.go b/go-backend/internal/models/user.go index 1715872..d4c97a8 100644 --- a/go-backend/internal/models/user.go +++ b/go-backend/internal/models/user.go @@ -33,7 +33,7 @@ type User struct { Address string `gorm:"not null" json:"address" binding:"required,safe_content"` ZipCode string `gorm:"not null" json:"zip_code" binding:"required,alphanum,safe_content"` City string `form:"not null" json:"city" binding:"required,alphaunicode,safe_content"` - Consents []Consent `gorm:"constraint:OnUpdate:CASCADE"` + Consents []Consent `gorm:"foreignKey:UserID;constraint:OnUpdate:CASCADE,OnDelete:SET NULL"` BankAccount *BankAccount `gorm:"foreignkey:UserID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE" json:"bank_account"` Verifications []Verification `gorm:"constraint:OnUpdate:CASCADE,OnDelete:CASCADE"` Membership *Membership `gorm:"constraint:OnUpdate:CASCADE,OnDelete:CASCADE" json:"membership"`