File size: 2,482 Bytes
48471f7
 
 
1f7dd45
9adc91d
cabfcc4
1301478
a020582
54de00c
57e875f
a020582
48471f7
 
 
 
1301478
a020582
 
cabfcc4
1f7dd45
57e875f
1301478
 
54de00c
48471f7
 
 
a020582
 
cabfcc4
1f7dd45
57e875f
9adc91d
1301478
54de00c
48471f7
 
 
 
 
a020582
 
 
cabfcc4
1f7dd45
57e875f
1301478
 
54de00c
48471f7
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
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)
}