package cmd
|
|
|
|
import (
|
|
"github.com/arnaucube/gogame/config"
|
|
"github.com/arnaucube/gogame/database"
|
|
"github.com/arnaucube/gogame/endpoint"
|
|
"github.com/arnaucube/gogame/services/gamesrv"
|
|
"github.com/arnaucube/gogame/services/usersrv"
|
|
"github.com/urfave/cli"
|
|
)
|
|
|
|
var ServerCommands = []cli.Command{
|
|
{
|
|
Name: "start",
|
|
Aliases: []string{},
|
|
Usage: "start the server",
|
|
Action: start,
|
|
},
|
|
}
|
|
|
|
func start(c *cli.Context) error {
|
|
if err := config.MustRead(c); err != nil {
|
|
return err
|
|
}
|
|
|
|
db, err := database.New(config.C.Mongodb.Url, config.C.Mongodb.Database)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
// services
|
|
gameservice := gamesrv.New(db)
|
|
userservice := usersrv.New(db, gameservice)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
apiService := endpoint.Serve(config.C, db, userservice, gameservice)
|
|
apiService.Run(config.C.Server.ServiceApi)
|
|
|
|
return nil
|
|
}
|