From 5e846c792d80a4b70eb2734d91bc5b4b6236abc9 Mon Sep 17 00:00:00 2001 From: gezimbll Date: Fri, 14 Jul 2023 11:19:43 -0400 Subject: [PATCH] Fixed naming of configs --- config/config_defaults.go | 4 ++-- config/libconfig_json.go | 4 ++-- config/sentrypeer.go | 20 ++++++++++---------- engine/filterhelpers.go | 30 +++++++++++++++++------------- 4 files changed, 31 insertions(+), 27 deletions(-) diff --git a/config/config_defaults.go b/config/config_defaults.go index 3f5dff186..acd8c3296 100644 --- a/config/config_defaults.go +++ b/config/config_defaults.go @@ -1271,8 +1271,8 @@ const CGRATES_CFG_JSON = ` "client_id":"", "client_secret":"", "token_url":"https://authz.sentrypeer.com/oauth/token", - "ip_url":"https://sentrypeer.com/api/ip-addresses", - "number_url":"https://sentrypeer.com/api/phone-numbers", + "ips_url":"https://sentrypeer.com/api/ip-addresses", + "numbers_url":"https://sentrypeer.com/api/phone-numbers", "audience":"https://sentrypeer.com/api", "grant_type":"client_credentials", }, diff --git a/config/libconfig_json.go b/config/libconfig_json.go index a4d4ef8be..ad06a5161 100644 --- a/config/libconfig_json.go +++ b/config/libconfig_json.go @@ -880,8 +880,8 @@ type SentryPeerJsonCfg struct { ClientID *string `json:"client_id"` ClientSecret *string `json:"client_secret"` TokenUrl *string `json:"token_url"` - IpUrl *string `json:"ip_url"` - NumberUrl *string `json:"number_url"` + IpsUrl *string `json:"ips_url"` + NumbersUrl *string `json:"numbers_url"` Audience *string `json:"audience"` GrantType *string `json:"grant_type"` } diff --git a/config/sentrypeer.go b/config/sentrypeer.go index 80c9f0a2c..3bd52c659 100644 --- a/config/sentrypeer.go +++ b/config/sentrypeer.go @@ -22,8 +22,8 @@ type SentryPeerCfg struct { ClientID string ClientSecret string TokenUrl string - IpUrl string - NumberUrl string + IpsUrl string + NumbersUrl string Audience string GrantType string } @@ -35,11 +35,11 @@ func (sp *SentryPeerCfg) loadFromJSONCfg(jsnCfg *SentryPeerJsonCfg) (err error) if jsnCfg.TokenUrl != nil { sp.TokenUrl = *jsnCfg.TokenUrl } - if jsnCfg.IpUrl != nil { - sp.IpUrl = *jsnCfg.IpUrl + if jsnCfg.IpsUrl != nil { + sp.IpsUrl = *jsnCfg.IpsUrl } - if jsnCfg.NumberUrl != nil { - sp.NumberUrl = *jsnCfg.NumberUrl + if jsnCfg.NumbersUrl != nil { + sp.NumbersUrl = *jsnCfg.NumbersUrl } if jsnCfg.ClientSecret != nil { sp.ClientSecret = *jsnCfg.ClientSecret @@ -61,8 +61,8 @@ func (sp *SentryPeerCfg) AsMapInterface() map[string]any { "TokenURL": sp.TokenUrl, "ClientSecret": sp.ClientSecret, "ClientID": sp.ClientID, - "IpUrl": sp.IpUrl, - "NumberUrl": sp.NumberUrl, + "IpUrl": sp.IpsUrl, + "NumberUrl": sp.NumbersUrl, "Audience": sp.Audience, "GrantType": sp.GrantType, } @@ -73,8 +73,8 @@ func (sp *SentryPeerCfg) Clone() (cln *SentryPeerCfg) { TokenUrl: sp.TokenUrl, ClientSecret: sp.ClientSecret, ClientID: sp.ClientID, - IpUrl: sp.IpUrl, - NumberUrl: sp.NumberUrl, + IpsUrl: sp.IpsUrl, + NumbersUrl: sp.NumbersUrl, Audience: sp.Audience, GrantType: sp.GrantType, } diff --git a/engine/filterhelpers.go b/engine/filterhelpers.go index 8b369373c..71af9f397 100644 --- a/engine/filterhelpers.go +++ b/engine/filterhelpers.go @@ -24,6 +24,7 @@ import ( "fmt" "io" "net/http" + "net/url" "github.com/cgrates/cgrates/config" "github.com/cgrates/cgrates/guardian" @@ -123,7 +124,7 @@ func WeightFromDynamics(dWs []*utils.DynamicWeight, } return 0.0, nil } -func getToken(tokenUrl, clientID, clientSecret, audience, grantType string) (token string, err error) { +func sentrypeerGetToken(tokenUrl, clientID, clientSecret, audience, grantType string) (token string, err error) { var resp *http.Response payload := map[string]string{ "client_id": clientID, @@ -147,11 +148,11 @@ func getToken(tokenUrl, clientID, clientSecret, audience, grantType string) (tok token = m.AccessToken return } -func GetSentryPeer(val string, sentryPeerCfg *config.SentryPeerCfg, path string) (found bool, err error) { - itemId := utils.ConcatenatedKey(path, val) +func GetSentryPeer(val string, sentryPeerCfg *config.SentryPeerCfg, dataType string) (found bool, err error) { + itemId := utils.ConcatenatedKey(dataType, val) var ( isCached bool - url string + apiUrl string token string ) if x, ok := Cache.Get(utils.MetaSentryPeer, itemId); ok && x != nil { // Attempt to find in cache first @@ -162,14 +163,17 @@ func GetSentryPeer(val string, sentryPeerCfg *config.SentryPeerCfg, path string) utils.MetaToken); isCached && cachedToken != nil { token = cachedToken.(string) } - switch path { + switch dataType { case utils.MetaIp: - url = sentryPeerCfg.IpUrl + "/" + val + apiUrl, err = url.JoinPath(sentryPeerCfg.IpsUrl, val) case utils.MetaNumber: - url = sentryPeerCfg.NumberUrl + "/" + val + apiUrl, err = url.JoinPath(sentryPeerCfg.NumbersUrl, val) + } + if err != nil { + return } if !isCached { - if token, err = getToken(sentryPeerCfg.TokenUrl, sentryPeerCfg.ClientID, sentryPeerCfg.ClientSecret, + if token, err = sentrypeerGetToken(sentryPeerCfg.TokenUrl, sentryPeerCfg.ClientID, sentryPeerCfg.ClientSecret, sentryPeerCfg.Audience, sentryPeerCfg.GrantType); err != nil { return } @@ -180,7 +184,7 @@ func GetSentryPeer(val string, sentryPeerCfg *config.SentryPeerCfg, path string) } for i := 0; i < 2; i++ { - if found, err = hasData(itemId, token, url); err == nil { + if found, err = sentrypeerHasData(itemId, token, apiUrl); err == nil { if err = Cache.Set(utils.MetaSentryPeer, itemId, found, nil, true, utils.NonTransactional); err != nil { return @@ -190,7 +194,7 @@ func GetSentryPeer(val string, sentryPeerCfg *config.SentryPeerCfg, path string) break } Cache.Remove(utils.MetaSentryPeer, utils.MetaToken, true, utils.EmptyString) - if token, err = getToken(sentryPeerCfg.TokenUrl, sentryPeerCfg.ClientID, sentryPeerCfg.ClientSecret, + if token, err = sentrypeerGetToken(sentryPeerCfg.TokenUrl, sentryPeerCfg.ClientID, sentryPeerCfg.ClientSecret, sentryPeerCfg.Audience, sentryPeerCfg.GrantType); err != nil { return } @@ -202,7 +206,7 @@ func GetSentryPeer(val string, sentryPeerCfg *config.SentryPeerCfg, path string) return } -func hasData(itemId, token, url string) (found bool, err error) { +func sentrypeerHasData(itemId, token, url string) (found bool, err error) { var resp *http.Response resp, err = getHTTP("GET", url, nil, map[string][]string{"Authorization": {fmt.Sprintf("Bearer %v", token)}}) if err != nil { @@ -219,9 +223,9 @@ func hasData(itemId, token, url string) (found bool, err error) { case resp.StatusCode >= http.StatusBadRequest && resp.StatusCode < http.StatusInternalServerError: err = fmt.Errorf("sentrypeer api got client err <%v>", resp.Status) case resp.StatusCode >= http.StatusInternalServerError: - err = fmt.Errorf("sentrypeer api got server error<%s>", resp.Status) + err = fmt.Errorf("sentrypeer api got server err <%s>", resp.Status) default: - err = fmt.Errorf("sentrypeer api got unexpected status code<%s>", resp.Status) + err = fmt.Errorf("sentrypeer api got unexpected err <%s>", resp.Status) } utils.Logger.Warning(err.Error()) return false, err