Skip to content

Commit dee330e

Browse files
FIX (databases): Validate PostgreSQL config always present during DB save
1 parent 299f152 commit dee330e

File tree

1 file changed

+15
-13
lines changed

1 file changed

+15
-13
lines changed

backend/internal/features/databases/repository.go

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package databases
22

33
import (
4+
"errors"
45
"postgresus-backend/internal/features/databases/databases/postgresql"
56
"postgresus-backend/internal/storage"
67

@@ -21,9 +22,12 @@ func (r *DatabaseRepository) Save(database *Database) (*Database, error) {
2122
err := db.Transaction(func(tx *gorm.DB) error {
2223
switch database.Type {
2324
case DatabaseTypePostgres:
24-
if database.Postgresql != nil {
25-
database.Postgresql.DatabaseID = &database.ID
25+
if database.Postgresql == nil {
26+
return errors.New("postgresql configuration is required for PostgreSQL database")
2627
}
28+
29+
// Ensure DatabaseID is always set and never nil
30+
database.Postgresql.DatabaseID = &database.ID
2731
}
2832

2933
if isNew {
@@ -43,17 +47,15 @@ func (r *DatabaseRepository) Save(database *Database) (*Database, error) {
4347
// Save the specific database type
4448
switch database.Type {
4549
case DatabaseTypePostgres:
46-
if database.Postgresql != nil {
47-
database.Postgresql.DatabaseID = &database.ID
48-
if database.Postgresql.ID == uuid.Nil {
49-
database.Postgresql.ID = uuid.New()
50-
if err := tx.Create(database.Postgresql).Error; err != nil {
51-
return err
52-
}
53-
} else {
54-
if err := tx.Save(database.Postgresql).Error; err != nil {
55-
return err
56-
}
50+
database.Postgresql.DatabaseID = &database.ID
51+
if database.Postgresql.ID == uuid.Nil {
52+
database.Postgresql.ID = uuid.New()
53+
if err := tx.Create(database.Postgresql).Error; err != nil {
54+
return err
55+
}
56+
} else {
57+
if err := tx.Save(database.Postgresql).Error; err != nil {
58+
return err
5759
}
5860
}
5961
}

0 commit comments

Comments
 (0)