|
@@ -0,0 +1,102 @@
|
|
|
+package controllers
|
|
|
+
|
|
|
+import (
|
|
|
+ "github.com/kataras/iris"
|
|
|
+ "sparrow/pkg/models"
|
|
|
+ "sparrow/services/knowoapi/services"
|
|
|
+)
|
|
|
+
|
|
|
+// SensorController api
|
|
|
+type SensorController struct {
|
|
|
+ Ctx iris.Context
|
|
|
+ Service services.SensorService
|
|
|
+ Token Token
|
|
|
+}
|
|
|
+
|
|
|
+// Post 创建
|
|
|
+// POST /Sensor
|
|
|
+func (a *SensorController) Post() {
|
|
|
+ ptl := new(models.Sensor)
|
|
|
+ if err := parseBody(a.Ctx, ptl); err != nil {
|
|
|
+ badRequest(a.Ctx, err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ err := a.Service.Create(ptl)
|
|
|
+ if err != nil {
|
|
|
+ responseError(a.Ctx, ErrDatabase, err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ done(a.Ctx, ptl)
|
|
|
+}
|
|
|
+
|
|
|
+// Delete 删除
|
|
|
+// DELETE /sensor
|
|
|
+func (a *SensorController) Delete() {
|
|
|
+ ptl := new(models.Sensor)
|
|
|
+ if err := parseBody(a.Ctx, ptl); err != nil {
|
|
|
+ badRequest(a.Ctx, err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ err := a.Service.Delete(ptl)
|
|
|
+ if err != nil {
|
|
|
+ responseError(a.Ctx, ErrDatabase, err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ done(a.Ctx, "删除成功")
|
|
|
+}
|
|
|
+
|
|
|
+// Put 更新
|
|
|
+// PUT /sensor
|
|
|
+func (a *SensorController) Put() {
|
|
|
+ ptl := new(models.Sensor)
|
|
|
+ if err := parseBody(a.Ctx, ptl); err != nil {
|
|
|
+ badRequest(a.Ctx, err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ p, err := a.Service.Update(ptl)
|
|
|
+ if err != nil {
|
|
|
+ responseError(a.Ctx, ErrDatabase, err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ done(a.Ctx, p)
|
|
|
+}
|
|
|
+
|
|
|
+// GetBy 根据id查询协议的内容
|
|
|
+// GET /sensor/{pid}
|
|
|
+func (a *SensorController) GetBy(pid int) {
|
|
|
+ p, err := a.Service.GetSensorInfo(uint(pid))
|
|
|
+ if err != nil {
|
|
|
+ responseError(a.Ctx, ErrDatabase, err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ done(a.Ctx, p)
|
|
|
+}
|
|
|
+
|
|
|
+// Get 获取某个产品的协议列表
|
|
|
+// GET /sensor?proid=1&pi&ps&name&label
|
|
|
+func (a *SensorController) Get() {
|
|
|
+ pi, err := a.Ctx.URLParamInt("pi")
|
|
|
+ if err != nil {
|
|
|
+ badRequest(a.Ctx, err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ ps, err := a.Ctx.URLParamInt("ps")
|
|
|
+ if err != nil {
|
|
|
+ badRequest(a.Ctx, err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ proid, err := a.Ctx.URLParamInt("proid")
|
|
|
+ name := a.Ctx.URLParam("name")
|
|
|
+ label := a.Ctx.URLParam("label")
|
|
|
+
|
|
|
+ ds, total, err := a.Service.GetProductSensors(uint(proid), pi, ps, name, label)
|
|
|
+ if err != nil {
|
|
|
+ responseError(a.Ctx, ErrDatabase, err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ done(a.Ctx, map[string]interface{}{
|
|
|
+ "list": ds,
|
|
|
+ "total": total,
|
|
|
+ })
|
|
|
+}
|