mirror of
https://github.com/arnaucube/gogame.git
synced 2026-02-07 03:26:39 +01:00
add UpgradeBuilding functionallity
This commit is contained in:
@@ -1,8 +1,11 @@
|
||||
package endpoint
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/fatih/color"
|
||||
"github.com/gin-gonic/gin"
|
||||
"gopkg.in/mgo.v2/bson"
|
||||
)
|
||||
|
||||
func fail(c *gin.Context, err error, msg string) {
|
||||
@@ -64,14 +67,14 @@ func handleLogin(c *gin.Context) {
|
||||
func handleGetResources(c *gin.Context) {
|
||||
userid := c.Param("userid")
|
||||
|
||||
user, err := userservice.GetUserById(userid)
|
||||
user, err := userservice.GetUserById(bson.ObjectIdHex(userid))
|
||||
if err != nil {
|
||||
fail(c, err, "error on getting user")
|
||||
return
|
||||
}
|
||||
resources, err := user.GetResources()
|
||||
if err != nil {
|
||||
fail(c, err, "error on getting user")
|
||||
fail(c, err, "error on getting user resources")
|
||||
return
|
||||
}
|
||||
|
||||
@@ -80,3 +83,49 @@ func handleGetResources(c *gin.Context) {
|
||||
"resources": resources,
|
||||
})
|
||||
}
|
||||
|
||||
func handleGetUserPlanets(c *gin.Context) {
|
||||
userid := c.Param("userid")
|
||||
|
||||
planets, err := userservice.GetUserPlanetsById(bson.ObjectIdHex(userid))
|
||||
if err != nil {
|
||||
fail(c, err, "error on getting user planets")
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(200, gin.H{
|
||||
"planets": planets,
|
||||
})
|
||||
}
|
||||
|
||||
type BuildMsg struct {
|
||||
PlanetId string
|
||||
Building string
|
||||
}
|
||||
|
||||
func handlePostUpgradeBuilding(c *gin.Context) {
|
||||
userid := c.Param("userid")
|
||||
var buildMsg BuildMsg
|
||||
err := c.BindJSON(&buildMsg)
|
||||
if err != nil {
|
||||
fail(c, err, "error parsing json")
|
||||
return
|
||||
}
|
||||
fmt.Println(buildMsg)
|
||||
|
||||
user, err := userservice.GetUserById(bson.ObjectIdHex(userid))
|
||||
if err != nil {
|
||||
fail(c, err, "error on getting user")
|
||||
return
|
||||
}
|
||||
|
||||
planet, err := gameservice.UpgradeBuilding(user, bson.ObjectIdHex(buildMsg.PlanetId), buildMsg.Building)
|
||||
if err != nil {
|
||||
fail(c, err, "error upgrading building")
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(200, gin.H{
|
||||
"planet": planet,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package endpoint
|
||||
import (
|
||||
"github.com/arnaucube/gogame/config"
|
||||
"github.com/arnaucube/gogame/database"
|
||||
"github.com/arnaucube/gogame/services/gamesrv"
|
||||
"github.com/arnaucube/gogame/services/usersrv"
|
||||
"github.com/gin-contrib/cors"
|
||||
"github.com/gin-gonic/gin"
|
||||
@@ -11,6 +12,7 @@ import (
|
||||
var serverConfig config.Config
|
||||
var db *database.Db
|
||||
var userservice *usersrv.Service
|
||||
var gameservice *gamesrv.Service
|
||||
|
||||
func newApiService() *gin.Engine {
|
||||
api := gin.Default()
|
||||
@@ -22,12 +24,15 @@ func newApiService() *gin.Engine {
|
||||
|
||||
// TODO add jwt checker
|
||||
api.GET("/resources/:userid", handleGetResources)
|
||||
api.GET("/planets/:userid", handleGetUserPlanets)
|
||||
api.POST("/buildings/:userid", handlePostUpgradeBuilding)
|
||||
return api
|
||||
}
|
||||
|
||||
func Serve(cnfg config.Config, _db *database.Db, _userservice *usersrv.Service) *gin.Engine {
|
||||
func Serve(cnfg config.Config, _db *database.Db, _userservice *usersrv.Service, _gameservice *gamesrv.Service) *gin.Engine {
|
||||
serverConfig = cnfg
|
||||
db = _db
|
||||
userservice = _userservice
|
||||
gameservice = _gameservice
|
||||
return newApiService()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user