// +build go1.13 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See License.txt in the project root for license information. // Code generated by Microsoft (R) AutoRest Code Generator. // Changes may cause incorrect behavior and will be lost if the code is regenerated. package azartifacts import ( "context" "errors" "github.com/Azure/azure-sdk-for-go/sdk/azcore" "net/http" ) // WorkspaceGitRepoManagementClient contains the methods for the WorkspaceGitRepoManagement group. // Don't use this type directly, use NewWorkspaceGitRepoManagementClient() instead. type WorkspaceGitRepoManagementClient struct { con *Connection } // NewWorkspaceGitRepoManagementClient creates a new instance of WorkspaceGitRepoManagementClient with the specified values. func NewWorkspaceGitRepoManagementClient(con *Connection) *WorkspaceGitRepoManagementClient { return &WorkspaceGitRepoManagementClient{con: con} } // GetGitHubAccessToken - Get the GitHub access token. // If the operation fails it returns a generic error. func (client *WorkspaceGitRepoManagementClient) GetGitHubAccessToken(ctx context.Context, gitHubAccessTokenRequest GitHubAccessTokenRequest, options *WorkspaceGitRepoManagementGetGitHubAccessTokenOptions) (GitHubAccessTokenResponseResponse, error) { req, err := client.getGitHubAccessTokenCreateRequest(ctx, gitHubAccessTokenRequest, options) if err != nil { return GitHubAccessTokenResponseResponse{}, err } resp, err := client.con.Pipeline().Do(req) if err != nil { return GitHubAccessTokenResponseResponse{}, err } if !resp.HasStatusCode(http.StatusOK) { return GitHubAccessTokenResponseResponse{}, client.getGitHubAccessTokenHandleError(resp) } return client.getGitHubAccessTokenHandleResponse(resp) } // getGitHubAccessTokenCreateRequest creates the GetGitHubAccessToken request. func (client *WorkspaceGitRepoManagementClient) getGitHubAccessTokenCreateRequest(ctx context.Context, gitHubAccessTokenRequest GitHubAccessTokenRequest, options *WorkspaceGitRepoManagementGetGitHubAccessTokenOptions) (*azcore.Request, error) { urlPath := "/getGitHubAccessToken" req, err := azcore.NewRequest(ctx, http.MethodPost, azcore.JoinPaths(client.con.Endpoint(), urlPath)) if err != nil { return nil, err } req.Telemetry(telemetryInfo) reqQP := req.URL.Query() reqQP.Set("api-version", "2019-06-01-preview") req.URL.RawQuery = reqQP.Encode() if options != nil && options.ClientRequestID != nil { req.Header.Set("x-ms-client-request-id", *options.ClientRequestID) } req.Header.Set("Accept", "application/json") return req, req.MarshalAsJSON(gitHubAccessTokenRequest) } // getGitHubAccessTokenHandleResponse handles the GetGitHubAccessToken response. func (client *WorkspaceGitRepoManagementClient) getGitHubAccessTokenHandleResponse(resp *azcore.Response) (GitHubAccessTokenResponseResponse, error) { var val *GitHubAccessTokenResponse if err := resp.UnmarshalAsJSON(&val); err != nil { return GitHubAccessTokenResponseResponse{}, err } return GitHubAccessTokenResponseResponse{RawResponse: resp.Response, GitHubAccessTokenResponse: val}, nil } // getGitHubAccessTokenHandleError handles the GetGitHubAccessToken error response. func (client *WorkspaceGitRepoManagementClient) getGitHubAccessTokenHandleError(resp *azcore.Response) error { body, err := resp.Payload() if err != nil { return azcore.NewResponseError(err, resp.Response) } if len(body) == 0 { return azcore.NewResponseError(errors.New(resp.Status), resp.Response) } return azcore.NewResponseError(errors.New(string(body)), resp.Response) }