addressBookCollection.go 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. package my
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "github.com/lejianwen/rustdesk-api/global"
  5. "github.com/lejianwen/rustdesk-api/http/request/admin"
  6. "github.com/lejianwen/rustdesk-api/http/response"
  7. "github.com/lejianwen/rustdesk-api/model"
  8. "github.com/lejianwen/rustdesk-api/service"
  9. "gorm.io/gorm"
  10. )
  11. type AddressBookCollection struct {
  12. }
  13. // Create 创建地址簿名称
  14. // @Tags 我的地址簿名称
  15. // @Summary 创建地址簿名称
  16. // @Description 创建地址簿名称
  17. // @Accept json
  18. // @Produce json
  19. // @Param body body model.AddressBookCollection true "地址簿名称信息"
  20. // @Success 200 {object} response.Response{data=model.AddressBookCollection}
  21. // @Failure 500 {object} response.Response
  22. // @Router /admin/my/address_book_collection/create [post]
  23. // @Security token
  24. func (abc *AddressBookCollection) Create(c *gin.Context) {
  25. f := &model.AddressBookCollection{}
  26. if err := c.ShouldBindJSON(f); err != nil {
  27. response.Fail(c, 101, response.TranslateMsg(c, "ParamsError")+err.Error())
  28. return
  29. }
  30. errList := global.Validator.ValidStruct(c, f)
  31. if len(errList) > 0 {
  32. response.Fail(c, 101, errList[0])
  33. return
  34. }
  35. u := service.AllService.UserService.CurUser(c)
  36. f.UserId = u.Id
  37. err := service.AllService.AddressBookService.CreateCollection(f)
  38. if err != nil {
  39. response.Fail(c, 101, response.TranslateMsg(c, "OperationFailed")+err.Error())
  40. return
  41. }
  42. response.Success(c, nil)
  43. }
  44. // List 列表
  45. // @Tags 我的地址簿名称
  46. // @Summary 地址簿名称列表
  47. // @Description 地址簿名称列表
  48. // @Accept json
  49. // @Produce json
  50. // @Param page query int false "页码"
  51. // @Param page_size query int false "页大小"
  52. // @Success 200 {object} response.Response{data=model.AddressBookCollectionList}
  53. // @Failure 500 {object} response.Response
  54. // @Router /admin/my/address_book_collection/list [get]
  55. // @Security token
  56. func (abc *AddressBookCollection) List(c *gin.Context) {
  57. query := &admin.AddressBookCollectionQuery{}
  58. if err := c.ShouldBindQuery(query); err != nil {
  59. response.Fail(c, 101, response.TranslateMsg(c, "ParamsError")+err.Error())
  60. return
  61. }
  62. u := service.AllService.UserService.CurUser(c)
  63. query.UserId = int(u.Id)
  64. res := service.AllService.AddressBookService.ListCollection(query.Page, query.PageSize, func(tx *gorm.DB) {
  65. tx.Where("user_id = ?", query.UserId)
  66. })
  67. response.Success(c, res)
  68. }
  69. // Update 编辑
  70. // @Tags 我的地址簿名称
  71. // @Summary 地址簿名称编辑
  72. // @Description 地址簿名称编辑
  73. // @Accept json
  74. // @Produce json
  75. // @Param body body model.AddressBookCollection true "地址簿名称信息"
  76. // @Success 200 {object} response.Response{data=model.AddressBookCollection}
  77. // @Failure 500 {object} response.Response
  78. // @Router /admin/my/address_book_collection/update [post]
  79. // @Security token
  80. func (abc *AddressBookCollection) Update(c *gin.Context) {
  81. f := &model.AddressBookCollection{}
  82. if err := c.ShouldBindJSON(f); err != nil {
  83. response.Fail(c, 101, response.TranslateMsg(c, "ParamsError")+err.Error())
  84. return
  85. }
  86. errList := global.Validator.ValidStruct(c, f)
  87. if len(errList) > 0 {
  88. response.Fail(c, 101, errList[0])
  89. return
  90. }
  91. if f.Id == 0 {
  92. response.Fail(c, 101, response.TranslateMsg(c, "ParamsError"))
  93. return
  94. }
  95. u := service.AllService.UserService.CurUser(c)
  96. if f.UserId != u.Id {
  97. response.Fail(c, 101, response.TranslateMsg(c, "NoAccess"))
  98. return
  99. }
  100. ex := service.AllService.AddressBookService.CollectionInfoById(f.Id)
  101. if ex.Id == 0 {
  102. response.Fail(c, 101, response.TranslateMsg(c, "ItemNotFound"))
  103. return
  104. }
  105. if ex.UserId != u.Id {
  106. response.Fail(c, 101, response.TranslateMsg(c, "NoAccess"))
  107. return
  108. }
  109. err := service.AllService.AddressBookService.UpdateCollection(f)
  110. if err != nil {
  111. response.Fail(c, 101, response.TranslateMsg(c, "OperationFailed")+err.Error())
  112. return
  113. }
  114. response.Success(c, nil)
  115. }
  116. // Delete 删除
  117. // @Tags 我的地址簿名称
  118. // @Summary 地址簿名称删除
  119. // @Description 地址簿名称删除
  120. // @Accept json
  121. // @Produce json
  122. // @Param body body model.AddressBookCollection true "地址簿名称信息"
  123. // @Success 200 {object} response.Response
  124. // @Failure 500 {object} response.Response
  125. // @Router /admin/my/address_book_collection/delete [post]
  126. // @Security token
  127. func (abc *AddressBookCollection) Delete(c *gin.Context) {
  128. f := &model.AddressBookCollection{}
  129. if err := c.ShouldBindJSON(f); err != nil {
  130. response.Fail(c, 101, response.TranslateMsg(c, "ParamsError")+err.Error())
  131. return
  132. }
  133. id := f.Id
  134. errList := global.Validator.ValidVar(c, id, "required,gt=0")
  135. if len(errList) > 0 {
  136. response.Fail(c, 101, errList[0])
  137. return
  138. }
  139. ex := service.AllService.AddressBookService.CollectionInfoById(f.Id)
  140. if ex.Id == 0 {
  141. response.Fail(c, 101, response.TranslateMsg(c, "ItemNotFound"))
  142. return
  143. }
  144. u := service.AllService.UserService.CurUser(c)
  145. if ex.UserId != u.Id {
  146. response.Fail(c, 101, response.TranslateMsg(c, "NoAccess"))
  147. return
  148. }
  149. err := service.AllService.AddressBookService.DeleteCollection(ex)
  150. if err == nil {
  151. response.Success(c, nil)
  152. return
  153. }
  154. response.Fail(c, 101, response.TranslateMsg(c, "OperationFailed")+err.Error())
  155. }