add UpgradeBuilding functionallity

This commit is contained in:
arnaucube
2019-06-14 23:29:16 +02:00
parent c07b4edd62
commit c38f7762f4
9 changed files with 205 additions and 20 deletions

View File

@@ -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,
})
}

View File

@@ -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()
}