github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/resource/resourceadapters/apiclient.go (about) 1 // Copyright 2016 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package resourceadapters 5 6 import ( 7 "github.com/juju/errors" 8 9 "github.com/juju/juju/api/base" 10 "github.com/juju/juju/resource" 11 "github.com/juju/juju/resource/api/client" 12 ) 13 14 // NewAPIClient is mostly a copy of the newClient code in 15 // component/all/resources.go. It lives here because it simplifies this code 16 // immensely. 17 func NewAPIClient(apiCaller base.APICallCloser) (*client.Client, error) { 18 caller := base.NewFacadeCallerForVersion(apiCaller, resource.FacadeName, 1) 19 20 httpClient, err := apiCaller.HTTPClient() 21 if err != nil { 22 return nil, errors.Trace(err) 23 } 24 // The apiCaller takes care of prepending /environment/<modelUUID>. 25 apiClient := client.NewClient(caller, httpClient, apiCaller) 26 return apiClient, nil 27 }