github.com/axw/juju@v0.0.0-20161005053422-4bd6544d08d4/provider/azure/internal/ad/users.go (about) 1 // This file is based on code from Azure/azure-sdk-for-go, 2 // which is Copyright Microsoft Corporation. See the LICENSE 3 // file in this directory for details. 4 // 5 // NOTE(axw) this file contains a client for a subset of the 6 // Microsoft Graph API, which is not currently supported by 7 // the Azure SDK. When it is, this will be deleted. 8 9 package ad 10 11 import ( 12 "net/http" 13 14 "github.com/Azure/go-autorest/autorest" 15 ) 16 17 type UsersClient struct { 18 ManagementClient 19 } 20 21 func (client UsersClient) GetCurrentUser() (result AADObject, err error) { 22 req, err := client.GetCurrentUserPreparer() 23 if err != nil { 24 return result, autorest.NewErrorWithError(err, "ad.UsersClient", "GetCurrentUser", nil, "Failure preparing request") 25 } 26 27 resp, err := client.GetCurrentUserSender(req) 28 if err != nil { 29 result.Response = autorest.Response{Response: resp} 30 return result, autorest.NewErrorWithError(err, "ad.UsersClient", "GetCurrentUser", nil, "Failure sending request") 31 } 32 33 result, err = client.GetCurrentUserResponder(resp) 34 if err != nil { 35 err = autorest.NewErrorWithError(err, "ad.UsersClient", "GetCurrentUser", nil, "Failure responding to request") 36 } 37 38 return 39 } 40 41 func (client UsersClient) GetCurrentUserPreparer() (*http.Request, error) { 42 queryParameters := map[string]interface{}{ 43 "api-version": client.APIVersion, 44 } 45 46 preparer := autorest.CreatePreparer( 47 autorest.AsGet(), 48 autorest.WithBaseURL(client.BaseURI), 49 autorest.WithPath("/me"), 50 autorest.WithQueryParameters(queryParameters)) 51 return preparer.Prepare(&http.Request{}) 52 } 53 54 func (client UsersClient) GetCurrentUserSender(req *http.Request) (*http.Response, error) { 55 return autorest.SendWithSender(client, req) 56 } 57 58 func (client UsersClient) GetCurrentUserResponder(resp *http.Response) (result AADObject, err error) { 59 err = autorest.Respond( 60 resp, 61 client.ByInspecting(), 62 WithOdataErrorUnlessStatusCode(http.StatusOK), 63 autorest.ByUnmarshallingJSON(&result), 64 autorest.ByClosing()) 65 result.Response = autorest.Response{Response: resp} 66 return 67 }