From 03c3c192edd03f64db81478f8af82c61fe703085 Mon Sep 17 00:00:00 2001 From: Deluan Date: Sun, 26 Apr 2020 12:06:38 -0400 Subject: [PATCH] Fixing static checks about passing nil context --- engine/auth/auth.go | 3 ++- engine/cover_test.go | 3 ++- engine/media_streamer_test.go | 2 +- engine/players_test.go | 2 +- engine/playlists.go | 2 +- log/log_test.go | 2 +- persistence/album_repository_test.go | 2 +- persistence/artist_repository_test.go | 2 +- persistence/genre_repository_test.go | 4 +++- persistence/mediafile_repository_test.go | 2 +- persistence/persistence_suite_test.go | 3 +-- persistence/playlist_repository_test.go | 4 +++- persistence/property_repository_test.go | 6 ++++-- persistence/user_repository_test.go | 4 +++- scanner/scanner.go | 6 +++--- scanner/tag_scanner.go | 2 +- server/initial_setup.go | 22 +++++++++++++--------- 17 files changed, 42 insertions(+), 29 deletions(-) diff --git a/engine/auth/auth.go b/engine/auth/auth.go index 4c8db1a0..774d3344 100644 --- a/engine/auth/auth.go +++ b/engine/auth/auth.go @@ -1,6 +1,7 @@ package auth import ( + "context" "fmt" "sync" "time" @@ -22,7 +23,7 @@ var ( func InitTokenAuth(ds model.DataStore) { once.Do(func() { - secret, err := ds.Property(nil).DefaultGet(consts.JWTSecretKey, "not so secret") + secret, err := ds.Property(context.TODO()).DefaultGet(consts.JWTSecretKey, "not so secret") if err != nil { log.Error("No JWT secret found in DB. Setting a temp one, but please report this error", err) } diff --git a/engine/cover_test.go b/engine/cover_test.go index 213c974d..329bc614 100644 --- a/engine/cover_test.go +++ b/engine/cover_test.go @@ -2,6 +2,7 @@ package engine import ( "bytes" + "context" "image" "github.com/deluan/navidrome/log" @@ -14,7 +15,7 @@ import ( var _ = Describe("Cover", func() { var cover Cover var ds model.DataStore - ctx := log.NewContext(nil) + ctx := log.NewContext(context.TODO()) BeforeEach(func() { ds = &persistence.MockDataStore{MockedTranscoding: &mockTranscodingRepository{}} diff --git a/engine/media_streamer_test.go b/engine/media_streamer_test.go index ac05fbc2..0f0dbbb5 100644 --- a/engine/media_streamer_test.go +++ b/engine/media_streamer_test.go @@ -16,7 +16,7 @@ var _ = Describe("MediaStreamer", func() { var streamer MediaStreamer var ds model.DataStore ffmpeg := &fakeFFmpeg{Data: "fake data"} - ctx := log.NewContext(nil) + ctx := log.NewContext(context.TODO()) BeforeEach(func() { ds = &persistence.MockDataStore{MockedTranscoding: &mockTranscodingRepository{}} diff --git a/engine/players_test.go b/engine/players_test.go index ec2b5867..72027403 100644 --- a/engine/players_test.go +++ b/engine/players_test.go @@ -14,7 +14,7 @@ import ( var _ = Describe("Players", func() { var players Players var repo *mockPlayerRepository - ctx := context.WithValue(log.NewContext(nil), "user", model.User{ID: "userid", UserName: "johndoe"}) + ctx := context.WithValue(log.NewContext(context.TODO()), "user", model.User{ID: "userid", UserName: "johndoe"}) ctx = context.WithValue(ctx, "username", "johndoe") var beforeRegister time.Time diff --git a/engine/playlists.go b/engine/playlists.go index 65eadb84..d37b4f73 100644 --- a/engine/playlists.go +++ b/engine/playlists.go @@ -69,7 +69,7 @@ func (p *playlists) Delete(ctx context.Context, playlistId string) error { if owner != pls.Owner { return model.ErrNotAuthorized } - return p.ds.Playlist(nil).Delete(playlistId) + return p.ds.Playlist(ctx).Delete(playlistId) } func (p *playlists) Update(ctx context.Context, playlistId string, name *string, idsToAdd []string, idxToRemove []int) error { diff --git a/log/log_test.go b/log/log_test.go index f11a2b49..9ef38264 100644 --- a/log/log_test.go +++ b/log/log_test.go @@ -70,7 +70,7 @@ var _ = Describe("Logger", func() { }) It("can get data from the request's context", func() { - ctx := NewContext(nil, "foo", "bar") + ctx := NewContext(context.TODO(), "foo", "bar") req := httptest.NewRequest("get", "/", nil).WithContext(ctx) Error(req, "Simple Message", "key1", "value1") diff --git a/persistence/album_repository_test.go b/persistence/album_repository_test.go index e057344f..1472c280 100644 --- a/persistence/album_repository_test.go +++ b/persistence/album_repository_test.go @@ -14,7 +14,7 @@ var _ = Describe("AlbumRepository", func() { var repo model.AlbumRepository BeforeEach(func() { - ctx := context.WithValue(log.NewContext(nil), "user", model.User{ID: "userid"}) + ctx := context.WithValue(log.NewContext(context.TODO()), "user", model.User{ID: "userid"}) repo = NewAlbumRepository(ctx, orm.NewOrm()) }) diff --git a/persistence/artist_repository_test.go b/persistence/artist_repository_test.go index ab37bb62..79726e96 100644 --- a/persistence/artist_repository_test.go +++ b/persistence/artist_repository_test.go @@ -14,7 +14,7 @@ var _ = Describe("ArtistRepository", func() { var repo model.ArtistRepository BeforeEach(func() { - ctx := context.WithValue(log.NewContext(nil), "user", model.User{ID: "userid"}) + ctx := context.WithValue(log.NewContext(context.TODO()), "user", model.User{ID: "userid"}) repo = NewArtistRepository(ctx, orm.NewOrm()) }) diff --git a/persistence/genre_repository_test.go b/persistence/genre_repository_test.go index b10df31e..b76d07a6 100644 --- a/persistence/genre_repository_test.go +++ b/persistence/genre_repository_test.go @@ -1,6 +1,8 @@ package persistence_test import ( + "context" + "github.com/astaxie/beego/orm" "github.com/deluan/navidrome/log" "github.com/deluan/navidrome/model" @@ -13,7 +15,7 @@ var _ = Describe("GenreRepository", func() { var repo model.GenreRepository BeforeEach(func() { - repo = persistence.NewGenreRepository(log.NewContext(nil), orm.NewOrm()) + repo = persistence.NewGenreRepository(log.NewContext(context.TODO()), orm.NewOrm()) }) It("returns all records", func() { diff --git a/persistence/mediafile_repository_test.go b/persistence/mediafile_repository_test.go index ea09e5a6..5231e4e9 100644 --- a/persistence/mediafile_repository_test.go +++ b/persistence/mediafile_repository_test.go @@ -16,7 +16,7 @@ var _ = Describe("MediaRepository", func() { var mr model.MediaFileRepository BeforeEach(func() { - ctx := context.WithValue(log.NewContext(nil), "user", model.User{ID: "userid"}) + ctx := context.WithValue(log.NewContext(context.TODO()), "user", model.User{ID: "userid"}) mr = NewMediaFileRepository(ctx, orm.NewOrm()) }) diff --git a/persistence/persistence_suite_test.go b/persistence/persistence_suite_test.go index 4e6b8703..a05c9783 100644 --- a/persistence/persistence_suite_test.go +++ b/persistence/persistence_suite_test.go @@ -23,7 +23,6 @@ func TestPersistence(t *testing.T) { //conf.Server.Path = "./test-123.db" conf.Server.DbPath = "file::memory:?cache=shared" orm.RegisterDataBase("default", db.Driver, conf.Server.DbPath) - New() db.EnsureLatestVersion() log.SetLevel(log.LevelCritical) RegisterFailHandler(Fail) @@ -85,7 +84,7 @@ var _ = Describe("Initialize test DB", func() { // TODO Load this data setup from file(s) BeforeSuite(func() { o := orm.NewOrm() - ctx := context.WithValue(log.NewContext(nil), "user", model.User{ID: "userid"}) + ctx := context.WithValue(log.NewContext(context.TODO()), "user", model.User{ID: "userid"}) mr := NewMediaFileRepository(ctx, o) for _, s := range testSongs { err := mr.Put(&s) diff --git a/persistence/playlist_repository_test.go b/persistence/playlist_repository_test.go index 27181014..da8f8b41 100644 --- a/persistence/playlist_repository_test.go +++ b/persistence/playlist_repository_test.go @@ -1,6 +1,8 @@ package persistence import ( + "context" + "github.com/astaxie/beego/orm" "github.com/deluan/navidrome/log" "github.com/deluan/navidrome/model" @@ -12,7 +14,7 @@ var _ = Describe("PlaylistRepository", func() { var repo model.PlaylistRepository BeforeEach(func() { - repo = NewPlaylistRepository(log.NewContext(nil), orm.NewOrm()) + repo = NewPlaylistRepository(log.NewContext(context.TODO()), orm.NewOrm()) }) Describe("Count", func() { diff --git a/persistence/property_repository_test.go b/persistence/property_repository_test.go index dc9e5c33..de1222c3 100644 --- a/persistence/property_repository_test.go +++ b/persistence/property_repository_test.go @@ -1,8 +1,10 @@ package persistence import ( + "context" + "github.com/astaxie/beego/orm" - . "github.com/deluan/navidrome/log" + "github.com/deluan/navidrome/log" "github.com/deluan/navidrome/model" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" @@ -12,7 +14,7 @@ var _ = Describe("Property Repository", func() { var pr model.PropertyRepository BeforeEach(func() { - pr = NewPropertyRepository(NewContext(nil), orm.NewOrm()) + pr = NewPropertyRepository(log.NewContext(context.TODO()), orm.NewOrm()) }) It("saves and restore a new property", func() { diff --git a/persistence/user_repository_test.go b/persistence/user_repository_test.go index f9c3b2ab..1feab691 100644 --- a/persistence/user_repository_test.go +++ b/persistence/user_repository_test.go @@ -1,6 +1,8 @@ package persistence import ( + "context" + "github.com/astaxie/beego/orm" "github.com/deluan/navidrome/log" "github.com/deluan/navidrome/model" @@ -12,7 +14,7 @@ var _ = Describe("UserRepository", func() { var repo model.UserRepository BeforeEach(func() { - repo = NewUserRepository(log.NewContext(nil), orm.NewOrm()) + repo = NewUserRepository(log.NewContext(context.TODO()), orm.NewOrm()) }) Describe("Put/Get/FindByUsername", func() { diff --git a/scanner/scanner.go b/scanner/scanner.go index 7a896ca4..1f032f3f 100644 --- a/scanner/scanner.go +++ b/scanner/scanner.go @@ -34,7 +34,7 @@ func (s *Scanner) Rescan(mediaFolder string, fullRescan bool) error { log.Debug("Scanning folder (full scan)", "folder", mediaFolder) } - err := folderScanner.Scan(log.NewContext(nil), lastModifiedSince) + err := folderScanner.Scan(log.NewContext(context.TODO()), lastModifiedSince) if err != nil { log.Error("Error importing MediaFolder", "folder", mediaFolder, err) } @@ -59,7 +59,7 @@ func (s *Scanner) RescanAll(fullRescan bool) error { func (s *Scanner) Status() []StatusInfo { return nil } func (s *Scanner) getLastModifiedSince(folder string) time.Time { - ms, err := s.ds.Property(nil).Get(model.PropLastScan + "-" + folder) + ms, err := s.ds.Property(context.TODO()).Get(model.PropLastScan + "-" + folder) if err != nil { return time.Time{} } @@ -76,7 +76,7 @@ func (s *Scanner) updateLastModifiedSince(folder string, t time.Time) { } func (s *Scanner) loadFolders() { - fs, _ := s.ds.MediaFolder(nil).GetAll() + fs, _ := s.ds.MediaFolder(context.TODO()).GetAll() for _, f := range fs { log.Info("Configuring Media Folder", "name", f.Name, "path", f.Path) s.folders[f.Path] = NewTagScanner(f.Path, s.ds) diff --git a/scanner/tag_scanner.go b/scanner/tag_scanner.go index 16010b64..9a6d8add 100644 --- a/scanner/tag_scanner.go +++ b/scanner/tag_scanner.go @@ -113,7 +113,7 @@ func (s *TagScanner) Scan(ctx context.Context, lastModifiedSince time.Time) erro return err } - err = s.ds.GC(log.NewContext(nil)) + err = s.ds.GC(log.NewContext(context.TODO())) log.Info("Finished Music Folder", "folder", s.rootFolder, "elapsed", time.Since(start)) return err diff --git a/server/initial_setup.go b/server/initial_setup.go index cd0ad971..45083046 100644 --- a/server/initial_setup.go +++ b/server/initial_setup.go @@ -1,6 +1,7 @@ package server import ( + "context" "encoding/json" "fmt" "time" @@ -18,7 +19,8 @@ func initialSetup(ds model.DataStore) { return err } - _, err := ds.Property(nil).Get(consts.InitialSetupFlagKey) + properties := ds.Property(context.TODO()) + _, err := properties.Get(consts.InitialSetupFlagKey) if err == nil { return nil } @@ -33,13 +35,14 @@ func initialSetup(ds model.DataStore) { } } - err = ds.Property(nil).Put(consts.InitialSetupFlagKey, time.Now().String()) + err = properties.Put(consts.InitialSetupFlagKey, time.Now().String()) return err }) } func createInitialAdminUser(ds model.DataStore) error { - c, err := ds.User(nil).CountAll() + users := ds.User(context.TODO()) + c, err := users.CountAll() if err != nil { panic(fmt.Sprintf("Could not access User table: %s", err)) } @@ -59,7 +62,7 @@ func createInitialAdminUser(ds model.DataStore) error { Password: initialPassword, IsAdmin: true, } - err := ds.User(nil).Put(&initialUser) + err := users.Put(&initialUser) if err != nil { log.Error("Could not create initial admin user", "user", initialUser, err) } @@ -68,13 +71,14 @@ func createInitialAdminUser(ds model.DataStore) error { } func createJWTSecret(ds model.DataStore) error { - _, err := ds.Property(nil).Get(consts.JWTSecretKey) + properties := ds.Property(context.TODO()) + _, err := properties.Get(consts.JWTSecretKey) if err == nil { return nil } jwtSecret, _ := uuid.NewRandom() log.Warn("Creating JWT secret, used for encrypting UI sessions") - err = ds.Property(nil).Put(consts.JWTSecretKey, jwtSecret.String()) + err = properties.Put(consts.JWTSecretKey, jwtSecret.String()) if err != nil { log.Error("Could not save JWT secret in DB", err) } @@ -82,8 +86,8 @@ func createJWTSecret(ds model.DataStore) error { } func createDefaultTranscodings(ds model.DataStore) error { - repo := ds.Transcoding(nil) - c, _ := repo.CountAll() + transcodings := ds.Transcoding(context.TODO()) + c, _ := transcodings.CountAll() if c != 0 { return nil } @@ -98,7 +102,7 @@ func createDefaultTranscodings(ds model.DataStore) error { return err } log.Info("Creating default transcoding config", "name", t.Name) - if err = repo.Put(&t); err != nil { + if err = transcodings.Put(&t); err != nil { return err } }