-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.go
40 lines (38 loc) · 995 Bytes
/
main.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
package main
import (
"encoding/gob"
"go.uber.org/fx"
"wanpei-backend/controller"
"wanpei-backend/mapper"
"wanpei-backend/models"
"wanpei-backend/repo"
"wanpei-backend/server"
"wanpei-backend/services"
"wanpei-backend/worker"
)
func main() {
// register models for encoding
gob.Register(models.User{})
gob.Register(models.UserInsensitive{})
// start app
app := fx.New(
// get environment variables
fx.Provide(server.GetEnv),
// provide infrastructures constructors
fx.Provide(mapper.NewDbConn, server.NewApp, models.NewSessionStore, server.NewSettings),
// creat local repos
repo.CreateRepo(),
// register all mappers
mapper.RegisterMapper(),
// register services
services.RegisterServices(),
// register all controllers by providing fx.Option
controller.RegisterControllers(),
// Start matchmaking worker goroutine
fx.Provide(worker.NewMatch),
fx.Invoke(worker.MatchWorker),
// run gin app
fx.Invoke(server.Run),
)
app.Run() // run forever
}