letter incoming
This commit is contained in:
+66
-19
@@ -44,6 +44,9 @@ func (a *App) Initialize(cfg *config.Config) error {
|
||||
healthHandler := handler.NewHealthHandler()
|
||||
fileHandler := handler.NewFileHandler(services.fileService)
|
||||
rbacHandler := handler.NewRBACHandler(services.rbacService)
|
||||
masterHandler := handler.NewMasterHandler(services.masterService)
|
||||
letterHandler := handler.NewLetterHandler(services.letterService)
|
||||
dispositionRouteHandler := handler.NewDispositionRouteHandler(services.dispositionRouteService)
|
||||
|
||||
a.router = router.NewRouter(
|
||||
cfg,
|
||||
@@ -53,6 +56,9 @@ func (a *App) Initialize(cfg *config.Config) error {
|
||||
handler.NewUserHandler(services.userService, validator.NewUserValidator()),
|
||||
fileHandler,
|
||||
rbacHandler,
|
||||
masterHandler,
|
||||
letterHandler,
|
||||
dispositionRouteHandler,
|
||||
)
|
||||
|
||||
return nil
|
||||
@@ -98,36 +104,70 @@ func (a *App) Shutdown() {
|
||||
}
|
||||
|
||||
type repositories struct {
|
||||
userRepo *repository.UserRepositoryImpl
|
||||
userProfileRepo *repository.UserProfileRepository
|
||||
titleRepo *repository.TitleRepository
|
||||
rbacRepo *repository.RBACRepository
|
||||
userRepo *repository.UserRepositoryImpl
|
||||
userProfileRepo *repository.UserProfileRepository
|
||||
titleRepo *repository.TitleRepository
|
||||
rbacRepo *repository.RBACRepository
|
||||
labelRepo *repository.LabelRepository
|
||||
priorityRepo *repository.PriorityRepository
|
||||
institutionRepo *repository.InstitutionRepository
|
||||
dispRepo *repository.DispositionActionRepository
|
||||
letterRepo *repository.LetterIncomingRepository
|
||||
letterAttachRepo *repository.LetterIncomingAttachmentRepository
|
||||
activityLogRepo *repository.LetterIncomingActivityLogRepository
|
||||
dispositionRouteRepo *repository.DispositionRouteRepository
|
||||
// new repos
|
||||
letterDispositionRepo *repository.LetterDispositionRepository
|
||||
letterDispActionSelRepo *repository.LetterDispositionActionSelectionRepository
|
||||
dispositionNoteRepo *repository.DispositionNoteRepository
|
||||
letterDiscussionRepo *repository.LetterDiscussionRepository
|
||||
}
|
||||
|
||||
func (a *App) initRepositories() *repositories {
|
||||
return &repositories{
|
||||
userRepo: repository.NewUserRepository(a.db),
|
||||
userProfileRepo: repository.NewUserProfileRepository(a.db),
|
||||
titleRepo: repository.NewTitleRepository(a.db),
|
||||
rbacRepo: repository.NewRBACRepository(a.db),
|
||||
userRepo: repository.NewUserRepository(a.db),
|
||||
userProfileRepo: repository.NewUserProfileRepository(a.db),
|
||||
titleRepo: repository.NewTitleRepository(a.db),
|
||||
rbacRepo: repository.NewRBACRepository(a.db),
|
||||
labelRepo: repository.NewLabelRepository(a.db),
|
||||
priorityRepo: repository.NewPriorityRepository(a.db),
|
||||
institutionRepo: repository.NewInstitutionRepository(a.db),
|
||||
dispRepo: repository.NewDispositionActionRepository(a.db),
|
||||
letterRepo: repository.NewLetterIncomingRepository(a.db),
|
||||
letterAttachRepo: repository.NewLetterIncomingAttachmentRepository(a.db),
|
||||
activityLogRepo: repository.NewLetterIncomingActivityLogRepository(a.db),
|
||||
dispositionRouteRepo: repository.NewDispositionRouteRepository(a.db),
|
||||
letterDispositionRepo: repository.NewLetterDispositionRepository(a.db),
|
||||
letterDispActionSelRepo: repository.NewLetterDispositionActionSelectionRepository(a.db),
|
||||
dispositionNoteRepo: repository.NewDispositionNoteRepository(a.db),
|
||||
letterDiscussionRepo: repository.NewLetterDiscussionRepository(a.db),
|
||||
}
|
||||
}
|
||||
|
||||
type processors struct {
|
||||
userProcessor *processor.UserProcessorImpl
|
||||
userProcessor *processor.UserProcessorImpl
|
||||
letterProcessor *processor.LetterProcessorImpl
|
||||
activityLogger *processor.ActivityLogProcessorImpl
|
||||
}
|
||||
|
||||
func (a *App) initProcessors(cfg *config.Config, repos *repositories) *processors {
|
||||
txMgr := repository.NewTxManager(a.db)
|
||||
activity := processor.NewActivityLogProcessor(repos.activityLogRepo)
|
||||
return &processors{
|
||||
userProcessor: processor.NewUserProcessor(repos.userRepo, repos.userProfileRepo),
|
||||
userProcessor: processor.NewUserProcessor(repos.userRepo, repos.userProfileRepo),
|
||||
letterProcessor: processor.NewLetterProcessor(repos.letterRepo, repos.letterAttachRepo, txMgr, activity, repos.letterDispositionRepo, repos.letterDispActionSelRepo, repos.dispositionNoteRepo, repos.letterDiscussionRepo),
|
||||
activityLogger: activity,
|
||||
}
|
||||
}
|
||||
|
||||
type services struct {
|
||||
userService *service.UserServiceImpl
|
||||
authService *service.AuthServiceImpl
|
||||
fileService *service.FileServiceImpl
|
||||
rbacService *service.RBACServiceImpl
|
||||
userService *service.UserServiceImpl
|
||||
authService *service.AuthServiceImpl
|
||||
fileService *service.FileServiceImpl
|
||||
rbacService *service.RBACServiceImpl
|
||||
masterService *service.MasterServiceImpl
|
||||
letterService *service.LetterServiceImpl
|
||||
dispositionRouteService *service.DispositionRouteServiceImpl
|
||||
}
|
||||
|
||||
func (a *App) initServices(processors *processors, repos *repositories, cfg *config.Config) *services {
|
||||
@@ -137,18 +177,25 @@ func (a *App) initServices(processors *processors, repos *repositories, cfg *con
|
||||
|
||||
userSvc := service.NewUserService(processors.userProcessor, repos.titleRepo)
|
||||
|
||||
// File storage client and service
|
||||
fileCfg := cfg.S3Config
|
||||
s3Client := client.NewFileClient(fileCfg)
|
||||
fileSvc := service.NewFileService(s3Client, processors.userProcessor, "profile", "documents")
|
||||
|
||||
rbacSvc := service.NewRBACService(repos.rbacRepo)
|
||||
|
||||
masterSvc := service.NewMasterService(repos.labelRepo, repos.priorityRepo, repos.institutionRepo, repos.dispRepo)
|
||||
|
||||
letterSvc := service.NewLetterService(processors.letterProcessor)
|
||||
dispRouteSvc := service.NewDispositionRouteService(repos.dispositionRouteRepo)
|
||||
|
||||
return &services{
|
||||
userService: userSvc,
|
||||
authService: authService,
|
||||
fileService: fileSvc,
|
||||
rbacService: rbacSvc,
|
||||
userService: userSvc,
|
||||
authService: authService,
|
||||
fileService: fileSvc,
|
||||
rbacService: rbacSvc,
|
||||
masterService: masterSvc,
|
||||
letterService: letterSvc,
|
||||
dispositionRouteService: dispRouteSvc,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user