sensor.go 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. package controllers
  2. import (
  3. "github.com/kataras/iris"
  4. "sparrow/pkg/models"
  5. "sparrow/services/knowoapi/services"
  6. )
  7. // SensorController api
  8. type SensorController struct {
  9. Ctx iris.Context
  10. Service services.SensorService
  11. Token Token
  12. }
  13. // Post 创建
  14. // POST /Sensor
  15. func (a *SensorController) Post() {
  16. ptl := new(models.Sensor)
  17. if err := parseBody(a.Ctx, ptl); err != nil {
  18. badRequest(a.Ctx, err)
  19. return
  20. }
  21. err := a.Service.Create(ptl)
  22. if err != nil {
  23. responseError(a.Ctx, ErrDatabase, err.Error())
  24. return
  25. }
  26. done(a.Ctx, ptl)
  27. }
  28. // Delete 删除
  29. // DELETE /sensor
  30. func (a *SensorController) Delete() {
  31. ptl := new(models.Sensor)
  32. if err := parseBody(a.Ctx, ptl); err != nil {
  33. badRequest(a.Ctx, err)
  34. return
  35. }
  36. err := a.Service.Delete(ptl)
  37. if err != nil {
  38. responseError(a.Ctx, ErrDatabase, err.Error())
  39. return
  40. }
  41. done(a.Ctx, "删除成功")
  42. }
  43. // Put 更新
  44. // PUT /sensor
  45. func (a *SensorController) Put() {
  46. ptl := new(models.Sensor)
  47. if err := parseBody(a.Ctx, ptl); err != nil {
  48. badRequest(a.Ctx, err)
  49. return
  50. }
  51. p, err := a.Service.Update(ptl)
  52. if err != nil {
  53. responseError(a.Ctx, ErrDatabase, err.Error())
  54. return
  55. }
  56. done(a.Ctx, p)
  57. }
  58. // GetBy 根据id查询协议的内容
  59. // GET /sensor/{pid}
  60. func (a *SensorController) GetBy(pid int) {
  61. p, err := a.Service.GetSensorInfo(uint(pid))
  62. if err != nil {
  63. responseError(a.Ctx, ErrDatabase, err.Error())
  64. return
  65. }
  66. done(a.Ctx, p)
  67. }
  68. // Get 获取某个产品的协议列表
  69. // GET /sensor?proid=1&pi&ps&name&label
  70. func (a *SensorController) Get() {
  71. pi, err := a.Ctx.URLParamInt("pi")
  72. if err != nil {
  73. badRequest(a.Ctx, err)
  74. return
  75. }
  76. ps, err := a.Ctx.URLParamInt("ps")
  77. if err != nil {
  78. badRequest(a.Ctx, err)
  79. return
  80. }
  81. proid, err := a.Ctx.URLParamInt("proid")
  82. name := a.Ctx.URLParam("name")
  83. label := a.Ctx.URLParam("label")
  84. ds, total, err := a.Service.GetProductSensors(uint(proid), pi, ps, name, label)
  85. if err != nil {
  86. responseError(a.Ctx, ErrDatabase, err.Error())
  87. return
  88. }
  89. done(a.Ctx, map[string]interface{}{
  90. "list": ds,
  91. "total": total,
  92. })
  93. }