You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

38 lines
1.0 KiB

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