github.com/esnet/gdg@v0.6.1-0.20240412190737-6b6eba9c14d8/internal/api/extended.go (about) 1 package api 2 3 import ( 4 "crypto/tls" 5 "github.com/carlmjohnson/requests" 6 "github.com/esnet/gdg/internal/config" 7 "net/http" 8 ) 9 10 //Most of these methods are here due to limitations in existing libraries being used. 11 12 type ExtendedApi struct { 13 grafanaCfg *config.GrafanaConfig 14 } 15 16 func NewExtendedApi() *ExtendedApi { 17 cfg := config.Config().GetDefaultGrafanaConfig() 18 o := ExtendedApi{ 19 grafanaCfg: cfg, 20 } 21 return &o 22 } 23 24 func (extended *ExtendedApi) getRequestBuilder() *requests.Builder { 25 26 req := requests.URL(extended.grafanaCfg.URL) 27 if config.Config().IgnoreSSL() { 28 customTransport := http.DefaultTransport.(*http.Transport).Clone() 29 customTransport.TLSClientConfig = &tls.Config{InsecureSkipVerify: true} 30 req = req.Transport(customTransport) 31 } 32 33 if extended.grafanaCfg.APIToken != "" { 34 req.Header("Authorization", "Bearer "+extended.grafanaCfg.APIToken) 35 } else { 36 req.BasicAuth(extended.grafanaCfg.UserName, extended.grafanaCfg.Password) 37 } 38 39 return req 40 }