arnaucube
arnaucube/gogame-oldPublic Self-hosted repository
gogame-old/endpoint/handlers.go
endpoint/handlers.goRaw
 1package endpoint
 2
 3import (
 4	"github.com/fatih/color"
 5	"github.com/gin-gonic/gin"
 6)
 7
 8func fail(c *gin.Context, err error, msg string) {
 9	color.Red(msg + ": " + err.Error())
10	c.JSON(400, gin.H{
11		"error": msg,
12	})
13}
14func handleMain(c *gin.Context) {
15	c.JSON(200, gin.H{
16		"status": "wellcome to gogame",
17	})
18}
19
20func handleInfo(c *gin.Context) {
21	c.JSON(200, gin.H{
22		"info": "info",
23	})
24}
25
26type RegisterMsg struct {
27	Name     string `binding:"required"`
28	Password string `binding:"required"`
29	Email    string `binding:"required"`
30}
31
32func handleRegister(c *gin.Context) {
33	var registerMsg RegisterMsg
34	c.BindJSON(&registerMsg)
35	user, err := userservice.Register(registerMsg.Name, registerMsg.Password, registerMsg.Email)
36	if err != nil {
37		fail(c, err, "error on register")
38		return
39	}
40	c.JSON(200, gin.H{
41		"user": user,
42	})
43}
44
45type LoginMsg struct {
46	Email    string `binding:"required"`
47	Password string `binding:"required"`
48}
49
50func handleLogin(c *gin.Context) {
51	var loginMsg LoginMsg
52	c.BindJSON(&loginMsg)
53	user, err := userservice.Login(loginMsg.Email, loginMsg.Password)
54	if err != nil {
55		fail(c, err, "error on login")
56		return
57	}
58	c.JSON(200, gin.H{
59		"user": user,
60	})
61}