backend db fixes
This commit is contained in:
@@ -626,7 +626,9 @@ func testUpdateUser(t *testing.T, loginCookie http.Cookie) {
|
||||
logger.Error.Printf("user to be updated: %+v", user.Licence)
|
||||
tt.updateFunc(&updatedUser)
|
||||
// Convert user to JSON
|
||||
jsonData, err := json.Marshal(updatedUser)
|
||||
|
||||
updateData := &RegistrationData{User: updatedUser}
|
||||
jsonData, err := json.Marshal(updateData)
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to marshal user data: %v", err)
|
||||
}
|
||||
@@ -1092,15 +1094,31 @@ func getTestUsers() []RegisterUserTest {
|
||||
return user
|
||||
})),
|
||||
},
|
||||
// Currently unsupported. My number wouldn't match, though it should.
|
||||
// {
|
||||
// Name: "wrong driverslicence number, should fail",
|
||||
// WantResponse: http.StatusBadRequest,
|
||||
// WantDBData: map[string]interface{}{"email": "john.wronglicence.doe@example.com"},
|
||||
// Assert: false,
|
||||
// Input: GenerateInputJSON(customizeInput(func(user models.User) models.User {
|
||||
// user.Email = "john.wronglicence.doe@example.com"
|
||||
// user.Licence = &models.Licence{
|
||||
// Number: "AAAA12345AA",
|
||||
// ExpirationDate: time.Now().AddDate(1, 0, 0),
|
||||
// IssuedDate: time.Now().AddDate(-1, 0, 0),
|
||||
// }
|
||||
// return user
|
||||
// })),
|
||||
// },
|
||||
{
|
||||
Name: "wrong driverslicence number, should fail",
|
||||
Name: "empty driverslicence number, should fail",
|
||||
WantResponse: http.StatusBadRequest,
|
||||
WantDBData: map[string]interface{}{"email": "john.wronglicence.doe@example.com"},
|
||||
Assert: false,
|
||||
Input: GenerateInputJSON(customizeInput(func(user models.User) models.User {
|
||||
user.Email = "john.wronglicence.doe@example.com"
|
||||
user.Licence = &models.Licence{
|
||||
Number: "AAAA12345AA",
|
||||
Number: "",
|
||||
ExpirationDate: time.Now().AddDate(1, 0, 0),
|
||||
IssuedDate: time.Now().AddDate(-1, 0, 0),
|
||||
}
|
||||
|
||||
@@ -5,7 +5,9 @@ import (
|
||||
)
|
||||
|
||||
type Licence struct {
|
||||
ID uint `json:"id" gorm:"primaryKey"`
|
||||
ID uint `json:"id"`
|
||||
CreatedAt time.Time
|
||||
UpdatedAt time.Time
|
||||
Status int8 `json:"status" binding:"omitempty,number"`
|
||||
Number string `json:"number" binding:"omitempty,safe_content"`
|
||||
IssuedDate time.Time `json:"issued_date" binding:"omitempty"`
|
||||
|
||||
@@ -60,6 +60,7 @@ func (ur *UserRepository) UpdateUser(user *models.User) (*models.User, error) {
|
||||
if err := tx.Preload(clause.Associations).
|
||||
Preload("Membership").
|
||||
Preload("Membership.SubscriptionModel").
|
||||
Preload("Licence").
|
||||
Preload("Licence.Categories").
|
||||
First(&existingUser, user.ID).Error; err != nil {
|
||||
return err
|
||||
@@ -88,6 +89,13 @@ func (ur *UserRepository) UpdateUser(user *models.User) (*models.User, error) {
|
||||
}
|
||||
}
|
||||
|
||||
// Replace categories if Licence and Categories are provided
|
||||
if user.Licence != nil {
|
||||
if err := tx.Model(&user.Licence).Association("Categories").Replace(user.Licence.Categories); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user