clean: first clean archi sandbox implementation

This commit is contained in:
Florian Sylvain
2023-08-05 14:37:53 +02:00
parent 4187f0b2e2
commit 5b4b5a8622
13 changed files with 302 additions and 1 deletions
+41
View File
@@ -0,0 +1,41 @@
package api
import (
. "GohCMS2/useCases"
"errors"
"go.uber.org/dig"
)
type Container struct {
CreateArticleUseCase *CreateArticleUseCase
GetArticleUseCase *GetArticleUseCase
}
var container *Container
func InitContainer() *Container {
if container != nil {
return container
}
digContainer := dig.New()
err1 := digContainer.Provide(NewCreateArticleUseCase)
err2 := digContainer.Provide(NewGetArticleUseCase)
if err := errors.Join(err1, err2); err != nil {
panic(err)
}
err := digContainer.Invoke(func(createArticle *CreateArticleUseCase, getArticle *GetArticleUseCase) {
container = &Container{
CreateArticleUseCase: createArticle,
GetArticleUseCase: getArticle,
}
})
if err != nil {
panic(err)
}
return container
}