feat(router,app): pass project service to router

This commit is contained in:
Guz
2025-06-26 19:11:16 -03:00
parent 58a02dd90c
commit 17dee3141b
2 changed files with 27 additions and 8 deletions

View File

@@ -151,6 +151,16 @@ func (app *app) setup() error {
return fmt.Errorf("app: failed to start token repository: %w", err)
}
projectRepository, err := repository.NewProject(app.ctx, app.db, app.logger.WithGroup("repository.project"), app.assert)
if err != nil {
return fmt.Errorf("app: failed to start project repository: %w", err)
}
permissionRepository, err := repository.NewPermissions(app.ctx, app.db, app.logger.WithGroup("repository.permission"), app.assert)
if err != nil {
return fmt.Errorf("app: failed to start permission repository: %w", err)
}
userService := service.NewUser(userRepository, app.logger.WithGroup("service.user"), app.assert)
tokenService := service.NewToken(service.TokenConfig{
PrivateKey: app.privateKey,
@@ -159,10 +169,12 @@ func (app *app) setup() error {
Logger: app.logger.WithGroup("service.token"),
Assertions: app.assert,
})
projectService := service.NewProject(projectRepository, permissionRepository, app.logger.WithGroup("service.project"), app.assert)
app.handler, err = router.New(router.Config{
UserService: userService,
TokenService: tokenService,
UserService: userService,
TokenService: tokenService,
ProjectService: projectService,
Templates: app.templates,
DisableCache: app.developmentMode,

View File

@@ -5,6 +5,7 @@ import (
"io/fs"
"log/slog"
"net/http"
"strings"
"forge.capytal.company/capytalcode/project-comicverse/service"
"forge.capytal.company/capytalcode/project-comicverse/templates"
@@ -15,8 +16,9 @@ import (
)
type router struct {
userService *service.User
tokenService *service.Token
userService *service.User
tokenService *service.Token
projectService *service.Project
templates templates.ITemplate
assets fs.FS
@@ -33,6 +35,9 @@ func New(cfg Config) (http.Handler, error) {
if cfg.TokenService == nil {
return nil, errors.New("token service is nil")
}
if cfg.ProjectService == nil {
return nil, errors.New("project service is nil")
}
if cfg.Templates == nil {
return nil, errors.New("templates is nil")
}
@@ -47,8 +52,9 @@ func New(cfg Config) (http.Handler, error) {
}
r := &router{
userService: cfg.UserService,
tokenService: cfg.TokenService,
userService: cfg.UserService,
tokenService: cfg.TokenService,
projectService: cfg.ProjectService,
templates: cfg.Templates,
assets: cfg.Assets,
@@ -62,8 +68,9 @@ func New(cfg Config) (http.Handler, error) {
}
type Config struct {
UserService *service.User
TokenService *service.Token
UserService *service.User
TokenService *service.Token
ProjectService *service.Project
Templates templates.ITemplate
Assets fs.FS