From 811703ab60d51cb6b7e8a748027885552df6294f Mon Sep 17 00:00:00 2001 From: Deluan Date: Tue, 17 Mar 2020 16:49:37 -0400 Subject: [PATCH] fix: create default transcodings on existing installations --- model/transcoding.go | 1 + persistence/transcoding_repository.go | 4 ++++ server/initial_setup.go | 12 ++++++++---- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/model/transcoding.go b/model/transcoding.go index 52bb74ea3..40ccb5dfb 100644 --- a/model/transcoding.go +++ b/model/transcoding.go @@ -12,6 +12,7 @@ type Transcodings []Transcoding type TranscodingRepository interface { Get(id string) (*Transcoding, error) + CountAll(...QueryOptions) (int64, error) Put(*Transcoding) error FindByFormat(format string) (*Transcoding, error) } diff --git a/persistence/transcoding_repository.go b/persistence/transcoding_repository.go index 831ba4d30..c51c5b999 100644 --- a/persistence/transcoding_repository.go +++ b/persistence/transcoding_repository.go @@ -28,6 +28,10 @@ func (r *transcodingRepository) Get(id string) (*model.Transcoding, error) { return &res, err } +func (r *transcodingRepository) CountAll(qo ...model.QueryOptions) (int64, error) { + return r.count(Select(), qo...) +} + func (r *transcodingRepository) FindByFormat(format string) (*model.Transcoding, error) { sel := r.newSelect().Columns("*").Where(Eq{"target_format": format}) var res model.Transcoding diff --git a/server/initial_setup.go b/server/initial_setup.go index 72347400c..cd0ad971a 100644 --- a/server/initial_setup.go +++ b/server/initial_setup.go @@ -14,6 +14,10 @@ import ( func initialSetup(ds model.DataStore) { _ = ds.WithTx(func(tx model.DataStore) error { + if err := createDefaultTranscodings(ds); err != nil { + return err + } + _, err := ds.Property(nil).Get(consts.InitialSetupFlagKey) if err == nil { return nil @@ -29,10 +33,6 @@ func initialSetup(ds model.DataStore) { } } - if err = createDefaultTranscodings(ds); err != nil { - return err - } - err = ds.Property(nil).Put(consts.InitialSetupFlagKey, time.Now().String()) return err }) @@ -83,6 +83,10 @@ func createJWTSecret(ds model.DataStore) error { func createDefaultTranscodings(ds model.DataStore) error { repo := ds.Transcoding(nil) + c, _ := repo.CountAll() + if c != 0 { + return nil + } for _, d := range consts.DefaultTranscodings { var j []byte var err error