github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/api/backups/client.go (about) 1 // Copyright 2014 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package backups 5 6 import ( 7 "github.com/juju/errors" 8 "github.com/juju/httprequest" 9 "github.com/juju/loggo" 10 11 "github.com/juju/juju/api/base" 12 ) 13 14 var logger = loggo.GetLogger("juju.api.backups") 15 16 // Client wraps the backups API for the client. 17 type Client struct { 18 base.ClientFacade 19 facade base.FacadeCaller 20 client *httprequest.Client 21 } 22 23 // MakeClient is a direct constructor function for a backups client. 24 func MakeClient(frontend base.ClientFacade, backend base.FacadeCaller, client *httprequest.Client) *Client { 25 return &Client{ 26 ClientFacade: frontend, 27 facade: backend, 28 client: client, 29 } 30 } 31 32 // NewClient returns a new backups API client. 33 func NewClient(st base.APICallCloser) (*Client, error) { 34 frontend, backend := base.NewClientFacade(st, "Backups") 35 client, err := st.HTTPClient() 36 if err != nil { 37 return nil, errors.Trace(err) 38 } 39 return MakeClient(frontend, backend, client), nil 40 }