package dbm import ( "net/http" "github.com/gin-gonic/gin" json_data "github.com/tecamino/tecamino-json_data" json_dataModels "github.com/tecamino/tecamino-json_data/models" ) func (d *DBMHandler) Json_Data(c *gin.Context) { var err error payload, err := json_data.ParseRequest(c.Request.Body) if err != nil { r := json_data.NewResponse() r.SetError() r.SetMessage(err.Error()) c.JSON(http.StatusBadRequest, r) return } respond := json_dataModels.NewResponse() if payload.Get != nil { var depth uint = 1 for _, get := range payload.Get { if get.Query != nil { depth = get.Query.Depth } for _, res := range d.DBM.QueryDatapoints(depth, get.Uuid, get.Path) { respond.AddGet(json_dataModels.Get{ Uuid: res.Uuid, Path: res.Path, Type: res.Type, Value: res.Value, Rights: res.ReadWrite, Drivers: &res.Drivers, }) } } } if payload.Set != nil { respond.Set, err = d.DBM.CreateDatapoints(payload.Set...) if err != nil { r := json_data.NewResponse() r.SetError() r.SetMessage(err.Error()) c.JSON(http.StatusBadRequest, r) return } } c.JSON(200, respond) } func (d *DBMHandler) Delete(c *gin.Context) { var err error payload, err := json_data.ParseRequest(c.Request.Body) if err != nil { r := json_data.NewResponse() r.SetError() r.SetMessage(err.Error()) c.JSON(http.StatusBadRequest, r) return } response := json_data.NewResponse() if payload.Set != nil { response.Set, err = d.DBM.RemoveDatapoint(payload.Set...) if err != nil { r := json_data.NewResponse() r.SetError() r.SetMessage(err.Error()) c.JSON(http.StatusBadRequest, r) return } } c.JSON(200, response) }