usercontroller.go 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package controller
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "trading-go/model"
  5. "trading-go/response"
  6. "trading-go/util"
  7. )
  8. func Register(c *gin.Context) {
  9. var user model.User
  10. user.Uid = c.PostForm("uid")
  11. user.Name = c.PostForm("name")
  12. user.Avatar = c.PostForm("avatar")
  13. err := user.Register()
  14. if err != nil {
  15. msg := err.Error()
  16. response.Fail(c.Writer, msg, 500)
  17. } else {
  18. msg := "register succeed"
  19. response.Success(c.Writer, msg, nil)
  20. }
  21. }
  22. func Login(c *gin.Context) {
  23. var user model.User
  24. user.Uid = c.PostForm("uid")
  25. err, nu := user.Login()
  26. if err != nil && err.Error() == "sql: no rows in result set" {
  27. err = util.NoSuchUserError
  28. msg := err.Error()
  29. response.Fail(c.Writer, msg, 403)
  30. return
  31. }
  32. if err != nil {
  33. msg := err.Error()
  34. response.Fail(c.Writer, msg, 500)
  35. return
  36. }
  37. token, err := util.CreatToken(nu.Uid)
  38. if err != nil {
  39. msg := err.Error()
  40. response.Fail(c.Writer, msg, 500)
  41. return
  42. }
  43. data := gin.H{
  44. "token": token,
  45. "user_info": nu,
  46. }
  47. response.Success(c.Writer, "success", data)
  48. }