mirror of
https://github.com/navidrome/navidrome.git
synced 2025-08-10 00:52:20 +00:00
Introduced types for the collections
This commit is contained in:
@@ -15,9 +15,11 @@ type Album struct {
|
||||
Genre string
|
||||
}
|
||||
|
||||
type Albums []Album
|
||||
|
||||
type AlbumRepository interface {
|
||||
BaseRepository
|
||||
Put(m *Album) error
|
||||
Get(id string) (*Album, error)
|
||||
FindByArtist(artistId string) ([]Album, error)
|
||||
FindByArtist(artistId string) (Albums, error)
|
||||
}
|
||||
|
||||
@@ -10,9 +10,11 @@ type ArtistIndex struct {
|
||||
Artists []ArtistInfo
|
||||
}
|
||||
|
||||
type ArtistIndexes []ArtistIndex
|
||||
|
||||
type ArtistIndexRepository interface {
|
||||
BaseRepository
|
||||
Put(m *ArtistIndex) error
|
||||
Get(id string) (*ArtistIndex, error)
|
||||
GetAll() ([]ArtistIndex, error)
|
||||
GetAll() (ArtistIndexes, error)
|
||||
}
|
||||
|
||||
@@ -32,9 +32,11 @@ func (mf *MediaFile) ContentType() string {
|
||||
return mime.TypeByExtension("." + mf.Suffix)
|
||||
}
|
||||
|
||||
type MediaFiles []MediaFile
|
||||
|
||||
type MediaFileRepository interface {
|
||||
BaseRepository
|
||||
Put(m *MediaFile) error
|
||||
Get(id string) (*MediaFile, error)
|
||||
FindByAlbum(albumId string) ([]MediaFile, error)
|
||||
FindByAlbum(albumId string) (MediaFiles, error)
|
||||
}
|
||||
|
||||
@@ -6,6 +6,8 @@ type MediaFolder struct {
|
||||
Path string
|
||||
}
|
||||
|
||||
type MediaFolders []MediaFolder
|
||||
|
||||
type MediaFolderRepository interface {
|
||||
GetAll() ([]MediaFolder, error)
|
||||
GetAll() (MediaFolders, error)
|
||||
}
|
||||
|
||||
@@ -27,8 +27,8 @@ func (r *albumRepository) Get(id string) (*domain.Album, error) {
|
||||
return rec.(*domain.Album), err
|
||||
}
|
||||
|
||||
func (r *albumRepository) FindByArtist(artistId string) ([]domain.Album, error) {
|
||||
var as = make([]domain.Album, 0)
|
||||
func (r *albumRepository) FindByArtist(artistId string) (domain.Albums, error) {
|
||||
var as = make(domain.Albums, 0)
|
||||
err := r.loadChildren("artist", artistId, &as, "Year", false)
|
||||
return as, err
|
||||
}
|
||||
|
||||
@@ -31,8 +31,8 @@ func (r *artistIndexRepository) Get(id string) (*domain.ArtistIndex, error) {
|
||||
return rec.(*domain.ArtistIndex), err
|
||||
}
|
||||
|
||||
func (r *artistIndexRepository) GetAll() ([]domain.ArtistIndex, error) {
|
||||
var indices = make([]domain.ArtistIndex, 0)
|
||||
func (r *artistIndexRepository) GetAll() (domain.ArtistIndexes, error) {
|
||||
var indices = make(domain.ArtistIndexes, 0)
|
||||
err := r.loadAll(&indices, "", true)
|
||||
return indices, err
|
||||
}
|
||||
|
||||
@@ -24,14 +24,14 @@ func (r *mediaFileRepository) Get(id string) (*domain.MediaFile, error) {
|
||||
return m.(*domain.MediaFile), err
|
||||
}
|
||||
|
||||
func (r *mediaFileRepository) FindByAlbum(albumId string) ([]domain.MediaFile, error) {
|
||||
var mfs = make([]domain.MediaFile, 0)
|
||||
func (r *mediaFileRepository) FindByAlbum(albumId string) (domain.MediaFiles, error) {
|
||||
var mfs = make(domain.MediaFiles, 0)
|
||||
err := r.loadChildren("album", albumId, &mfs, "", false)
|
||||
sort.Sort(byTrackNumber(mfs))
|
||||
return mfs, err
|
||||
}
|
||||
|
||||
type byTrackNumber []domain.MediaFile
|
||||
type byTrackNumber domain.MediaFiles
|
||||
|
||||
func (a byTrackNumber) Len() int {
|
||||
return len(a)
|
||||
|
||||
@@ -13,9 +13,9 @@ func NewMediaFolderRepository() domain.MediaFolderRepository {
|
||||
return &mediaFolderRepository{}
|
||||
}
|
||||
|
||||
func (*mediaFolderRepository) GetAll() ([]domain.MediaFolder, error) {
|
||||
func (*mediaFolderRepository) GetAll() (domain.MediaFolders, error) {
|
||||
mediaFolder := domain.MediaFolder{Id: "0", Name: "iTunes Library", Path: beego.AppConfig.String("musicFolder")}
|
||||
result := make([]domain.MediaFolder, 1)
|
||||
result := make(domain.MediaFolders, 1)
|
||||
result[0] = mediaFolder
|
||||
return result, nil
|
||||
}
|
||||
|
||||
@@ -48,11 +48,11 @@ func (m *MockAlbum) Get(id string) (*domain.Album, error) {
|
||||
return m.data[id], nil
|
||||
}
|
||||
|
||||
func (m *MockAlbum) FindByArtist(artistId string) ([]domain.Album, error) {
|
||||
func (m *MockAlbum) FindByArtist(artistId string) (domain.Albums, error) {
|
||||
if m.err {
|
||||
return nil, errors.New("Error!")
|
||||
}
|
||||
var res = make([]domain.Album, len(m.data))
|
||||
var res = make(domain.Albums, len(m.data))
|
||||
i := 0
|
||||
for _, a := range m.data {
|
||||
if a.ArtistId == artistId {
|
||||
|
||||
@@ -13,7 +13,7 @@ func CreateMockArtistIndexRepo() *MockArtistIndex {
|
||||
|
||||
type MockArtistIndex struct {
|
||||
domain.ArtistIndexRepository
|
||||
data []domain.ArtistIndex
|
||||
data domain.ArtistIndexes
|
||||
err bool
|
||||
}
|
||||
|
||||
@@ -22,14 +22,14 @@ func (m *MockArtistIndex) SetError(err bool) {
|
||||
}
|
||||
|
||||
func (m *MockArtistIndex) SetData(j string, length int) {
|
||||
m.data = make([]domain.ArtistIndex, length)
|
||||
m.data = make(domain.ArtistIndexes, length)
|
||||
err := json.Unmarshal([]byte(j), &m.data)
|
||||
if err != nil {
|
||||
fmt.Println("ERROR: ", err)
|
||||
}
|
||||
}
|
||||
|
||||
func (m *MockArtistIndex) GetAll() ([]domain.ArtistIndex, error) {
|
||||
func (m *MockArtistIndex) GetAll() (domain.ArtistIndexes, error) {
|
||||
if m.err {
|
||||
return nil, errors.New("Error!")
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ func (m *MockMediaFile) SetError(err bool) {
|
||||
|
||||
func (m *MockMediaFile) SetData(j string, size int) {
|
||||
m.data = make(map[string]*domain.MediaFile)
|
||||
var l = make([]domain.MediaFile, size)
|
||||
var l = make(domain.MediaFiles, size)
|
||||
err := json.Unmarshal([]byte(j), &l)
|
||||
if err != nil {
|
||||
fmt.Println("ERROR: ", err)
|
||||
@@ -52,11 +52,11 @@ func (m *MockMediaFile) Get(id string) (*domain.MediaFile, error) {
|
||||
return mf, nil
|
||||
}
|
||||
|
||||
func (m *MockMediaFile) FindByAlbum(artistId string) ([]domain.MediaFile, error) {
|
||||
func (m *MockMediaFile) FindByAlbum(artistId string) (domain.MediaFiles, error) {
|
||||
if m.err {
|
||||
return nil, errors.New("Error!")
|
||||
}
|
||||
var res = make([]domain.MediaFile, len(m.data))
|
||||
var res = make(domain.MediaFiles, len(m.data))
|
||||
i := 0
|
||||
for _, a := range m.data {
|
||||
if a.AlbumId == artistId {
|
||||
|
||||
Reference in New Issue
Block a user