github.com/liamawhite/cli-with-i18n@v6.32.1-0.20171122084555-dede0a5c3448+incompatible/command/v3/shared/new_networking_client.go (about) 1 package shared 2 3 import ( 4 "code.cloudfoundry.org/cfnetworking-cli-api/cfnetworking/cfnetv1" 5 "code.cloudfoundry.org/cfnetworking-cli-api/cfnetworking/wrapper" 6 "github.com/liamawhite/cli-with-i18n/api/uaa" 7 "github.com/liamawhite/cli-with-i18n/command" 8 "github.com/liamawhite/cli-with-i18n/command/translatableerror" 9 ) 10 11 // NewNetworkingClient creates a new cfnetworking client. 12 func NewNetworkingClient(apiURL string, config command.Config, uaaClient *uaa.Client, ui command.UI) (*cfnetv1.Client, error) { 13 if apiURL == "" { 14 return nil, translatableerror.CFNetworkingEndpointNotFoundError{} 15 } 16 17 wrappers := []cfnetv1.ConnectionWrapper{} 18 19 verbose, location := config.Verbose() 20 if verbose { 21 wrappers = append(wrappers, wrapper.NewRequestLogger(ui.RequestLoggerTerminalDisplay())) 22 } 23 if location != nil { 24 wrappers = append(wrappers, wrapper.NewRequestLogger(ui.RequestLoggerFileWriter(location))) 25 } 26 27 authWrapper := wrapper.NewUAAAuthentication(uaaClient, config) 28 wrappers = append(wrappers, authWrapper) 29 30 wrappers = append(wrappers, wrapper.NewRetryRequest(2)) 31 32 return cfnetv1.NewClient(cfnetv1.Config{ 33 AppName: config.BinaryName(), 34 AppVersion: config.BinaryVersion(), 35 DialTimeout: config.DialTimeout(), 36 SkipSSLValidation: config.SkipSSLValidation(), 37 URL: apiURL, 38 Wrappers: wrappers, 39 }), nil 40 }