Files
gochat/internal/handler/api/v1/chatwoot_payload.go
T

28 lines
502 B
Go

package v1
import (
"encoding/json"
"fmt"
"github.com/gin-gonic/gin"
)
func bindChatwootPayload(c *gin.Context, wrapperKey string, target interface{}) error {
raw, err := c.GetRawData()
if err != nil {
return err
}
if len(raw) == 0 {
return fmt.Errorf("request body required")
}
var envelope map[string]json.RawMessage
if err := json.Unmarshal(raw, &envelope); err == nil {
if wrapped, ok := envelope[wrapperKey]; ok {
raw = wrapped
}
}
return json.Unmarshal(raw, target)
}