signup_controller.go 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. package auth
  2. import (
  3. "github.com/gin-gonic/gin"
  4. v1 "github.com/runningwater/gohub/app/http/controllers/api/v1"
  5. "github.com/runningwater/gohub/app/models/user"
  6. "github.com/runningwater/gohub/app/requests"
  7. "github.com/runningwater/gohub/pkg/response"
  8. )
  9. // SignupController 处理用户注册相关的逻辑
  10. type SignupController struct {
  11. v1.BaseApiController
  12. }
  13. func (sc *SignupController) IsPhoneExist(c *gin.Context) {
  14. // 初始化请求对象
  15. req := requests.SignupPhoneExistRequest{}
  16. if ok := requests.Validate(c, &req, requests.ValidateSignupPhoneExist); !ok {
  17. return
  18. }
  19. // 检查数据库并返回响应
  20. response.JSON(c, gin.H{
  21. "exist": user.IsPhoneExist(req.Phone),
  22. })
  23. }
  24. func (sc *SignupController) IsEmailExist(c *gin.Context) {
  25. // 初始化请求对象
  26. req := requests.SignupEmailExistRequest{}
  27. if ok := requests.Validate(c, &req, requests.ValidateSignupEmailExist); !ok {
  28. return
  29. }
  30. // 检查数据库并返回响应
  31. response.JSON(c, gin.H{
  32. "exist": user.IsEmailExist(req.Email),
  33. })
  34. }
  35. // SignupUsingPhone 使用手机和验证码进行注册
  36. func (sc *SignupController) SignupUsingPhone(c *gin.Context) {
  37. // 1. 验证表单
  38. request := requests.SignupUsingPhoneRequest{}
  39. if ok := requests.Validate(c, &request, requests.SignupUsingPhone); !ok {
  40. return
  41. }
  42. // 2. 验证成功,创建数据
  43. _user := user.User{
  44. Name: request.Name,
  45. Phone: request.Phone,
  46. Password: request.Password,
  47. }
  48. _user.Create()
  49. if _user.ID > 0 {
  50. response.CreatedJSON(c, gin.H{
  51. "data": _user,
  52. })
  53. } else {
  54. response.Abort500(c, "创建用户失败,请稍后尝试~")
  55. }
  56. }
  57. // SignupUsingEmail 使用邮箱和验证码进行注册
  58. func (sc *SignupController) SignupUsingEmail(c *gin.Context) {
  59. // 1. 验证表单
  60. request := requests.SignupUsingEmailRequest{}
  61. if ok := requests.Validate(c, &request, requests.SignupUsingEmail); !ok {
  62. return
  63. }
  64. // 2. 验证成功,创建数据
  65. _user := user.User{
  66. Name: request.Name,
  67. Email: request.Email,
  68. Password: request.Password,
  69. }
  70. _user.Create()
  71. if _user.ID > 0 {
  72. response.CreatedJSON(c, gin.H{
  73. "data": _user,
  74. })
  75. } else {
  76. response.Abort500(c, "创建用户失败,请稍后尝试~")
  77. }
  78. }