Skip to content

Commit b700e0d

Browse files
Gregory Ganleyjohanbrandhorst
andauthored
Fix malformed Schema Reference during field_behavior generation (#1944)
* Fix malformed Schema Reference during field_behavior generation * remove unnecessary third_party proto files bump third_part proto files to same revision * add context for not adding field_behavior if schema is a reference * correct typo: Referene -> Reference :facepalm: Co-authored-by: Johan Brandhorst-Satzkorn <[email protected]> Co-authored-by: Johan Brandhorst-Satzkorn <[email protected]>
1 parent 69552d6 commit b700e0d

File tree

13 files changed

+1360
-642
lines changed

13 files changed

+1360
-642
lines changed

examples/internal/clients/abe/api/swagger.yaml

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1905,6 +1905,68 @@ paths:
19051905
description: "An unexpected error response."
19061906
schema:
19071907
$ref: "#/definitions/rpcStatus"
1908+
/v1/{book.name=publishers/*/books/*}:
1909+
patch:
1910+
tags:
1911+
- "ABitOfEverythingService"
1912+
operationId: "ABitOfEverythingService_UpdateBook"
1913+
parameters:
1914+
- name: "book.name"
1915+
in: "path"
1916+
description: "The resource name of the book.\n\nFormat: `publishers/{publisher}/books/{book}`\n\
1917+
\nExample: `publishers/1257894000000000000/books/my-book`"
1918+
required: true
1919+
type: "string"
1920+
x-exportParamName: "BookName"
1921+
- in: "body"
1922+
name: "body"
1923+
description: "The book to update.\n\nThe book's `name` field is used to identify\
1924+
\ the book to be updated.\nFormat: publishers/{publisher}/books/{book}"
1925+
required: true
1926+
schema:
1927+
$ref: "#/definitions/examplepbBook"
1928+
x-exportParamName: "Body"
1929+
- name: "updateMask"
1930+
in: "query"
1931+
description: "The list of fields to be updated."
1932+
required: false
1933+
type: "string"
1934+
x-exportParamName: "UpdateMask"
1935+
x-optionalDataType: "String"
1936+
- name: "allowMissing"
1937+
in: "query"
1938+
description: "If set to true, and the book is not found, a new book will be\
1939+
\ created.\nIn this situation, `update_mask` is ignored."
1940+
required: false
1941+
type: "boolean"
1942+
x-exportParamName: "AllowMissing"
1943+
x-optionalDataType: "Bool"
1944+
responses:
1945+
200:
1946+
description: "A successful response."
1947+
schema:
1948+
$ref: "#/definitions/examplepbBook"
1949+
403:
1950+
description: "Returned when the user does not have permission to access\
1951+
\ the resource."
1952+
schema: {}
1953+
404:
1954+
description: "Returned when the resource does not exist."
1955+
schema:
1956+
type: "string"
1957+
format: "string"
1958+
418:
1959+
description: "I'm a teapot."
1960+
schema:
1961+
$ref: "#/definitions/examplepbNumericEnum"
1962+
500:
1963+
description: "Server error"
1964+
schema:
1965+
$ref: "#/definitions/examplepbErrorResponse"
1966+
default:
1967+
description: "An unexpected error response."
1968+
schema:
1969+
$ref: "#/definitions/rpcStatus"
19081970
/v1/{parent=publishers/*}/books:
19091971
post:
19101972
tags:

examples/internal/clients/abe/api_a_bit_of_everything_service.go

Lines changed: 174 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3785,6 +3785,180 @@ func (a *ABitOfEverythingServiceApiService) ABitOfEverythingServiceUpdate(ctx co
37853785
return localVarReturnValue, localVarHttpResponse, nil
37863786
}
37873787

3788+
/*
3789+
ABitOfEverythingServiceApiService
3790+
* @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
3791+
* @param bookName The resource name of the book. Format: &#x60;publishers/{publisher}/books/{book}&#x60; Example: &#x60;publishers/1257894000000000000/books/my-book&#x60;
3792+
* @param body The book to update. The book&#39;s &#x60;name&#x60; field is used to identify the book to be updated. Format: publishers/{publisher}/books/{book}
3793+
* @param optional nil or *ABitOfEverythingServiceUpdateBookOpts - Optional Parameters:
3794+
* @param "UpdateMask" (optional.String) - The list of fields to be updated.
3795+
* @param "AllowMissing" (optional.Bool) - If set to true, and the book is not found, a new book will be created. In this situation, &#x60;update_mask&#x60; is ignored.
3796+
3797+
@return ExamplepbBook
3798+
*/
3799+
3800+
type ABitOfEverythingServiceUpdateBookOpts struct {
3801+
UpdateMask optional.String
3802+
AllowMissing optional.Bool
3803+
}
3804+
3805+
func (a *ABitOfEverythingServiceApiService) ABitOfEverythingServiceUpdateBook(ctx context.Context, bookName string, body ExamplepbBook, localVarOptionals *ABitOfEverythingServiceUpdateBookOpts) (ExamplepbBook, *http.Response, error) {
3806+
var (
3807+
localVarHttpMethod = strings.ToUpper("Patch")
3808+
localVarPostBody interface{}
3809+
localVarFileName string
3810+
localVarFileBytes []byte
3811+
localVarReturnValue ExamplepbBook
3812+
)
3813+
3814+
// create path and map variables
3815+
localVarPath := a.client.cfg.BasePath + "/v1/{book.name=publishers/*/books/*}"
3816+
localVarPath = strings.Replace(localVarPath, "{"+"book.name"+"}", fmt.Sprintf("%v", bookName), -1)
3817+
3818+
localVarHeaderParams := make(map[string]string)
3819+
localVarQueryParams := url.Values{}
3820+
localVarFormParams := url.Values{}
3821+
3822+
if localVarOptionals != nil && localVarOptionals.UpdateMask.IsSet() {
3823+
localVarQueryParams.Add("updateMask", parameterToString(localVarOptionals.UpdateMask.Value(), ""))
3824+
}
3825+
if localVarOptionals != nil && localVarOptionals.AllowMissing.IsSet() {
3826+
localVarQueryParams.Add("allowMissing", parameterToString(localVarOptionals.AllowMissing.Value(), ""))
3827+
}
3828+
// to determine the Content-Type header
3829+
localVarHttpContentTypes := []string{"application/json", "application/x-foo-mime"}
3830+
3831+
// set Content-Type header
3832+
localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
3833+
if localVarHttpContentType != "" {
3834+
localVarHeaderParams["Content-Type"] = localVarHttpContentType
3835+
}
3836+
3837+
// to determine the Accept header
3838+
localVarHttpHeaderAccepts := []string{"application/json", "application/x-foo-mime"}
3839+
3840+
// set Accept header
3841+
localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
3842+
if localVarHttpHeaderAccept != "" {
3843+
localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
3844+
}
3845+
// body params
3846+
localVarPostBody = &body
3847+
if ctx != nil {
3848+
// API Key Authentication
3849+
if auth, ok := ctx.Value(ContextAPIKey).(APIKey); ok {
3850+
var key string
3851+
if auth.Prefix != "" {
3852+
key = auth.Prefix + " " + auth.Key
3853+
} else {
3854+
key = auth.Key
3855+
}
3856+
localVarHeaderParams["X-API-Key"] = key
3857+
3858+
}
3859+
}
3860+
r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
3861+
if err != nil {
3862+
return localVarReturnValue, nil, err
3863+
}
3864+
3865+
localVarHttpResponse, err := a.client.callAPI(r)
3866+
if err != nil || localVarHttpResponse == nil {
3867+
return localVarReturnValue, localVarHttpResponse, err
3868+
}
3869+
3870+
localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
3871+
localVarHttpResponse.Body.Close()
3872+
if err != nil {
3873+
return localVarReturnValue, localVarHttpResponse, err
3874+
}
3875+
3876+
if localVarHttpResponse.StatusCode < 300 {
3877+
// If we succeed, return the data, otherwise pass on to decode error.
3878+
err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
3879+
if err == nil {
3880+
return localVarReturnValue, localVarHttpResponse, err
3881+
}
3882+
}
3883+
3884+
if localVarHttpResponse.StatusCode >= 300 {
3885+
newErr := GenericSwaggerError{
3886+
body: localVarBody,
3887+
error: localVarHttpResponse.Status,
3888+
}
3889+
3890+
if localVarHttpResponse.StatusCode == 200 {
3891+
var v ExamplepbBook
3892+
err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
3893+
if err != nil {
3894+
newErr.error = err.Error()
3895+
return localVarReturnValue, localVarHttpResponse, newErr
3896+
}
3897+
newErr.model = v
3898+
return localVarReturnValue, localVarHttpResponse, newErr
3899+
}
3900+
3901+
if localVarHttpResponse.StatusCode == 403 {
3902+
var v interface{}
3903+
err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
3904+
if err != nil {
3905+
newErr.error = err.Error()
3906+
return localVarReturnValue, localVarHttpResponse, newErr
3907+
}
3908+
newErr.model = v
3909+
return localVarReturnValue, localVarHttpResponse, newErr
3910+
}
3911+
3912+
if localVarHttpResponse.StatusCode == 404 {
3913+
var v string
3914+
err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
3915+
if err != nil {
3916+
newErr.error = err.Error()
3917+
return localVarReturnValue, localVarHttpResponse, newErr
3918+
}
3919+
newErr.model = v
3920+
return localVarReturnValue, localVarHttpResponse, newErr
3921+
}
3922+
3923+
if localVarHttpResponse.StatusCode == 418 {
3924+
var v ExamplepbNumericEnum
3925+
err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
3926+
if err != nil {
3927+
newErr.error = err.Error()
3928+
return localVarReturnValue, localVarHttpResponse, newErr
3929+
}
3930+
newErr.model = v
3931+
return localVarReturnValue, localVarHttpResponse, newErr
3932+
}
3933+
3934+
if localVarHttpResponse.StatusCode == 500 {
3935+
var v ExamplepbErrorResponse
3936+
err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
3937+
if err != nil {
3938+
newErr.error = err.Error()
3939+
return localVarReturnValue, localVarHttpResponse, newErr
3940+
}
3941+
newErr.model = v
3942+
return localVarReturnValue, localVarHttpResponse, newErr
3943+
}
3944+
3945+
if localVarHttpResponse.StatusCode == 0 {
3946+
var v RpcStatus
3947+
err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
3948+
if err != nil {
3949+
newErr.error = err.Error()
3950+
return localVarReturnValue, localVarHttpResponse, newErr
3951+
}
3952+
newErr.model = v
3953+
return localVarReturnValue, localVarHttpResponse, newErr
3954+
}
3955+
3956+
return localVarReturnValue, localVarHttpResponse, newErr
3957+
}
3958+
3959+
return localVarReturnValue, localVarHttpResponse, nil
3960+
}
3961+
37883962
/*
37893963
ABitOfEverythingServiceApiService
37903964
* @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().

0 commit comments

Comments
 (0)