Introduced types for the collections

This commit is contained in:
Deluan
2016-03-03 21:01:55 -05:00
parent eae9f3168f
commit fc6d49d34c
11 changed files with 29 additions and 21 deletions

View File

@@ -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)
}

View File

@@ -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)
}

View File

@@ -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)
}

View File

@@ -6,6 +6,8 @@ type MediaFolder struct {
Path string
}
type MediaFolders []MediaFolder
type MediaFolderRepository interface {
GetAll() ([]MediaFolder, error)
GetAll() (MediaFolders, error)
}

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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)

View File

@@ -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
}

View File

@@ -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 {

View File

@@ -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!")
}

View File

@@ -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 {