Add util function
diff --git a/util/util.go b/util/util.go index ad10100..804d5bd 100644 --- a/util/util.go +++ b/util/util.go
@@ -14,10 +14,25 @@ package util + import ( "github.com/google/uuid" + "net/http" + "net/url" + "github.com/apid/apid-core" ) +const ( + configfwdProxyURL = "configfwdProxyURL" + configfwdProxyUser = "configfwdProxyUser" + configfwdProxyPasswd = "configfwdProxyPasswd" + configfwdProxyProtocol = "configfwdProxyProtocol" + configfwdProxyPort = "configfwdProxyPort" +) + +var config apid.ConfigService + + func IsValidUUID(id string) bool { _, err := uuid.Parse(id) return err == nil @@ -26,3 +41,38 @@ func GenerateUUID() string { return uuid.New().String() } + +func Transport() *http.Transport { + var tr http.Transport + var pURL *url.URL + var err error + // Apigee Forward Proxy + fwdPrxy := config.GetString(configfwdProxyURL) + fwdPrxyPro := config.GetString(configfwdProxyProtocol) + fwdPrxyUser := config.GetString(configfwdProxyUser) + fwdPrxyPass := config.GetString(configfwdProxyPasswd) + fwdPrxyPort := config.GetString(configfwdProxyPort) + + if fwdPrxy != "" && fwdPrxyPro != "" && fwdPrxyUser != "" && fwdPrxyPort != "" { + pURL, err = url.Parse(fwdPrxyPro + "//" + fwdPrxyUser + ":" + fwdPrxyPass + "@" + fwdPrxy + ":" + fwdPrxyPort) + if err != nil { + panic("Error parsing proxy URL") + } + } else if fwdPrxy != "" && fwdPrxyPro != "" && fwdPrxyPort != "" { + pURL, err = url.Parse(fwdPrxyPro + "//" + fwdPrxy + ":" + fwdPrxyPort) + if err != nil { + panic("Error parsing proxy URL") + } + } + + if pURL != nil { + tr = http.Transport{ + Proxy: http.ProxyURL(pURL), + } + } else { + tr = http.Transport{ + } + } + return &tr +} +