From d4ed6a056952fec49387fd0f67b6d1aecbcf139a Mon Sep 17 00:00:00 2001 From: Deluan Date: Sat, 11 Jan 2020 21:25:37 -0500 Subject: [PATCH] Make QueryOptions optional in AlbumRepository.GetAll --- domain/album.go | 2 +- persistence/db_ledis/album_repository.go | 4 +-- persistence/db_storm/album_repository.go | 6 ++--- persistence/db_storm/index_repository.go | 2 +- persistence/db_storm/mediafile_repository.go | 2 +- persistence/db_storm/playlist_repository.go | 2 +- persistence/db_storm/storm_repository.go | 26 +++++++++++++------- 7 files changed, 26 insertions(+), 18 deletions(-) diff --git a/domain/album.go b/domain/album.go index de7a10bfa..fae052ec6 100644 --- a/domain/album.go +++ b/domain/album.go @@ -31,7 +31,7 @@ type AlbumRepository interface { Put(m *Album) error Get(id string) (*Album, error) FindByArtist(artistId string) (Albums, error) - GetAll(QueryOptions) (Albums, error) + GetAll(...QueryOptions) (Albums, error) PurgeInactive(active Albums) ([]string, error) GetAllIds() ([]string, error) GetStarred(QueryOptions) (Albums, error) diff --git a/persistence/db_ledis/album_repository.go b/persistence/db_ledis/album_repository.go index af698fce7..5ceabaa88 100644 --- a/persistence/db_ledis/album_repository.go +++ b/persistence/db_ledis/album_repository.go @@ -36,9 +36,9 @@ func (r *albumRepository) FindByArtist(artistId string) (domain.Albums, error) { return as, err } -func (r *albumRepository) GetAll(options domain.QueryOptions) (domain.Albums, error) { +func (r *albumRepository) GetAll(options ...domain.QueryOptions) (domain.Albums, error) { var as = make(domain.Albums, 0) - err := r.loadAll(&as, options) + err := r.loadAll(&as, options...) return as, err } diff --git a/persistence/db_storm/album_repository.go b/persistence/db_storm/album_repository.go index deb59087e..3d2e93790 100644 --- a/persistence/db_storm/album_repository.go +++ b/persistence/db_storm/album_repository.go @@ -63,9 +63,9 @@ func (r *albumRepository) FindByArtist(artistId string) (domain.Albums, error) { return r.toAlbums(albums) } -func (r *albumRepository) GetAll(options domain.QueryOptions) (domain.Albums, error) { +func (r *albumRepository) GetAll(options ...domain.QueryOptions) (domain.Albums, error) { var all []_Album - err := r.getAll(&all, &options) + err := r.getAll(&all, options...) if err != nil { return nil, err } @@ -82,7 +82,7 @@ func (r *albumRepository) toAlbums(all []_Album) (domain.Albums, error) { func (r *albumRepository) GetAllIds() ([]string, error) { var all []_Album - err := r.getAll(&all, &domain.QueryOptions{}) + err := r.getAll(&all) if err != nil { return nil, err } diff --git a/persistence/db_storm/index_repository.go b/persistence/db_storm/index_repository.go index e9d3d0708..ca5bdea16 100644 --- a/persistence/db_storm/index_repository.go +++ b/persistence/db_storm/index_repository.go @@ -36,7 +36,7 @@ func (r *artistIndexRepository) Get(id string) (*domain.ArtistIndex, error) { func (r *artistIndexRepository) GetAll() (domain.ArtistIndexes, error) { var all []_ArtistIndex - err := r.getAll(&all, &domain.QueryOptions{}) + err := r.getAll(&all) if err != nil { return nil, err } diff --git a/persistence/db_storm/mediafile_repository.go b/persistence/db_storm/mediafile_repository.go index b554a7454..69acab2b9 100644 --- a/persistence/db_storm/mediafile_repository.go +++ b/persistence/db_storm/mediafile_repository.go @@ -88,7 +88,7 @@ func (r *mediaFileRepository) GetStarred(options domain.QueryOptions) (domain.Me func (r *mediaFileRepository) GetAllIds() ([]string, error) { var all []_MediaFile - err := r.getAll(&all, &domain.QueryOptions{}) + err := r.getAll(&all) if err != nil { return nil, err } diff --git a/persistence/db_storm/playlist_repository.go b/persistence/db_storm/playlist_repository.go index 41b8fd3a8..7f0121037 100644 --- a/persistence/db_storm/playlist_repository.go +++ b/persistence/db_storm/playlist_repository.go @@ -42,7 +42,7 @@ func (r *playlistRepository) Get(id string) (*domain.Playlist, error) { func (r *playlistRepository) GetAll(options domain.QueryOptions) (domain.Playlists, error) { var all []_Playlist - err := r.getAll(&all, &options) + err := r.getAll(&all) if err != nil { return nil, err } diff --git a/persistence/db_storm/storm_repository.go b/persistence/db_storm/storm_repository.go index 02ac82eec..bf86652d6 100644 --- a/persistence/db_storm/storm_repository.go +++ b/persistence/db_storm/storm_repository.go @@ -91,21 +91,29 @@ func (r *stormRepository) execute(matcher q.Matcher, result interface{}, options return err } -func (r *stormRepository) getAll(all interface{}, options *domain.QueryOptions) (err error) { - if options.SortBy != "" { - err = Db().AllByIndex(options.SortBy, all, stormOptions(options)) +func (r *stormRepository) getAll(all interface{}, options ...domain.QueryOptions) (err error) { + o := domain.QueryOptions{} + if len(options) > 0 { + o = options[0] + } + if o.SortBy != "" { + err = Db().AllByIndex(o.SortBy, all, stormOptions(o)) } else { - err = Db().All(all, stormOptions(options)) + err = Db().All(all, stormOptions(o)) } return } -func stormOptions(options *domain.QueryOptions) func(*index.Options) { +func stormOptions(options ...domain.QueryOptions) func(*index.Options) { + o := domain.QueryOptions{} + if len(options) > 0 { + o = options[0] + } return func(opts *index.Options) { - opts.Reverse = options.Desc - opts.Skip = options.Offset - if options.Size > 0 { - opts.Limit = options.Size + opts.Reverse = o.Desc + opts.Skip = o.Offset + if o.Size > 0 { + opts.Limit = o.Size } } }