arnaucube
arnaucube/gogame-oldPublic Self-hosted repository
gogame-old/endpoint/serve.go
endpoint/serve.goRaw
 1package endpoint
 2
 3import (
 4	"github.com/arnaucube/gogame/config"
 5	"github.com/arnaucube/gogame/database"
 6	"github.com/arnaucube/gogame/services/gamesrv"
 7	"github.com/arnaucube/gogame/services/usersrv"
 8	"github.com/gin-contrib/cors"
 9	"github.com/gin-gonic/gin"
10)
11
12var serverConfig config.Config
13var db *database.Db
14var userservice *usersrv.Service
15var gameservice *gamesrv.Service
16
17func newApiService() *gin.Engine {
18	api := gin.Default()
19	api.Use(cors.Default())
20	api.GET("/", handleMain)
21	api.GET("/info", handleInfo)
22	api.POST("/register", handleRegister)
23	api.POST("/login", handleLogin)
24
25	// TODO add jwt checker
26	api.GET("/resources/:userid", handleGetResources)
27	api.GET("/planets/:userid", handleGetUserPlanets)
28	api.POST("/buildings/:userid", handlePostUpgradeBuilding)
29	return api
30}
31
32func Serve(cnfg config.Config, _db *database.Db, _userservice *usersrv.Service, _gameservice *gamesrv.Service) *gin.Engine {
33	serverConfig = cnfg
34	db = _db
35	userservice = _userservice
36	gameservice = _gameservice
37	return newApiService()
38}