Update how self is inserted for server

This commit is contained in:
Melody Becker 2025-05-10 12:02:57 +02:00
parent 4f64f0b847
commit 06841782df
Signed by: mstar
SSH key fingerprint: SHA256:vkXfS9FG2pVNVfvDrzd1VW9n8VJzqqdKQGljxxX8uK8

View file

@ -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
}