arnaucube
arnaucube/gogame-oldPublic Self-hosted repository
gogame-old/cmd/server.go
cmd/server.goRaw
 1package cmd
 2
 3import (
 4	"github.com/arnaucube/gogame/config"
 5	"github.com/arnaucube/gogame/database"
 6	"github.com/arnaucube/gogame/endpoint"
 7	"github.com/arnaucube/gogame/services/gamesrv"
 8	"github.com/arnaucube/gogame/services/usersrv"
 9	"github.com/urfave/cli"
10)
11
12var ServerCommands = []cli.Command{
13	{
14		Name:    "start",
15		Aliases: []string{},
16		Usage:   "start the server",
17		Action:  start,
18	},
19}
20
21func start(c *cli.Context) error {
22	if err := config.MustRead(c); err != nil {
23		return err
24	}
25
26	db, err := database.New(config.C.Mongodb.Url, config.C.Mongodb.Database)
27	if err != nil {
28		return err
29	}
30
31	// services
32	gameservice := gamesrv.New(db)
33	userservice := usersrv.New(db, gameservice)
34	if err != nil {
35		return err
36	}
37
38	apiService := endpoint.Serve(config.C, db, userservice, gameservice)
39	apiService.Run(config.C.Server.ServiceApi)
40
41	return nil
42}