TP-55555 | Release handler refeactor as per services

This commit is contained in:
Lokesh Dugar
2024-07-27 18:57:02 +05:30
27 changed files with 909 additions and 158 deletions

View File

@@ -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,
}
}