Added a new layer: engine (equivalent to use cases in Clean Architecture). Should make testing things easier
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user