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
+}
+