package router import ( academy_controller "api.qobiltu.id/controller/academy" cv_controller "api.qobiltu.id/controller/cv" email_controller "api.qobiltu.id/controller/email" marriage_readiness_profile_controller "api.qobiltu.id/controller/marriage_readiness_profile" options_controller "api.qobiltu.id/controller/options" partner_criteria_controller "api.qobiltu.id/controller/partner_criteria" quiz_controller "api.qobiltu.id/controller/quiz" region_controller "api.qobiltu.id/controller/region" "github.com/gin-gonic/gin" ) type Server struct { router *gin.Engine regionController region_controller.RegionController optionsController options_controller.OptionsController emailController email_controller.EmailController academyController academy_controller.AcademyController quizController quiz_controller.QuizController cvController cv_controller.CVController marriageReadinessProfileController marriage_readiness_profile_controller.MarriageReadinessProfileController partnerCriteriaController partner_criteria_controller.PartnerCriteriaController } func NewServer( regionController region_controller.RegionController, optionsController options_controller.OptionsController, emailController email_controller.EmailController, academyController academy_controller.AcademyController, quizController quiz_controller.QuizController, cvController cv_controller.CVController, marriageReadinessProfileController marriage_readiness_profile_controller.MarriageReadinessProfileController, partnerCriteriaController partner_criteria_controller.PartnerCriteriaController, ) (*Server, error) { router := gin.Default() router.Use(gin.Recovery()) server := &Server{ router: router, regionController: regionController, optionsController: optionsController, emailController: emailController, academyController: academyController, quizController: quizController, cvController: cvController, marriageReadinessProfileController: marriageReadinessProfileController, partnerCriteriaController: partnerCriteriaController, } server.setupRoutes() return server, nil } func (s *Server) Start(address string) error { return s.router.Run(address) }