request.go 736 B

1234567891011121314151617181920212223242526272829
  1. package request
  2. import (
  3. "encoding/json"
  4. "git.sxidc.com/go-tools/api_binding/mqtt_binding/mqtt_client"
  5. "git.sxidc.com/go-tools/api_binding/mqtt_binding/mqtt_client/router"
  6. "git.sxidc.com/go-tools/api_binding/mqtt_binding/response"
  7. validator "github.com/go-playground/validator/v10"
  8. )
  9. var validate = validator.New(validator.WithRequiredStructEnabled())
  10. func BindingJson[O any](c *mqtt_client.MqttClient, item *router.Item, request any, sendFunc response.SendFunc[O]) bool {
  11. err := json.Unmarshal(item.GetData(), request)
  12. if err != nil {
  13. var zero O
  14. sendFunc(c, item, zero, err)
  15. return false
  16. }
  17. err = validate.Struct(request)
  18. if err != nil {
  19. var zero O
  20. sendFunc(c, item, zero, err)
  21. return false
  22. }
  23. return true
  24. }