mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Fix encoding dataprovider as json body for *http filter
This commit is contained in:
committed by
Dan Christian Bogos
parent
911cd1b607
commit
dfb8011a1a
@@ -244,7 +244,7 @@ func sentrypeerHasData(itemId, token, url string) (found bool, err error) {
|
||||
// expects a boolean reply
|
||||
// when element is set to *any the CGREvent is sent as JSON body
|
||||
// when the element is specified as a path e.g ~*req.Account is sent as query string pair ,the path being the key with the value extracted from dataprovider
|
||||
func filterHTTP(httpType string, dDP any, fieldname, value string) (bool, error) {
|
||||
func filterHTTP(httpType string, dDP utils.DataProvider, fieldname, value string) (bool, error) {
|
||||
var (
|
||||
parsedURL *url.URL
|
||||
resp string
|
||||
@@ -263,14 +263,9 @@ func filterHTTP(httpType string, dDP any, fieldname, value string) (bool, error)
|
||||
queryParams := parsedURL.Query()
|
||||
queryParams.Set(fieldname, value)
|
||||
parsedURL.RawQuery = queryParams.Encode()
|
||||
resp, err = externalAPI(parsedURL.String(), nil, nil)
|
||||
resp, err = externalAPI(parsedURL.String(), nil)
|
||||
} else {
|
||||
var data []byte
|
||||
data, err = json.Marshal(dDP)
|
||||
if err != nil {
|
||||
return false, fmt.Errorf("error marshaling data: %w", err)
|
||||
}
|
||||
resp, err = externalAPI(parsedURL.String(), bytes.NewReader(data), nil)
|
||||
resp, err = externalAPI(parsedURL.String(), bytes.NewReader([]byte(dDP.String())))
|
||||
}
|
||||
if err != nil {
|
||||
return false, err
|
||||
@@ -278,7 +273,10 @@ func filterHTTP(httpType string, dDP any, fieldname, value string) (bool, error)
|
||||
return utils.IfaceAsBool(resp)
|
||||
}
|
||||
|
||||
func externalAPI(url string, rdr io.Reader, hdr map[string]string) (string, error) {
|
||||
func externalAPI(url string, rdr io.Reader) (string, error) {
|
||||
hdr := map[string]string{
|
||||
"Content-Type": "application/json",
|
||||
}
|
||||
resp, err := getHTTP(http.MethodGet, url, rdr, hdr)
|
||||
if err != nil {
|
||||
return "", fmt.Errorf("error processing the request: %w", err)
|
||||
|
||||
@@ -787,7 +787,6 @@ func (fltr *FilterRule) passHttp(dDP utils.DataProvider) (bool, error) {
|
||||
}
|
||||
return false, err
|
||||
}
|
||||
|
||||
return filterHTTP(fltr.Type, dDP, fltr.Element, strVal)
|
||||
|
||||
}
|
||||
|
||||
@@ -20,7 +20,6 @@ package engine
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"sort"
|
||||
"strings"
|
||||
@@ -176,9 +175,5 @@ func externalAttributeAPI(httpType string, dDP utils.DataProvider) (string, erro
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
data, err := json.Marshal(dDP)
|
||||
if err != nil {
|
||||
return "", fmt.Errorf("error marshaling data: %w", err)
|
||||
}
|
||||
return externalAPI(urlS, bytes.NewReader(data), nil)
|
||||
return externalAPI(urlS, bytes.NewReader([]byte(dDP.String())))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user