user.go 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. package handler
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "github.com/go-nunu/nunu-layout/internal/model"
  5. "github.com/go-nunu/nunu-layout/internal/service"
  6. "github.com/go-nunu/nunu-layout/pkg/log"
  7. "github.com/go-nunu/nunu-layout/pkg/resp"
  8. "github.com/sony/sonyflake"
  9. "go.uber.org/zap"
  10. "net/http"
  11. )
  12. type UserHandler struct {
  13. userService *service.UserService
  14. log *log.Logger
  15. }
  16. func NewUserHandler(log *log.Logger, sf *sonyflake.Sonyflake, userService *service.UserService) *UserHandler {
  17. return &UserHandler{
  18. userService: userService,
  19. log: log,
  20. }
  21. }
  22. func (c *UserHandler) CreateUser(ctx *gin.Context) {
  23. var params struct {
  24. Username string `json:"username" binding:"required,min=2,max=20"`
  25. Email string `json:"email" binding:"required,email"`
  26. }
  27. if err := ctx.ShouldBind(&params); err != nil {
  28. resp.HandleError(ctx, http.StatusBadRequest, 1, err.Error(), nil)
  29. return
  30. }
  31. user, err := c.userService.CreateUser(&model.User{
  32. Username: params.Username,
  33. Email: params.Email,
  34. })
  35. c.log.Logger.Info("CreateUser", zap.Any("user", user))
  36. if err != nil {
  37. resp.HandleError(ctx, http.StatusInternalServerError, 1, err.Error(), nil)
  38. return
  39. }
  40. resp.HandleSuccess(ctx, user)
  41. }
  42. func (c *UserHandler) GetUserById(ctx *gin.Context) {
  43. var params struct {
  44. Id int64 `form:"id" binding:"required"`
  45. }
  46. if err := ctx.ShouldBind(&params); err != nil {
  47. resp.HandleError(ctx, http.StatusBadRequest, 1, err.Error(), nil)
  48. return
  49. }
  50. user, err := c.userService.GetUserById(params.Id)
  51. c.log.Logger.Info("GetUserByID", zap.Any("user", user))
  52. if err != nil {
  53. resp.HandleError(ctx, http.StatusInternalServerError, 1, err.Error(), nil)
  54. return
  55. }
  56. resp.HandleSuccess(ctx, user)
  57. }
  58. func (c *UserHandler) UpdateUser(ctx *gin.Context) {
  59. resp.HandleSuccess(ctx, nil)
  60. }