Преглед изворни кода

feat: inject trailDbSvc to Marketplace service layer

Matheus Marques Polillo пре 9 месеци
родитељ
комит
1a92cf5d8c

+ 2 - 1
src/presentation/api/controller/marketplace.go

@@ -18,9 +18,10 @@ type MarketplaceController struct {
 
 func NewMarketplaceController(
 	persistentDbSvc *internalDbInfra.PersistentDatabaseService,
+	trailDbSvc *internalDbInfra.TrailDatabaseService,
 ) *MarketplaceController {
 	return &MarketplaceController{
-		marketplaceService: service.NewMarketplaceService(persistentDbSvc),
+		marketplaceService: service.NewMarketplaceService(persistentDbSvc, trailDbSvc),
 		persistentDbSvc:    persistentDbSvc,
 	}
 }

+ 1 - 1
src/presentation/api/router.go

@@ -103,7 +103,7 @@ func (router Router) filesRoutes() {
 func (router Router) marketplaceRoutes() {
 	marketplaceGroup := router.baseRoute.Group("/v1/marketplace")
 	marketplaceController := apiController.NewMarketplaceController(
-		router.persistentDbSvc,
+		router.persistentDbSvc, router.trailDbSvc,
 	)
 
 	marketplaceInstalledGroup := marketplaceGroup.Group("/installed")

+ 2 - 1
src/presentation/cli/controller/marketplace.go

@@ -19,10 +19,11 @@ type MarketplaceController struct {
 
 func NewMarketplaceController(
 	persistentDbSvc *internalDbInfra.PersistentDatabaseService,
+	trailDbSvc *internalDbInfra.TrailDatabaseService,
 ) *MarketplaceController {
 	return &MarketplaceController{
 		persistentDbSvc:    persistentDbSvc,
-		marketplaceService: service.NewMarketplaceService(persistentDbSvc),
+		marketplaceService: service.NewMarketplaceService(persistentDbSvc, trailDbSvc),
 	}
 }
 

+ 1 - 1
src/presentation/cli/router.go

@@ -110,7 +110,7 @@ func (router Router) marketplaceRoutes() {
 	rootCmd.AddCommand(marketplaceCmd)
 
 	marketplaceController := cliController.NewMarketplaceController(
-		router.persistentDbSvc,
+		router.persistentDbSvc, router.trailDbSvc,
 	)
 	marketplaceCmd.AddCommand(marketplaceController.ReadCatalog())
 	marketplaceCmd.AddCommand(marketplaceController.InstallCatalogItem())

+ 16 - 13
src/presentation/service/marketplace.go

@@ -9,6 +9,7 @@ import (
 	"github.com/goinfinite/os/src/domain/useCase"
 	"github.com/goinfinite/os/src/domain/valueObject"
 	voHelper "github.com/goinfinite/os/src/domain/valueObject/helper"
+	activityRecordInfra "github.com/goinfinite/os/src/infra/activityRecord"
 	infraEnvs "github.com/goinfinite/os/src/infra/envs"
 	infraHelper "github.com/goinfinite/os/src/infra/helper"
 	internalDbInfra "github.com/goinfinite/os/src/infra/internalDatabase"
@@ -19,20 +20,26 @@ import (
 )
 
 type MarketplaceService struct {
-	persistentDbSvc *internalDbInfra.PersistentDatabaseService
+	marketplaceQueryRepo  *marketplaceInfra.MarketplaceQueryRepo
+	marketplaceCmdRepo    *marketplaceInfra.MarketplaceCmdRepo
+	activityRecordCmdRepo *activityRecordInfra.ActivityRecordCmdRepo
+	persistentDbSvc       *internalDbInfra.PersistentDatabaseService
 }
 
 func NewMarketplaceService(
 	persistentDbSvc *internalDbInfra.PersistentDatabaseService,
+	trailDbSvc *internalDbInfra.TrailDatabaseService,
 ) *MarketplaceService {
 	return &MarketplaceService{
-		persistentDbSvc: persistentDbSvc,
+		marketplaceQueryRepo:  marketplaceInfra.NewMarketplaceQueryRepo(persistentDbSvc),
+		marketplaceCmdRepo:    marketplaceInfra.NewMarketplaceCmdRepo(persistentDbSvc),
+		activityRecordCmdRepo: activityRecordInfra.NewActivityRecordCmdRepo(trailDbSvc),
+		persistentDbSvc:       persistentDbSvc,
 	}
 }
 
 func (service *MarketplaceService) ReadCatalog() ServiceOutput {
-	marketplaceQueryRepo := marketplaceInfra.NewMarketplaceQueryRepo(service.persistentDbSvc)
-	itemsList, err := useCase.ReadMarketplaceCatalog(marketplaceQueryRepo)
+	itemsList, err := useCase.ReadMarketplaceCatalog(service.marketplaceQueryRepo)
 	if err != nil {
 		return NewServiceOutput(InfraError, err.Error())
 	}
@@ -140,13 +147,12 @@ func (service *MarketplaceService) InstallCatalogItem(
 		hostname, idPtr, slugPtr, urlPathPtr, dataFields,
 	)
 
-	marketplaceQueryRepo := marketplaceInfra.NewMarketplaceQueryRepo(service.persistentDbSvc)
-	marketplaceCmdRepo := marketplaceInfra.NewMarketplaceCmdRepo(service.persistentDbSvc)
 	vhostQueryRepo := vhostInfra.NewVirtualHostQueryRepo(service.persistentDbSvc)
 	vhostCmdRepo := vhostInfra.NewVirtualHostCmdRepo(service.persistentDbSvc)
 
 	err = useCase.InstallMarketplaceCatalogItem(
-		marketplaceQueryRepo, marketplaceCmdRepo, vhostQueryRepo, vhostCmdRepo, dto,
+		service.marketplaceQueryRepo, service.marketplaceCmdRepo, vhostQueryRepo,
+		vhostCmdRepo, service.activityRecordCmdRepo, dto,
 	)
 	if err != nil {
 		return NewServiceOutput(InfraError, err.Error())
@@ -156,8 +162,7 @@ func (service *MarketplaceService) InstallCatalogItem(
 }
 
 func (service *MarketplaceService) ReadInstalledItems() ServiceOutput {
-	marketplaceQueryRepo := marketplaceInfra.NewMarketplaceQueryRepo(service.persistentDbSvc)
-	itemsList, err := useCase.ReadMarketplaceInstalledItems(marketplaceQueryRepo)
+	itemsList, err := useCase.ReadMarketplaceInstalledItems(service.marketplaceQueryRepo)
 	if err != nil {
 		return NewServiceOutput(InfraError, err.Error())
 	}
@@ -223,11 +228,9 @@ func (service *MarketplaceService) DeleteInstalledItem(
 		installedId, shouldUninstallServices,
 	)
 
-	marketplaceQueryRepo := marketplaceInfra.NewMarketplaceQueryRepo(service.persistentDbSvc)
-	marketplaceCmdRepo := marketplaceInfra.NewMarketplaceCmdRepo(service.persistentDbSvc)
-
 	err = useCase.DeleteMarketplaceInstalledItem(
-		marketplaceQueryRepo, marketplaceCmdRepo, deleteMarketplaceInstalledItem,
+		service.marketplaceQueryRepo, service.marketplaceCmdRepo,
+		deleteMarketplaceInstalledItem,
 	)
 	if err != nil {
 		return NewServiceOutput(InfraError, err.Error())

+ 2 - 1
src/presentation/ui/presenter/marketplace.go

@@ -20,9 +20,10 @@ type MarketplacePresenter struct {
 
 func NewMarketplacePresenter(
 	persistentDbSvc *internalDbInfra.PersistentDatabaseService,
+	trailDbSvc *internalDbInfra.TrailDatabaseService,
 ) *MarketplacePresenter {
 	return &MarketplacePresenter{
-		marketplaceService: service.NewMarketplaceService(persistentDbSvc),
+		marketplaceService: service.NewMarketplaceService(persistentDbSvc, trailDbSvc),
 		virtualHostService: service.NewVirtualHostService(persistentDbSvc),
 	}
 }

+ 3 - 1
src/presentation/ui/router.go

@@ -85,7 +85,9 @@ func (router *Router) mappingsRoutes() {
 func (router *Router) marketplaceRoutes() {
 	marketplaceGroup := router.baseRoute.Group("/marketplace")
 
-	marketplacePresenter := presenter.NewMarketplacePresenter(router.persistentDbSvc)
+	marketplacePresenter := presenter.NewMarketplacePresenter(
+		router.persistentDbSvc, router.trailDbSvc,
+	)
 	marketplaceGroup.GET("/", marketplacePresenter.Handler)
 }