1// +build go1.13 2 3// Copyright (c) Microsoft Corporation. All rights reserved. 4// Licensed under the MIT License. See License.txt in the project root for license information. 5// Code generated by Microsoft (R) AutoRest Code Generator. 6// Changes may cause incorrect behavior and will be lost if the code is regenerated. 7 8package azartifacts 9 10import ( 11 "context" 12 "errors" 13 "github.com/Azure/azure-sdk-for-go/sdk/azcore" 14 "net/http" 15) 16 17// WorkspaceGitRepoManagementClient contains the methods for the WorkspaceGitRepoManagement group. 18// Don't use this type directly, use NewWorkspaceGitRepoManagementClient() instead. 19type WorkspaceGitRepoManagementClient struct { 20 con *Connection 21} 22 23// NewWorkspaceGitRepoManagementClient creates a new instance of WorkspaceGitRepoManagementClient with the specified values. 24func NewWorkspaceGitRepoManagementClient(con *Connection) *WorkspaceGitRepoManagementClient { 25 return &WorkspaceGitRepoManagementClient{con: con} 26} 27 28// GetGitHubAccessToken - Get the GitHub access token. 29// If the operation fails it returns a generic error. 30func (client *WorkspaceGitRepoManagementClient) GetGitHubAccessToken(ctx context.Context, gitHubAccessTokenRequest GitHubAccessTokenRequest, options *WorkspaceGitRepoManagementGetGitHubAccessTokenOptions) (GitHubAccessTokenResponseResponse, error) { 31 req, err := client.getGitHubAccessTokenCreateRequest(ctx, gitHubAccessTokenRequest, options) 32 if err != nil { 33 return GitHubAccessTokenResponseResponse{}, err 34 } 35 resp, err := client.con.Pipeline().Do(req) 36 if err != nil { 37 return GitHubAccessTokenResponseResponse{}, err 38 } 39 if !resp.HasStatusCode(http.StatusOK) { 40 return GitHubAccessTokenResponseResponse{}, client.getGitHubAccessTokenHandleError(resp) 41 } 42 return client.getGitHubAccessTokenHandleResponse(resp) 43} 44 45// getGitHubAccessTokenCreateRequest creates the GetGitHubAccessToken request. 46func (client *WorkspaceGitRepoManagementClient) getGitHubAccessTokenCreateRequest(ctx context.Context, gitHubAccessTokenRequest GitHubAccessTokenRequest, options *WorkspaceGitRepoManagementGetGitHubAccessTokenOptions) (*azcore.Request, error) { 47 urlPath := "/getGitHubAccessToken" 48 req, err := azcore.NewRequest(ctx, http.MethodPost, azcore.JoinPaths(client.con.Endpoint(), urlPath)) 49 if err != nil { 50 return nil, err 51 } 52 req.Telemetry(telemetryInfo) 53 reqQP := req.URL.Query() 54 reqQP.Set("api-version", "2019-06-01-preview") 55 req.URL.RawQuery = reqQP.Encode() 56 if options != nil && options.ClientRequestID != nil { 57 req.Header.Set("x-ms-client-request-id", *options.ClientRequestID) 58 } 59 req.Header.Set("Accept", "application/json") 60 return req, req.MarshalAsJSON(gitHubAccessTokenRequest) 61} 62 63// getGitHubAccessTokenHandleResponse handles the GetGitHubAccessToken response. 64func (client *WorkspaceGitRepoManagementClient) getGitHubAccessTokenHandleResponse(resp *azcore.Response) (GitHubAccessTokenResponseResponse, error) { 65 var val *GitHubAccessTokenResponse 66 if err := resp.UnmarshalAsJSON(&val); err != nil { 67 return GitHubAccessTokenResponseResponse{}, err 68 } 69 return GitHubAccessTokenResponseResponse{RawResponse: resp.Response, GitHubAccessTokenResponse: val}, nil 70} 71 72// getGitHubAccessTokenHandleError handles the GetGitHubAccessToken error response. 73func (client *WorkspaceGitRepoManagementClient) getGitHubAccessTokenHandleError(resp *azcore.Response) error { 74 body, err := resp.Payload() 75 if err != nil { 76 return azcore.NewResponseError(err, resp.Response) 77 } 78 if len(body) == 0 { 79 return azcore.NewResponseError(errors.New(resp.Status), resp.Response) 80 } 81 return azcore.NewResponseError(errors.New(string(body)), resp.Response) 82} 83