More slices instead of pointers of slice

This commit is contained in:
Deluan
2016-03-19 22:58:20 -04:00
parent bd07c74acd
commit 27b7b7ce08
5 changed files with 40 additions and 40 deletions
+20 -20
View File
@@ -10,13 +10,13 @@ import (
// TODO Use Entries instead of Albums
type ListGenerator interface {
GetNewest(offset int, size int) (*domain.Albums, error)
GetRecent(offset int, size int) (*domain.Albums, error)
GetFrequent(offset int, size int) (*domain.Albums, error)
GetHighest(offset int, size int) (*domain.Albums, error)
GetRandom(offset int, size int) (*domain.Albums, error)
GetStarred() (*Entries, error)
GetNowPlaying() (*Entries, error)
GetNewest(offset int, size int) (domain.Albums, error)
GetRecent(offset int, size int) (domain.Albums, error)
GetFrequent(offset int, size int) (domain.Albums, error)
GetHighest(offset int, size int) (domain.Albums, error)
GetRandom(offset int, size int) (domain.Albums, error)
GetStarred() (Entries, error)
GetNowPlaying() (Entries, error)
}
func NewListGenerator(alr domain.AlbumRepository, mfr domain.MediaFileRepository, npr NowPlayingRepository) ListGenerator {
@@ -29,53 +29,53 @@ type listGenerator struct {
npRepo NowPlayingRepository
}
func (g listGenerator) query(qo domain.QueryOptions, offset int, size int) (*domain.Albums, error) {
func (g listGenerator) query(qo domain.QueryOptions, offset int, size int) (domain.Albums, error) {
qo.Offset = offset
qo.Size = size
return g.albumRepo.GetAll(qo)
}
func (g listGenerator) GetNewest(offset int, size int) (*domain.Albums, error) {
func (g listGenerator) GetNewest(offset int, size int) (domain.Albums, error) {
qo := domain.QueryOptions{SortBy: "CreatedAt", Desc: true, Alpha: true}
return g.query(qo, offset, size)
}
func (g listGenerator) GetRecent(offset int, size int) (*domain.Albums, error) {
func (g listGenerator) GetRecent(offset int, size int) (domain.Albums, error) {
qo := domain.QueryOptions{SortBy: "PlayDate", Desc: true, Alpha: true}
return g.query(qo, offset, size)
}
func (g listGenerator) GetFrequent(offset int, size int) (*domain.Albums, error) {
func (g listGenerator) GetFrequent(offset int, size int) (domain.Albums, error) {
qo := domain.QueryOptions{SortBy: "PlayCount", Desc: true}
return g.query(qo, offset, size)
}
func (g listGenerator) GetHighest(offset int, size int) (*domain.Albums, error) {
func (g listGenerator) GetHighest(offset int, size int) (domain.Albums, error) {
qo := domain.QueryOptions{SortBy: "Rating", Desc: true}
return g.query(qo, offset, size)
}
func (g listGenerator) GetRandom(offset int, size int) (*domain.Albums, error) {
func (g listGenerator) GetRandom(offset int, size int) (domain.Albums, error) {
ids, err := g.albumRepo.GetAllIds()
if err != nil {
return nil, err
}
size = utils.MinInt(size, len(*ids))
size = utils.MinInt(size, len(ids))
perm := rand.Perm(size)
r := make(domain.Albums, size)
for i := 0; i < size; i++ {
v := perm[i]
al, err := g.albumRepo.Get((*ids)[v])
al, err := g.albumRepo.Get((ids)[v])
if err != nil {
return nil, err
}
r[i] = *al
}
return &r, nil
return r, nil
}
func (g listGenerator) GetStarred() (*Entries, error) {
func (g listGenerator) GetStarred() (Entries, error) {
albums, err := g.albumRepo.GetStarred(domain.QueryOptions{})
if err != nil {
return nil, err
@@ -86,10 +86,10 @@ func (g listGenerator) GetStarred() (*Entries, error) {
entries[i] = FromAlbum(&al)
}
return &entries, nil
return entries, nil
}
func (g listGenerator) GetNowPlaying() (*Entries, error) {
func (g listGenerator) GetNowPlaying() (Entries, error) {
npInfo, err := g.npRepo.GetAll()
if err != nil {
return nil, err
@@ -107,5 +107,5 @@ func (g listGenerator) GetNowPlaying() (*Entries, error) {
entries[i].PlayerName = np.PlayerName
}
return &entries, nil
return entries, nil
}