ota.go 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. package controllers
  2. import (
  3. "github.com/kataras/iris/v12"
  4. "sparrow/pkg/models"
  5. "sparrow/services/knowoapi/services"
  6. )
  7. // OtaController api
  8. type OtaController struct {
  9. Ctx iris.Context
  10. Service services.OtaService
  11. Token Token
  12. }
  13. // Post post
  14. // POST /ota
  15. func (a *OtaController) Post() {
  16. ptl := new(models.Ota)
  17. if err := parseBody(a.Ctx, ptl); err != nil {
  18. badRequest(a.Ctx, err)
  19. return
  20. }
  21. ptl.VendorId = a.Token.getVendorID(a.Ctx)
  22. err := a.Service.Create(ptl)
  23. if err != nil {
  24. responseError(a.Ctx, ErrDatabase, err.Error())
  25. return
  26. }
  27. done(a.Ctx, ptl)
  28. }
  29. // Delete delete
  30. // DELETE /user/ota
  31. func (a *OtaController) Delete() {
  32. Ota := new(models.Ota)
  33. if err := parseBody(a.Ctx, Ota); err != nil {
  34. badRequest(a.Ctx, err)
  35. return
  36. }
  37. if err := a.Service.Delete(Ota); err != nil {
  38. responseError(a.Ctx, ErrDatabase, err.Error())
  39. return
  40. }
  41. done(a.Ctx, "删除成功")
  42. }
  43. // Put 更新
  44. // PUT /user/ota
  45. func (a *OtaController) Put() {
  46. params := new(models.Ota)
  47. if err := parseBody(a.Ctx, params); err != nil {
  48. badRequest(a.Ctx, err)
  49. return
  50. }
  51. if err := a.Service.Update(params); err != nil {
  52. responseError(a.Ctx, ErrDatabase, err.Error())
  53. return
  54. }
  55. done(a.Ctx, "已保存")
  56. }
  57. // Get Ota
  58. // GET /user/ota?pi=&ps=&name=&version
  59. func (a *OtaController) Get() {
  60. pi, err := a.Ctx.URLParamInt("pi")
  61. if err != nil {
  62. badRequest(a.Ctx, err)
  63. return
  64. }
  65. ps, err := a.Ctx.URLParamInt("ps")
  66. if err != nil {
  67. badRequest(a.Ctx, err)
  68. return
  69. }
  70. name := a.Ctx.URLParam("name")
  71. version := a.Ctx.URLParam("version")
  72. vendorId := a.Token.getVendorID(a.Ctx)
  73. datas, total, err := a.Service.Query(pi, ps, name, vendorId, version)
  74. if err != nil {
  75. responseError(a.Ctx, ErrDatabase, err.Error())
  76. return
  77. }
  78. done(a.Ctx, map[string]interface{}{
  79. "list": datas,
  80. "total": total,
  81. })
  82. }
  83. // PostUpgrade Ota
  84. // Post /ota/upgrade
  85. func (a *OtaController) PostUpgrade() {
  86. params := new(models.OtaUpgradeParams)
  87. if err := parseBody(a.Ctx, params); err != nil {
  88. badRequest(a.Ctx, err)
  89. return
  90. }
  91. params.VendorId = a.Token.getVendorID(a.Ctx)
  92. err := a.Service.Upgrade(*params)
  93. if err != nil {
  94. responseError(a.Ctx, ErrDatabase, err.Error())
  95. return
  96. }
  97. done(a.Ctx, "下发成功")
  98. }