user.go 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. package controllers
  2. import (
  3. "hongze_edb_lib/models"
  4. "encoding/json"
  5. beego "github.com/beego/beego/v2/server/web"
  6. )
  7. // Operations about Users
  8. type UserController struct {
  9. beego.Controller
  10. }
  11. // @Title CreateUser
  12. // @Description create users
  13. // @Param body body models.User true "body for user content"
  14. // @Success 200 {int} models.User.Id
  15. // @Failure 403 body is empty
  16. // @router / [post]
  17. func (u *UserController) Post() {
  18. var user models.User
  19. json.Unmarshal(u.Ctx.Input.RequestBody, &user)
  20. uid := models.AddUser(user)
  21. u.Data["json"] = map[string]string{"uid": uid}
  22. u.ServeJSON()
  23. }
  24. // @Title GetAll
  25. // @Description get all Users
  26. // @Success 200 {object} models.User
  27. // @router / [get]
  28. func (u *UserController) GetAll() {
  29. users := models.GetAllUsers()
  30. u.Data["json"] = users
  31. u.ServeJSON()
  32. }
  33. // @Title Get
  34. // @Description get user by uid
  35. // @Param uid path string true "The key for staticblock"
  36. // @Success 200 {object} models.User
  37. // @Failure 403 :uid is empty
  38. // @router /:uid [get]
  39. func (u *UserController) Get() {
  40. uid := u.GetString(":uid")
  41. if uid != "" {
  42. user, err := models.GetUser(uid)
  43. if err != nil {
  44. u.Data["json"] = err.Error()
  45. } else {
  46. u.Data["json"] = user
  47. }
  48. }
  49. u.ServeJSON()
  50. }
  51. // @Title Update
  52. // @Description update the user
  53. // @Param uid path string true "The uid you want to update"
  54. // @Param body body models.User true "body for user content"
  55. // @Success 200 {object} models.User
  56. // @Failure 403 :uid is not int
  57. // @router /:uid [put]
  58. func (u *UserController) Put() {
  59. uid := u.GetString(":uid")
  60. if uid != "" {
  61. var user models.User
  62. json.Unmarshal(u.Ctx.Input.RequestBody, &user)
  63. uu, err := models.UpdateUser(uid, &user)
  64. if err != nil {
  65. u.Data["json"] = err.Error()
  66. } else {
  67. u.Data["json"] = uu
  68. }
  69. }
  70. u.ServeJSON()
  71. }
  72. // @Title Delete
  73. // @Description delete the user
  74. // @Param uid path string true "The uid you want to delete"
  75. // @Success 200 {string} delete success!
  76. // @Failure 403 uid is empty
  77. // @router /:uid [delete]
  78. func (u *UserController) Delete() {
  79. uid := u.GetString(":uid")
  80. models.DeleteUser(uid)
  81. u.Data["json"] = "delete success!"
  82. u.ServeJSON()
  83. }
  84. // @Title Login
  85. // @Description Logs user into the system
  86. // @Param username query string true "The username for login"
  87. // @Param password query string true "The password for login"
  88. // @Success 200 {string} login success
  89. // @Failure 403 user not exist
  90. // @router /login [get]
  91. func (u *UserController) Login() {
  92. username := u.GetString("username")
  93. password := u.GetString("password")
  94. if models.Login(username, password) {
  95. u.Data["json"] = "login success"
  96. } else {
  97. u.Data["json"] = "user not exist"
  98. }
  99. u.ServeJSON()
  100. }
  101. // @Title logout
  102. // @Description Logs out current logged in user session
  103. // @Success 200 {string} logout success
  104. // @router /logout [get]
  105. func (u *UserController) Logout() {
  106. u.Data["json"] = "logout success"
  107. u.ServeJSON()
  108. }