/
server.go
61 lines (51 loc) · 2.01 KB
/
server.go
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
61
// Copyright 2019 The OpenPitrix Authors. All rights reserved.
// Use of this source code is governed by a Apache license
// that can be found in the LICENSE file.
package notification
import (
"google.golang.org/grpc"
"openpitrix.io/logger"
"openpitrix.io/notification/pkg/config"
"openpitrix.io/notification/pkg/manager"
"openpitrix.io/notification/pkg/pb"
rs "openpitrix.io/notification/pkg/services/notification/resource_control"
)
type Server struct {
controller *Controller
}
func Serve() {
cfg := config.GetInstance()
//read email config data from db.
// check the data in data is default data or not
// 1.if data in DB is default data, use cfg from ENV to update data in DB.
// 2.if data in DB is not default data, use the data in DB.
err := rs.ResetEmailCfg(cfg)
if err != nil {
logger.Errorf(nil, "Failed to reset email config: %+v.", err)
}
controller, err := NewController()
if err != nil {
logger.Criticalf(nil, "Failed to start serve: %+v.", err)
}
s := &Server{controller: controller}
/**********************************************************
** start controller **
**********************************************************/
logger.Infof(nil, "[%s]", "/**********************************************************")
logger.Infof(nil, "[%s]", "** start controller **")
logger.Infof(nil, "[%s]", "**********************************************************/")
go s.controller.Serve()
/**********************************************************
** start ServeApiGateway **
**********************************************************/
logger.Infof(nil, "[%s]", "/**********************************************************")
logger.Infof(nil, "[%s]", "** start ServeApiGateway **")
logger.Infof(nil, "[%s]", "**********************************************************/")
go ServeApiGateway()
manager.NewGrpcServer(cfg.App.Host, cfg.App.Port).
ShowErrorCause(cfg.Grpc.ShowErrorCause).
WithChecker(s.Checker).
Serve(func(server *grpc.Server) {
pb.RegisterNotificationServer(server, s)
})
}