feat: Integrate maintenance group module with logging setup and dependency registration

This commit is contained in:
Habib Fatkhul Rohman 2025-10-25 01:37:21 +07:00
parent 3881009eb6
commit 467431ca92
3 changed files with 27 additions and 0 deletions

View File

@ -8,6 +8,7 @@ import (
"github.com/Caknoooo/go-gin-clean-starter/docs" "github.com/Caknoooo/go-gin-clean-starter/docs"
"github.com/Caknoooo/go-gin-clean-starter/middlewares" "github.com/Caknoooo/go-gin-clean-starter/middlewares"
"github.com/Caknoooo/go-gin-clean-starter/modules/auth" "github.com/Caknoooo/go-gin-clean-starter/modules/auth"
maintenancegroup "github.com/Caknoooo/go-gin-clean-starter/modules/maintenance_group"
"github.com/Caknoooo/go-gin-clean-starter/modules/menu" "github.com/Caknoooo/go-gin-clean-starter/modules/menu"
"github.com/Caknoooo/go-gin-clean-starter/modules/role" "github.com/Caknoooo/go-gin-clean-starter/modules/role"
swaggerFiles "github.com/swaggo/files" swaggerFiles "github.com/swaggo/files"
@ -99,6 +100,7 @@ func main() {
// Logging to a file. // Logging to a file.
f, _ := os.Create("gin.log") f, _ := os.Create("gin.log")
gin.DefaultWriter = io.MultiWriter(f) gin.DefaultWriter = io.MultiWriter(f)
gin.SetMode(gin.DebugMode)
server := gin.Default() server := gin.Default()
//db := do.MustInvokeNamed[*gorm.DB](injector, constants.DB) //db := do.MustInvokeNamed[*gorm.DB](injector, constants.DB)
@ -121,6 +123,7 @@ func main() {
role.RegisterRoutes(server, injector) role.RegisterRoutes(server, injector)
logs.RegisterRoutes(server, injector) logs.RegisterRoutes(server, injector)
menu.RegisterRoutes(server, injector) menu.RegisterRoutes(server, injector)
maintenancegroup.RegisterRoutes(server, injector)
// register swagger route // register swagger route
server.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler)) server.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))

View File

@ -12,4 +12,5 @@ const (
DB = "db" DB = "db"
JWTService = "JWTService" JWTService = "JWTService"
LOGGER = "logger"
) )

View File

@ -4,6 +4,7 @@ import (
"github.com/Caknoooo/go-gin-clean-starter/config" "github.com/Caknoooo/go-gin-clean-starter/config"
authRepo "github.com/Caknoooo/go-gin-clean-starter/modules/auth/repository" authRepo "github.com/Caknoooo/go-gin-clean-starter/modules/auth/repository"
"github.com/Caknoooo/go-gin-clean-starter/modules/auth/service" "github.com/Caknoooo/go-gin-clean-starter/modules/auth/service"
"github.com/sirupsen/logrus"
// productController "github.com/Caknoooo/go-gin-clean-starter/modules/product/controller" // productController "github.com/Caknoooo/go-gin-clean-starter/modules/product/controller"
// productRepo "github.com/Caknoooo/go-gin-clean-starter/modules/product/repository" // productRepo "github.com/Caknoooo/go-gin-clean-starter/modules/product/repository"
@ -15,6 +16,12 @@ import (
roleController "github.com/Caknoooo/go-gin-clean-starter/modules/role/controller" roleController "github.com/Caknoooo/go-gin-clean-starter/modules/role/controller"
roleRepo "github.com/Caknoooo/go-gin-clean-starter/modules/role/repository" roleRepo "github.com/Caknoooo/go-gin-clean-starter/modules/role/repository"
roleService "github.com/Caknoooo/go-gin-clean-starter/modules/role/service" roleService "github.com/Caknoooo/go-gin-clean-starter/modules/role/service"
maintGroupController "github.com/Caknoooo/go-gin-clean-starter/modules/maintenance_group/controller"
maintGroupRepo "github.com/Caknoooo/go-gin-clean-starter/modules/maintenance_group/repository"
maintGroupRepoRole "github.com/Caknoooo/go-gin-clean-starter/modules/maintenance_group/repository"
maintGroupRepoRoleUser "github.com/Caknoooo/go-gin-clean-starter/modules/maintenance_group/repository"
maintGroupService "github.com/Caknoooo/go-gin-clean-starter/modules/maintenance_group/service"
"github.com/Caknoooo/go-gin-clean-starter/modules/user/controller" "github.com/Caknoooo/go-gin-clean-starter/modules/user/controller"
"github.com/Caknoooo/go-gin-clean-starter/modules/user/repository" "github.com/Caknoooo/go-gin-clean-starter/modules/user/repository"
userService "github.com/Caknoooo/go-gin-clean-starter/modules/user/service" userService "github.com/Caknoooo/go-gin-clean-starter/modules/user/service"
@ -29,8 +36,15 @@ func InitDatabase(injector *do.Injector) {
}) })
} }
func initLogger(injector *do.Injector) {
do.ProvideNamed(injector, constants.LOGGER, func(i *do.Injector) (*logrus.Logger, error) {
return config.SetupLoggerLogrus(), nil
})
}
func RegisterDependencies(injector *do.Injector) { func RegisterDependencies(injector *do.Injector) {
InitDatabase(injector) InitDatabase(injector)
initLogger(injector) // <-- tambahkan ini agar logger ter-register
do.ProvideNamed(injector, constants.JWTService, func(i *do.Injector) (service.JWTService, error) { do.ProvideNamed(injector, constants.JWTService, func(i *do.Injector) (service.JWTService, error) {
return service.NewJWTService(), nil return service.NewJWTService(), nil
@ -46,12 +60,16 @@ func RegisterDependencies(injector *do.Injector) {
// productRepository := productRepo.NewProductRepository(db) // productRepository := productRepo.NewProductRepository(db)
roleRepository := roleRepo.NewRoleRepository(db) roleRepository := roleRepo.NewRoleRepository(db)
menuRepository := menuRepo.NewMenuRepository(db) menuRepository := menuRepo.NewMenuRepository(db)
maintenanceGroupRepository := maintGroupRepo.NewMaintGroupRepository(db)
maintenanceGroupRoleRepository := maintGroupRepoRole.NewMaintGroupRoleRepository(db)
maintenanceGroupRoleUserRepository := maintGroupRepoRoleUser.NewMaintGroupRoleUserRepository(db)
// Service // Service
userServ := userService.NewUserService(userRepository, refreshTokenRepository, jwtService, db) userServ := userService.NewUserService(userRepository, refreshTokenRepository, jwtService, db)
// productService := productService.NewProductService(productRepository, db) // productService := productService.NewProductService(productRepository, db)
roleService := roleService.NewRoleService(roleRepository, refreshTokenRepository, jwtService, userServ, db) roleService := roleService.NewRoleService(roleRepository, refreshTokenRepository, jwtService, userServ, db)
menuSvc := menuService.NewMenuService(menuRepository, jwtService, db) menuSvc := menuService.NewMenuService(menuRepository, jwtService, db)
maintenanceGroupServ := maintGroupService.NewMaintenanceGroupService(maintenanceGroupRepository, maintenanceGroupRoleRepository, maintenanceGroupRoleUserRepository, db)
// Controller // Controller
do.Provide( do.Provide(
@ -84,4 +102,9 @@ func RegisterDependencies(injector *do.Injector) {
return logsController.NewLogsController(i), nil return logsController.NewLogsController(i), nil
}, },
) )
do.Provide(
injector, func(i *do.Injector) (maintGroupController.MaintenanceGroupController, error) {
return maintGroupController.NewMaintenanceGroupController(i, maintenanceGroupServ), nil
},
)
} }