TP-55555 | Release handler refeactor as per services
This commit is contained in:
@@ -1,10 +1,14 @@
|
||||
package dependencies
|
||||
|
||||
import (
|
||||
"cybertron/configs"
|
||||
"cybertron/internal/client/document"
|
||||
"cybertron/internal/database"
|
||||
"cybertron/internal/transport/handler"
|
||||
"cybertron/pkg/db"
|
||||
httpclient "cybertron/pkg/httpClient"
|
||||
"cybertron/pkg/log"
|
||||
"cybertron/service"
|
||||
"go.uber.org/zap"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
@@ -18,12 +22,15 @@ type Dependencies struct {
|
||||
}
|
||||
|
||||
type Service struct {
|
||||
DocumentService *document.HttpClient
|
||||
ProjectService *service.ProjectCreator
|
||||
ReleaseService *service.ReleaseService
|
||||
// Add your service here
|
||||
}
|
||||
|
||||
type Handler struct {
|
||||
ProjectHandler *handler.ProjectHandler
|
||||
ReleasesHandler *handler.ReleasesHandler
|
||||
ProjectHandler *handler.ProjectHandler
|
||||
ReleaseHandler *handler.ReleasesHandler
|
||||
}
|
||||
|
||||
type Repositories struct {
|
||||
@@ -32,22 +39,31 @@ type Repositories struct {
|
||||
}
|
||||
|
||||
func InitDependencies() *Dependencies {
|
||||
services := initServices()
|
||||
dbClient := db.NewDBClient()
|
||||
handlers := initHandlers(dbClient)
|
||||
repositories := initRepositories(dbClient)
|
||||
logger := log.Log
|
||||
httpClient := httpclient.NewHttpClient(*configs.GetHttpConfig())
|
||||
documentServiceClient := document.NewDocumentServiceHttpClient(httpClient, logger, configs.GetDocumentServiceHttpClientConfigs())
|
||||
projectServiceClient := service.NewProjectCreator(logger, dbClient)
|
||||
releaseServiceClient := service.NewReleaseService(logger, dbClient)
|
||||
|
||||
services := initServices(documentServiceClient, projectServiceClient, releaseServiceClient)
|
||||
handlers := initHandlers(projectServiceClient, releaseServiceClient)
|
||||
|
||||
return &Dependencies{
|
||||
Service: services,
|
||||
DBClient: dbClient,
|
||||
Logger: log.Log.GetLog(),
|
||||
Logger: logger.GetLog(),
|
||||
Handler: handlers,
|
||||
Repositories: repositories,
|
||||
}
|
||||
}
|
||||
|
||||
func initServices() *Service {
|
||||
func initServices(documentService *document.HttpClient, projectService *service.ProjectCreator, releaseService *service.ReleaseService) *Service {
|
||||
return &Service{
|
||||
// Add your service here
|
||||
DocumentService: documentService,
|
||||
ProjectService: projectService,
|
||||
ReleaseService: releaseService,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -58,12 +74,11 @@ func initRepositories(dbClient *gorm.DB) *Repositories {
|
||||
}
|
||||
}
|
||||
|
||||
func initHandlers(dbClient *gorm.DB) *Handler {
|
||||
projectHandler := handler.NewProjectHandler(dbClient)
|
||||
releasesHandler := handler.NewReleaseHandler(dbClient)
|
||||
|
||||
func initHandlers(projectService *service.ProjectCreator, releaseService *service.ReleaseService) *Handler {
|
||||
projectHandler := handler.NewProjectHandler(projectService)
|
||||
releaseHandler := handler.NewReleaseHandler(releaseService)
|
||||
return &Handler{
|
||||
ProjectHandler: projectHandler,
|
||||
ReleasesHandler: releasesHandler,
|
||||
ProjectHandler: projectHandler,
|
||||
ReleaseHandler: releaseHandler,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user