From 06841782df318ea72f6bb3803a24fdc96e161922 Mon Sep 17 00:00:00 2001 From: mStar Date: Sat, 10 May 2025 12:02:57 +0200 Subject: [PATCH] Update how self is inserted for server --- storage-new/self.go | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/storage-new/self.go b/storage-new/self.go index b417855..d9db0ef 100644 --- a/storage-new/self.go +++ b/storage-new/self.go @@ -74,16 +74,30 @@ func insertDefaultDuck() (*models.MediaMetadata, error) { } func insertServer(duck *models.MediaMetadata) (*models.RemoteServer, error) { - // dbServer, err := dbgen.RemoteServer.Where(dbgen.RemoteServer.ID.Eq(1)).First() - // if err == nil { - // return dbServer, nil - // } else if err != gorm.ErrRecordNotFound { - // return nil, err - // } + rs := dbgen.RemoteServer + dbServer, err := rs.Where(rs.IsSelf.Is(true)).First() + if err == nil { + // Exists, ensure up to date info + tx := dbgen.Q.Begin() + if _, err = tx.RemoteServer.Where(rs.IsSelf.Is(true)).UpdateColumn(rs.Version, shared.Version); err != nil { + _ = tx.Rollback() + return nil, err + } + if _, err = tx.RemoteServer.Where(rs.IsSelf.Is(true)). + UpdateColumn(rs.Name, config.GlobalConfig.Self.ServerDisplayName); err != nil { + _ = tx.Rollback() + return nil, err + } + if err = tx.Commit(); err != nil { + return nil, err + } + return dbServer, nil + } else if err != gorm.ErrRecordNotFound { + // Db fail + return nil, err + } + // Doesn't exist, create server := models.RemoteServer{ - Model: gorm.Model{ - ID: 1, - }, ServerType: models.ServerSoftwareLinstrom, SpecificType: "linstrom", Version: shared.Version, @@ -93,7 +107,7 @@ func insertServer(duck *models.MediaMetadata) (*models.RemoteServer, error) { IconId: sql.NullString{String: duck.ID, Valid: true}, IsSelf: true, } - err := dbgen.RemoteServer.Save(&server) + err = rs.Create(&server) if err != nil { return nil, err }