11package databases
22
33import (
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