quzuu-api-test / provider /controller_provider.go
lifedebugger's picture
Deploy files from GitHub repository
be05512
package provider
import "abdanhafidz.com/go-boilerplate/controllers"
type ControllerProvider interface {
ProvideAdminAcademyController() controllers.AdminAcademyController
ProvideAdminEventController() controllers.AdminEventController
ProvideAdminExamController() controllers.AdminExamController
ProvideAdminStatisticController() controllers.AdminStatisticController
ProvideAdminProblemSetController() controllers.AdminProblemSetController
ProvideAcademyController() controllers.AcademyController
ProvideAcademyExamController() controllers.AcademyExamController
ProvideAccountDetailController() controllers.AccountDetailController
ProvideAuthenticationController() controllers.AuthenticationController
ProvideEmailVerificationController() controllers.EmailVerificationController
ProvideEventController() controllers.EventController
ProvideEventExamController() controllers.EventExamController
ProvideEventExamProctoringController() controllers.EventExamProctoringController
ProvideForgotPasswordController() controllers.ForgotPasswordController
ProvideOptionController() controllers.OptionController
ProvideRegionController() controllers.RegionController
ProvideUploadController() controllers.UploadController
ProvideUserController() controllers.UserController
ProvideSuperAdminInjectController() controllers.SuperAdminInjectController
ProvideRepairController() controllers.RepairController
}
type controllerProvider struct {
adminAcademyController controllers.AdminAcademyController
adminEventController controllers.AdminEventController
adminExamController controllers.AdminExamController
adminStatisticController controllers.AdminStatisticController
adminProblemSetController controllers.AdminProblemSetController
academyController controllers.AcademyController
academyExamController controllers.AcademyExamController
accountDetailController controllers.AccountDetailController
authenticationController controllers.AuthenticationController
emailVerificationController controllers.EmailVerificationController
eventController controllers.EventController
eventExamController controllers.EventExamController
eventExamProctoringController controllers.EventExamProctoringController
forgotPasswordController controllers.ForgotPasswordController
optionController controllers.OptionController
regionController controllers.RegionController
uploadController controllers.UploadController
userController controllers.UserController
superAdminInjectController controllers.SuperAdminInjectController
repairController controllers.RepairController
}
func NewControllerProvider(servicesProvider ServicesProvider) ControllerProvider {
adminEventController := controllers.NewAdminEventController(servicesProvider.ProvideAdminEventService())
adminExamController := controllers.NewAdminExamController(servicesProvider.ProvideAdminExamService())
adminStatisticController := controllers.NewAdminStatisticController(servicesProvider.ProvideAdminStatisticService())
adminAcademyController := controllers.NewAdminAcademyController(servicesProvider.ProvideAdminAcademyService())
adminProblemSetController := controllers.NewAdminProblemSetController(servicesProvider.ProvideProblemSetService())
academyController := controllers.NewAcademyController(servicesProvider.ProvideAcademyService())
academyExamController := controllers.NewAcademyExamController(servicesProvider.ProvideAcademyExamService())
accountDetailController := controllers.NewAccountDetailController(servicesProvider.ProvideAccountService())
authenticationController := controllers.NewAuthenticationController(
servicesProvider.ProvideAccountService(),
servicesProvider.ProvideExternalAuthService(),
servicesProvider.ProvideEmailVerificationService(),
)
emailVerificationController := controllers.NewEmailVerificationController(servicesProvider.ProvideEmailVerificationService())
eventController := controllers.NewEventController(servicesProvider.ProvideEventService())
eventExamController := controllers.NewEventExamController(servicesProvider.ProvideEventExamService())
eventExamProctoringController := controllers.NewEventExamProctoringController(servicesProvider.ProvideEventExamProctoringService())
forgotPasswordController := controllers.NewForgotPasswordController(servicesProvider.ProvideForgotPasswordService())
optionController := controllers.NewOptionController(servicesProvider.ProvideOptionService())
regionController := controllers.NewRegionController(servicesProvider.ProvideRegionService())
uploadController := controllers.NewUploadController(servicesProvider.ProvideUploadService())
userController := controllers.NewUserController(servicesProvider.ProvideAccountService())
superAdminInjectController := controllers.NewSuperAdminInjectController(
servicesProvider.ProvideProblemSetService(),
servicesProvider.ProvideZipInjectService(),
)
repairController := controllers.NewRepairController(servicesProvider.ProvideRepairService())
return &controllerProvider{
adminAcademyController: adminAcademyController,
adminEventController: adminEventController,
adminExamController: adminExamController,
adminStatisticController: adminStatisticController,
adminProblemSetController: adminProblemSetController,
academyController: academyController,
academyExamController: academyExamController,
accountDetailController: accountDetailController,
authenticationController: authenticationController,
emailVerificationController: emailVerificationController,
eventController: eventController,
eventExamController: eventExamController,
eventExamProctoringController: eventExamProctoringController,
forgotPasswordController: forgotPasswordController,
optionController: optionController,
regionController: regionController,
uploadController: uploadController,
userController: userController,
superAdminInjectController: superAdminInjectController,
repairController: repairController,
}
}
// --- Getter Methods ---
func (c *controllerProvider) ProvideAdminAcademyController() controllers.AdminAcademyController {
return c.adminAcademyController
}
func (c *controllerProvider) ProvideAdminEventController() controllers.AdminEventController {
return c.adminEventController
}
func (c *controllerProvider) ProvideAdminExamController() controllers.AdminExamController {
return c.adminExamController
}
func (c *controllerProvider) ProvideAdminStatisticController() controllers.AdminStatisticController {
return c.adminStatisticController
}
func (c *controllerProvider) ProvideAdminProblemSetController() controllers.AdminProblemSetController {
return c.adminProblemSetController
}
func (c *controllerProvider) ProvideAcademyController() controllers.AcademyController {
return c.academyController
}
func (c *controllerProvider) ProvideAcademyExamController() controllers.AcademyExamController {
return c.academyExamController
}
func (c *controllerProvider) ProvideAccountDetailController() controllers.AccountDetailController {
return c.accountDetailController
}
func (c *controllerProvider) ProvideAuthenticationController() controllers.AuthenticationController {
return c.authenticationController
}
func (c *controllerProvider) ProvideEmailVerificationController() controllers.EmailVerificationController {
return c.emailVerificationController
}
func (c *controllerProvider) ProvideEventController() controllers.EventController {
return c.eventController
}
func (c *controllerProvider) ProvideEventExamController() controllers.EventExamController {
return c.eventExamController
}
func (c *controllerProvider) ProvideEventExamProctoringController() controllers.EventExamProctoringController {
return c.eventExamProctoringController
}
func (c *controllerProvider) ProvideForgotPasswordController() controllers.ForgotPasswordController {
return c.forgotPasswordController
}
func (c *controllerProvider) ProvideOptionController() controllers.OptionController {
return c.optionController
}
func (c *controllerProvider) ProvideRegionController() controllers.RegionController {
return c.regionController
}
func (c *controllerProvider) ProvideUploadController() controllers.UploadController {
return c.uploadController
}
func (c *controllerProvider) ProvideUserController() controllers.UserController {
return c.userController
}
func (c *controllerProvider) ProvideSuperAdminInjectController() controllers.SuperAdminInjectController {
return c.superAdminInjectController
}
func (c *controllerProvider) ProvideRepairController() controllers.RepairController {
return c.repairController
}