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(®isterMsg)
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 token, 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 "token": token,
60 "user": user,
61 })
62}
63
64func handleGetResources(c *gin.Context) {
65 userid := c.Param("userid")
66
67 user, err := userservice.GetUserById(userid)
68 if err != nil {
69 fail(c, err, "error on getting user")
70 return
71 }
72 resources, err := user.GetResources()
73 if err != nil {
74 fail(c, err, "error on getting user")
75 return
76 }
77
78 c.JSON(200, gin.H{
79 "user": user,
80 "resources": resources,
81 })
82}