| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- package request
- import (
- "encoding/json"
- "git.sxidc.com/go-tools/api_binding/mqtt_binding/mqtt_client"
- "git.sxidc.com/go-tools/api_binding/mqtt_binding/mqtt_client/router"
- "git.sxidc.com/go-tools/api_binding/mqtt_binding/response"
- "github.com/go-playground/validator/v10"
- )
- type CallerIdentifierRequest struct {
- CallerIdentifier string `json:"callerIdentifier" validate:"required"`
- }
- func (req *CallerIdentifierRequest) Identifier() string {
- return req.CallerIdentifier
- }
- var validate = validator.New(validator.WithRequiredStructEnabled())
- func BindingJson[O any](c *mqtt_client.MqttClient, item *router.Item, request any,
- responseIdentifier response.Identifier, sendFunc response.SendFunc[O]) bool {
- data := item.GetData()
- if data != nil && len(data) != 0 {
- if responseIdentifier != nil {
- err := json.Unmarshal(data, responseIdentifier)
- if err != nil {
- panic(err)
- }
- }
- if request != nil {
- err := json.Unmarshal(data, request)
- if err != nil {
- var zero O
- sendFunc(c, item, responseIdentifier, zero, err)
- return false
- }
- }
- }
- if request != nil {
- err := validate.Struct(request)
- if err != nil {
- var zero O
- sendFunc(c, item, responseIdentifier, zero, err)
- return false
- }
- }
- return true
- }
|