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
+3 -1
View File
@@ -15,9 +15,11 @@ type Album struct {
Genre string Genre string
} }
type Albums []Album
type AlbumRepository interface { type AlbumRepository interface {
BaseRepository BaseRepository
Put(m *Album) error Put(m *Album) error
Get(id string) (*Album, error) Get(id string) (*Album, error)
FindByArtist(artistId string) ([]Album, error) FindByArtist(artistId string) (Albums, error)
} }
+3 -1
View File
@@ -10,9 +10,11 @@ type ArtistIndex struct {
Artists []ArtistInfo Artists []ArtistInfo
} }
type ArtistIndexes []ArtistIndex
type ArtistIndexRepository interface { type ArtistIndexRepository interface {
BaseRepository BaseRepository
Put(m *ArtistIndex) error Put(m *ArtistIndex) error
Get(id string) (*ArtistIndex, error) Get(id string) (*ArtistIndex, error)
GetAll() ([]ArtistIndex, error) GetAll() (ArtistIndexes, error)
} }
+3 -1
View File
@@ -32,9 +32,11 @@ func (mf *MediaFile) ContentType() string {
return mime.TypeByExtension("." + mf.Suffix) return mime.TypeByExtension("." + mf.Suffix)
} }
type MediaFiles []MediaFile
type MediaFileRepository interface { type MediaFileRepository interface {
BaseRepository BaseRepository
Put(m *MediaFile) error Put(m *MediaFile) error
Get(id string) (*MediaFile, error) Get(id string) (*MediaFile, error)
FindByAlbum(albumId string) ([]MediaFile, error) FindByAlbum(albumId string) (MediaFiles, error)
} }
+3 -1
View File
@@ -6,6 +6,8 @@ type MediaFolder struct {
Path string Path string
} }
type MediaFolders []MediaFolder
type MediaFolderRepository interface { type MediaFolderRepository interface {
GetAll() ([]MediaFolder, error) GetAll() (MediaFolders, error)
} }
+2 -2
View File
@@ -27,8 +27,8 @@ func (r *albumRepository) Get(id string) (*domain.Album, error) {
return rec.(*domain.Album), err return rec.(*domain.Album), err
} }
func (r *albumRepository) FindByArtist(artistId string) ([]domain.Album, error) { func (r *albumRepository) FindByArtist(artistId string) (domain.Albums, error) {
var as = make([]domain.Album, 0) var as = make(domain.Albums, 0)
err := r.loadChildren("artist", artistId, &as, "Year", false) err := r.loadChildren("artist", artistId, &as, "Year", false)
return as, err return as, err
} }
+2 -2
View File
@@ -31,8 +31,8 @@ func (r *artistIndexRepository) Get(id string) (*domain.ArtistIndex, error) {
return rec.(*domain.ArtistIndex), err return rec.(*domain.ArtistIndex), err
} }
func (r *artistIndexRepository) GetAll() ([]domain.ArtistIndex, error) { func (r *artistIndexRepository) GetAll() (domain.ArtistIndexes, error) {
var indices = make([]domain.ArtistIndex, 0) var indices = make(domain.ArtistIndexes, 0)
err := r.loadAll(&indices, "", true) err := r.loadAll(&indices, "", true)
return indices, err return indices, err
} }
+3 -3
View File
@@ -24,14 +24,14 @@ func (r *mediaFileRepository) Get(id string) (*domain.MediaFile, error) {
return m.(*domain.MediaFile), err return m.(*domain.MediaFile), err
} }
func (r *mediaFileRepository) FindByAlbum(albumId string) ([]domain.MediaFile, error) { func (r *mediaFileRepository) FindByAlbum(albumId string) (domain.MediaFiles, error) {
var mfs = make([]domain.MediaFile, 0) var mfs = make(domain.MediaFiles, 0)
err := r.loadChildren("album", albumId, &mfs, "", false) err := r.loadChildren("album", albumId, &mfs, "", false)
sort.Sort(byTrackNumber(mfs)) sort.Sort(byTrackNumber(mfs))
return mfs, err return mfs, err
} }
type byTrackNumber []domain.MediaFile type byTrackNumber domain.MediaFiles
func (a byTrackNumber) Len() int { func (a byTrackNumber) Len() int {
return len(a) return len(a)
+2 -2
View File
@@ -13,9 +13,9 @@ func NewMediaFolderRepository() domain.MediaFolderRepository {
return &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")} 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 result[0] = mediaFolder
return result, nil return result, nil
} }
+2 -2
View File
@@ -48,11 +48,11 @@ func (m *MockAlbum) Get(id string) (*domain.Album, error) {
return m.data[id], nil 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 { if m.err {
return nil, errors.New("Error!") return nil, errors.New("Error!")
} }
var res = make([]domain.Album, len(m.data)) var res = make(domain.Albums, len(m.data))
i := 0 i := 0
for _, a := range m.data { for _, a := range m.data {
if a.ArtistId == artistId { if a.ArtistId == artistId {
+3 -3
View File
@@ -13,7 +13,7 @@ func CreateMockArtistIndexRepo() *MockArtistIndex {
type MockArtistIndex struct { type MockArtistIndex struct {
domain.ArtistIndexRepository domain.ArtistIndexRepository
data []domain.ArtistIndex data domain.ArtistIndexes
err bool err bool
} }
@@ -22,14 +22,14 @@ func (m *MockArtistIndex) SetError(err bool) {
} }
func (m *MockArtistIndex) SetData(j string, length int) { 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) err := json.Unmarshal([]byte(j), &m.data)
if err != nil { if err != nil {
fmt.Println("ERROR: ", err) fmt.Println("ERROR: ", err)
} }
} }
func (m *MockArtistIndex) GetAll() ([]domain.ArtistIndex, error) { func (m *MockArtistIndex) GetAll() (domain.ArtistIndexes, error) {
if m.err { if m.err {
return nil, errors.New("Error!") return nil, errors.New("Error!")
} }
+3 -3
View File
@@ -23,7 +23,7 @@ func (m *MockMediaFile) SetError(err bool) {
func (m *MockMediaFile) SetData(j string, size int) { func (m *MockMediaFile) SetData(j string, size int) {
m.data = make(map[string]*domain.MediaFile) 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) err := json.Unmarshal([]byte(j), &l)
if err != nil { if err != nil {
fmt.Println("ERROR: ", err) fmt.Println("ERROR: ", err)
@@ -52,11 +52,11 @@ func (m *MockMediaFile) Get(id string) (*domain.MediaFile, error) {
return mf, nil return mf, nil
} }
func (m *MockMediaFile) FindByAlbum(artistId string) ([]domain.MediaFile, error) { func (m *MockMediaFile) FindByAlbum(artistId string) (domain.MediaFiles, error) {
if m.err { if m.err {
return nil, errors.New("Error!") return nil, errors.New("Error!")
} }
var res = make([]domain.MediaFile, len(m.data)) var res = make(domain.MediaFiles, len(m.data))
i := 0 i := 0
for _, a := range m.data { for _, a := range m.data {
if a.AlbumId == artistId { if a.AlbumId == artistId {