Added a new layer: engine (equivalent to use cases in Clean Architecture). Should make testing things easier

This commit is contained in:
Deluan
2016-03-07 10:57:32 -05:00
parent 56e9ad3def
commit 91c660c746
6 changed files with 91 additions and 39 deletions
+4 -4
View File
@@ -2,22 +2,22 @@ package api
import (
"github.com/deluan/gosonic/api/responses"
"github.com/deluan/gosonic/domain"
"github.com/deluan/gosonic/engine"
"github.com/deluan/gosonic/utils"
"github.com/karlkfi/inject"
)
type GetMusicFoldersController struct {
BaseAPIController
repo domain.MediaFolderRepository
browser engine.Browser
}
func (c *GetMusicFoldersController) Prepare() {
inject.ExtractAssignable(utils.Graph, &c.repo)
inject.ExtractAssignable(utils.Graph, &c.browser)
}
func (c *GetMusicFoldersController) Get() {
mediaFolderList, _ := c.repo.GetAll()
mediaFolderList, _ := c.browser.MediaFolders()
folders := make([]responses.MusicFolder, len(mediaFolderList))
for i, f := range mediaFolderList {
folders[i].Id = f.Id