mirror of
https://github.com/arnaucube/gogame.git
synced 2026-02-07 03:26:39 +01:00
minimal register&login working
This commit is contained in:
61
endpoint/handlers.go
Normal file
61
endpoint/handlers.go
Normal 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(®isterMsg)
|
||||
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
30
endpoint/serve.go
Normal 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()
|
||||
}
|
||||
Reference in New Issue
Block a user