Introduced interfaces for all repositories, completely isolating the persistence layer from the repositories usage and specification
This commit is contained in:
@@ -4,24 +4,24 @@ import (
|
||||
"github.com/deluan/gosonic/domain"
|
||||
)
|
||||
|
||||
type Album struct {
|
||||
BaseRepository
|
||||
type albumRepository struct {
|
||||
baseRepository
|
||||
}
|
||||
|
||||
func NewAlbumRepository() *Album {
|
||||
r := &Album{}
|
||||
func NewAlbumRepository() domain.AlbumRepository {
|
||||
r := &albumRepository{}
|
||||
r.init("album", &domain.Album{})
|
||||
return r
|
||||
}
|
||||
|
||||
func (r *Album) Put(m *domain.Album) error {
|
||||
func (r *albumRepository) Put(m *domain.Album) error {
|
||||
if m.Id == "" {
|
||||
m.Id = r.NewId(m.ArtistId, m.Name)
|
||||
}
|
||||
return r.saveOrUpdate(m.Id, m)
|
||||
}
|
||||
|
||||
func (r *Album) Get(id string) (*domain.Album, error) {
|
||||
func (r *albumRepository) Get(id string) (*domain.Album, error) {
|
||||
var rec interface{}
|
||||
rec, err := r.readEntity(id)
|
||||
return rec.(*domain.Album), err
|
||||
|
||||
Reference in New Issue
Block a user