minimal register&login working

This commit is contained in:
arnaucube
2019-06-13 20:26:05 +02:00
parent f7a5bbb91e
commit 0cd29328b4
17 changed files with 348 additions and 16 deletions

61
endpoint/handlers.go Normal file
View File

@@ -0,0 +1,61 @@
package endpoint
import (
"github.com/fatih/color"
"github.com/gin-gonic/gin"
)
func fail(c *gin.Context, err error, msg string) {
color.Red(msg + ": " + err.Error())
c.JSON(400, gin.H{
"error": msg,
})
}
func handleMain(c *gin.Context) {
c.JSON(200, gin.H{
"status": "wellcome to gogame",
})
}
func handleInfo(c *gin.Context) {
c.JSON(200, gin.H{
"info": "info",
})
}
type RegisterMsg struct {
Name string `binding:"required"`
Password string `binding:"required"`
Email string `binding:"required"`
}
func handleRegister(c *gin.Context) {
var registerMsg RegisterMsg
c.BindJSON(&registerMsg)
user, err := userservice.Register(registerMsg.Name, registerMsg.Password, registerMsg.Email)
if err != nil {
fail(c, err, "error on register")
return
}
c.JSON(200, gin.H{
"user": user,
})
}
type LoginMsg struct {
Email string `binding:"required"`
Password string `binding:"required"`
}
func handleLogin(c *gin.Context) {
var loginMsg LoginMsg
c.BindJSON(&loginMsg)
user, err := userservice.Login(loginMsg.Email, loginMsg.Password)
if err != nil {
fail(c, err, "error on login")
return
}
c.JSON(200, gin.H{
"user": user,
})
}

30
endpoint/serve.go Normal file
View File

@@ -0,0 +1,30 @@
package endpoint
import (
"github.com/arnaucube/gogame/config"
"github.com/arnaucube/gogame/database"
"github.com/arnaucube/gogame/services/usersrv"
"github.com/gin-contrib/cors"
"github.com/gin-gonic/gin"
)
var serverConfig config.Config
var db *database.Db
var userservice *usersrv.Service
func newApiService() *gin.Engine {
api := gin.Default()
api.Use(cors.Default())
api.GET("/", handleMain)
api.GET("/info", handleInfo)
api.POST("/register", handleRegister)
api.POST("/login", handleLogin)
return api
}
func Serve(cnfg config.Config, _db *database.Db, _userservice *usersrv.Service) *gin.Engine {
serverConfig = cnfg
db = _db
userservice = _userservice
return newApiService()
}