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  }