Update how self is inserted for server
This commit is contained in:
parent
4f64f0b847
commit
06841782df
1 changed files with 24 additions and 10 deletions
|
@ -74,16 +74,30 @@ func insertDefaultDuck() (*models.MediaMetadata, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func insertServer(duck *models.MediaMetadata) (*models.RemoteServer, error) {
|
func insertServer(duck *models.MediaMetadata) (*models.RemoteServer, error) {
|
||||||
// dbServer, err := dbgen.RemoteServer.Where(dbgen.RemoteServer.ID.Eq(1)).First()
|
rs := dbgen.RemoteServer
|
||||||
// if err == nil {
|
dbServer, err := rs.Where(rs.IsSelf.Is(true)).First()
|
||||||
// return dbServer, nil
|
if err == nil {
|
||||||
// } else if err != gorm.ErrRecordNotFound {
|
// Exists, ensure up to date info
|
||||||
// return nil, err
|
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{
|
server := models.RemoteServer{
|
||||||
Model: gorm.Model{
|
|
||||||
ID: 1,
|
|
||||||
},
|
|
||||||
ServerType: models.ServerSoftwareLinstrom,
|
ServerType: models.ServerSoftwareLinstrom,
|
||||||
SpecificType: "linstrom",
|
SpecificType: "linstrom",
|
||||||
Version: shared.Version,
|
Version: shared.Version,
|
||||||
|
@ -93,7 +107,7 @@ func insertServer(duck *models.MediaMetadata) (*models.RemoteServer, error) {
|
||||||
IconId: sql.NullString{String: duck.ID, Valid: true},
|
IconId: sql.NullString{String: duck.ID, Valid: true},
|
||||||
IsSelf: true,
|
IsSelf: true,
|
||||||
}
|
}
|
||||||
err := dbgen.RemoteServer.Save(&server)
|
err = rs.Create(&server)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue