Skip to content

Commit

Permalink
fix: include non-required resource fields in helpers (#635)
Browse files Browse the repository at this point in the history
  • Loading branch information
noahdietz committed May 31, 2023
1 parent 29be36e commit bd1be34
Show file tree
Hide file tree
Showing 11 changed files with 361 additions and 3 deletions.
5 changes: 2 additions & 3 deletions src/Generation/ServiceDetails.php
Original file line number Diff line number Diff line change
Expand Up @@ -255,9 +255,8 @@ public function __construct(
return substr($fd->fullname, 0, 1) === '.' ? substr($fd->fullname, 1) : $fd->fullname;
};
$fieldResourceRefs = $fieldDetails
->filter(fn ($x) => $x->isRequired
&& $x->isMessage
&& !is_null($x->fullname))
->filter(fn ($x) => $x->isMessage
&& !is_null($x->fullname))
->map(fn ($x) => $catalog->msgResourcesByFullname->get($fullnameFn($x), null))
->filter(fn ($x) => !is_null($x));
$typeFieldRefResourceDefs = $fieldResourceRefs
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
<?php
/*
* Copyright 2022 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

/*
* GENERATED CODE WARNING
* This file was automatically generated - do not edit!
*/

require_once __DIR__ . '/../../../vendor/autoload.php';

// [START resourcenames_generated_ResourceNames_NestedReferenceMethod_sync]
use Google\ApiCore\ApiException;
use Testing\ResourceNames\PlaceholderResponse;
use Testing\ResourceNames\ResourceNamesClient;

/**
* This sample has been automatically generated and should be regarded as a code
* template only. It will require modifications to work:
* - It may require correct/in-range values for request initialization.
* - It may require specifying regional endpoints when creating the service client,
* please see the apiEndpoint client configuration option for more details.
*/
function nested_reference_method_sample(): void
{
// Create a client.
$resourceNamesClient = new ResourceNamesClient();

// Call the API and handle any network failures.
try {
/** @var PlaceholderResponse $response */
$response = $resourceNamesClient->nestedReferenceMethod();
printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
} catch (ApiException $ex) {
printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
}
}
// [END resourcenames_generated_ResourceNames_NestedReferenceMethod_sync]
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
use Testing\ResourceNames\FileLevelChildTypeRefRequest;
use Testing\ResourceNames\FileLevelTypeRefRequest;
use Testing\ResourceNames\MultiPatternRequest;
use Testing\ResourceNames\NestedReferenceRequest;
use Testing\ResourceNames\PlaceholderResponse;
use Testing\ResourceNames\SinglePatternRequest;
use Testing\ResourceNames\WildcardChildReferenceRequest;
Expand Down Expand Up @@ -63,6 +64,7 @@
* @method PromiseInterface fileLevelChildTypeRefMethodAsync(FileLevelChildTypeRefRequest $request, array $optionalArgs = [])
* @method PromiseInterface fileLevelTypeRefMethodAsync(FileLevelTypeRefRequest $request, array $optionalArgs = [])
* @method PromiseInterface multiPatternMethodAsync(MultiPatternRequest $request, array $optionalArgs = [])
* @method PromiseInterface nestedReferenceMethodAsync(NestedReferenceRequest $request, array $optionalArgs = [])
* @method PromiseInterface singlePatternMethodAsync(SinglePatternRequest $request, array $optionalArgs = [])
* @method PromiseInterface wildcardChildReferenceMethodAsync(WildcardChildReferenceRequest $request, array $optionalArgs = [])
* @method PromiseInterface wildcardMethodAsync(WildcardPatternRequest $request, array $optionalArgs = [])
Expand Down Expand Up @@ -289,6 +291,21 @@ public static function multiPatternName(string $item1Id, string $item2Id): strin
]);
}

/**
* Formats a string containing the fully-qualified path to represent a
* nested_reference_message resource.
*
* @param string $nestedReferenceMessage
*
* @return string The formatted nested_reference_message resource.
*/
public static function nestedReferenceMessageName(string $nestedReferenceMessage): string
{
return self::getPathTemplate('nestedReferenceMessage')->render([
'nested_reference_message' => $nestedReferenceMessage,
]);
}

/**
* Formats a string containing the fully-qualified path to represent a order1
* resource.
Expand Down Expand Up @@ -334,6 +351,21 @@ public static function order3Name(string $order3Id): string
]);
}

/**
* Formats a string containing the fully-qualified path to represent a
* other_reference_resource resource.
*
* @param string $otherReferenceResource
*
* @return string The formatted other_reference_resource resource.
*/
public static function otherReferenceResourceName(string $otherReferenceResource): string
{
return self::getPathTemplate('otherReferenceResource')->render([
'other_reference_resource' => $otherReferenceResource,
]);
}

/**
* Formats a string containing the fully-qualified path to represent a
* single_pattern resource.
Expand Down Expand Up @@ -381,9 +413,11 @@ public static function wildcardMultiPatternName(string $item1Id): string
* - item3Id: items3/{item3_id}
* - item4IdItem5aIdItem5bIdItem5cIdItem5dIdItem5eIdItem6Id: items4/{item4_id}/items5/{item5a_id}_{item5b_id}-{item5c_id}.{item5d_id}~{item5e_id}/items6/{item6_id}
* - multiPattern: items1/{item1_id}/items2/{item2_id}
* - nestedReferenceMessage: nestedReferenceMessages/{nested_reference_message}
* - order1: orders1/{order1_id}
* - order2: orders2/{order2_id}
* - order3: orders3/{order3_id}
* - otherReferenceResource: otherReferenceResource/{other_reference_resource}
* - singlePattern: items1/{item1_id}/items2/{item2_id}
* - wildcardMultiPattern: items1/{item1_id}
*
Expand Down Expand Up @@ -542,6 +576,28 @@ public function multiPatternMethod(MultiPatternRequest $request, array $callOpti
return $this->startApiCall('MultiPatternMethod', $request, $callOptions)->wait();
}

/**
* The async variant is {@see self::nestedReferenceMethodAsync()} .
*
* @param NestedReferenceRequest $request A request to house fields associated with the call.
* @param array $callOptions {
* Optional.
*
* @type RetrySettings|array $retrySettings
* Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
* associative array of retry settings parameters. See the documentation on
* {@see RetrySettings} for example usage.
* }
*
* @return PlaceholderResponse
*
* @throws ApiException Thrown if the API call fails.
*/
public function nestedReferenceMethod(NestedReferenceRequest $request, array $callOptions = []): PlaceholderResponse
{
return $this->startApiCall('NestedReferenceMethod', $request, $callOptions)->wait();
}

/**
* The async variant is {@see self::singlePatternMethodAsync()} .
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@
use Testing\ResourceNames\FileLevelTypeRefRequest;
use Testing\ResourceNames\FileLevelTypeRefRequest\Nested1;
use Testing\ResourceNames\MultiPatternRequest;
use Testing\ResourceNames\NestedReferenceMessage;
use Testing\ResourceNames\NestedReferenceRequest;
use Testing\ResourceNames\PlaceholderResponse;
use Testing\ResourceNames\SinglePatternRequest;
use Testing\ResourceNames\WildcardChildReferenceRequest;
Expand Down Expand Up @@ -109,12 +111,16 @@ class ResourceNamesGapicClient

private static $multiPatternNameTemplate;

private static $nestedReferenceMessageNameTemplate;

private static $order1NameTemplate;

private static $order2NameTemplate;

private static $order3NameTemplate;

private static $otherReferenceResourceNameTemplate;

private static $singlePatternNameTemplate;

private static $wildcardMultiPatternNameTemplate;
Expand Down Expand Up @@ -239,6 +245,15 @@ private static function getMultiPatternNameTemplate()
return self::$multiPatternNameTemplate;
}

private static function getNestedReferenceMessageNameTemplate()
{
if (self::$nestedReferenceMessageNameTemplate == null) {
self::$nestedReferenceMessageNameTemplate = new PathTemplate('nestedReferenceMessages/{nested_reference_message}');
}

return self::$nestedReferenceMessageNameTemplate;
}

private static function getOrder1NameTemplate()
{
if (self::$order1NameTemplate == null) {
Expand Down Expand Up @@ -266,6 +281,15 @@ private static function getOrder3NameTemplate()
return self::$order3NameTemplate;
}

private static function getOtherReferenceResourceNameTemplate()
{
if (self::$otherReferenceResourceNameTemplate == null) {
self::$otherReferenceResourceNameTemplate = new PathTemplate('otherReferenceResource/{other_reference_resource}');
}

return self::$otherReferenceResourceNameTemplate;
}

private static function getSinglePatternNameTemplate()
{
if (self::$singlePatternNameTemplate == null) {
Expand Down Expand Up @@ -299,9 +323,11 @@ private static function getPathTemplateMap()
'item3Id' => self::getItem3IdNameTemplate(),
'item4IdItem5aIdItem5bIdItem5cIdItem5dIdItem5eIdItem6Id' => self::getItem4IdItem5aIdItem5bIdItem5cIdItem5dIdItem5eIdItem6IdNameTemplate(),
'multiPattern' => self::getMultiPatternNameTemplate(),
'nestedReferenceMessage' => self::getNestedReferenceMessageNameTemplate(),
'order1' => self::getOrder1NameTemplate(),
'order2' => self::getOrder2NameTemplate(),
'order3' => self::getOrder3NameTemplate(),
'otherReferenceResource' => self::getOtherReferenceResourceNameTemplate(),
'singlePattern' => self::getSinglePatternNameTemplate(),
'wildcardMultiPattern' => self::getWildcardMultiPatternNameTemplate(),
];
Expand Down Expand Up @@ -491,6 +517,21 @@ public static function multiPatternName($item1Id, $item2Id)
]);
}

/**
* Formats a string containing the fully-qualified path to represent a
* nested_reference_message resource.
*
* @param string $nestedReferenceMessage
*
* @return string The formatted nested_reference_message resource.
*/
public static function nestedReferenceMessageName($nestedReferenceMessage)
{
return self::getNestedReferenceMessageNameTemplate()->render([
'nested_reference_message' => $nestedReferenceMessage,
]);
}

/**
* Formats a string containing the fully-qualified path to represent a order1
* resource.
Expand Down Expand Up @@ -536,6 +577,21 @@ public static function order3Name($order3Id)
]);
}

/**
* Formats a string containing the fully-qualified path to represent a
* other_reference_resource resource.
*
* @param string $otherReferenceResource
*
* @return string The formatted other_reference_resource resource.
*/
public static function otherReferenceResourceName($otherReferenceResource)
{
return self::getOtherReferenceResourceNameTemplate()->render([
'other_reference_resource' => $otherReferenceResource,
]);
}

/**
* Formats a string containing the fully-qualified path to represent a
* single_pattern resource.
Expand Down Expand Up @@ -583,9 +639,11 @@ public static function wildcardMultiPatternName($item1Id)
* - item3Id: items3/{item3_id}
* - item4IdItem5aIdItem5bIdItem5cIdItem5dIdItem5eIdItem6Id: items4/{item4_id}/items5/{item5a_id}_{item5b_id}-{item5c_id}.{item5d_id}~{item5e_id}/items6/{item6_id}
* - multiPattern: items1/{item1_id}/items2/{item2_id}
* - nestedReferenceMessage: nestedReferenceMessages/{nested_reference_message}
* - order1: orders1/{order1_id}
* - order2: orders2/{order2_id}
* - order3: orders3/{order3_id}
* - otherReferenceResource: otherReferenceResource/{other_reference_resource}
* - singlePattern: items1/{item1_id}/items2/{item2_id}
* - wildcardMultiPattern: items1/{item1_id}
*
Expand Down Expand Up @@ -822,6 +880,42 @@ public function multiPatternMethod(array $optionalArgs = [])
return $this->startCall('MultiPatternMethod', PlaceholderResponse::class, $optionalArgs, $request)->wait();
}

/**
*
* Sample code:
* ```
* $resourceNamesClient = new ResourceNamesClient();
* try {
* $response = $resourceNamesClient->nestedReferenceMethod();
* } finally {
* $resourceNamesClient->close();
* }
* ```
*
* @param array $optionalArgs {
* Optional.
*
* @type NestedReferenceMessage $nestedReferenceMessage
* @type RetrySettings|array $retrySettings
* Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
* associative array of retry settings parameters. See the documentation on
* {@see RetrySettings} for example usage.
* }
*
* @return \Testing\ResourceNames\PlaceholderResponse
*
* @throws ApiException if the remote call fails
*/
public function nestedReferenceMethod(array $optionalArgs = [])
{
$request = new NestedReferenceRequest();
if (isset($optionalArgs['nestedReferenceMessage'])) {
$request->setNestedReferenceMessage($optionalArgs['nestedReferenceMessage']);
}

return $this->startCall('NestedReferenceMethod', PlaceholderResponse::class, $optionalArgs, $request)->wait();
}

/**
*
* Sample code:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,11 @@
"multiPatternMethod"
]
},
"NestedReferenceMethod": {
"methods": [
"nestedReferenceMethod"
]
},
"SinglePatternMethod": {
"methods": [
"singlePatternMethod"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,11 @@
"retry_codes_name": "non_idempotent",
"retry_params_name": "default"
},
"NestedReferenceMethod": {
"timeout_millis": 60000,
"retry_codes_name": "non_idempotent",
"retry_params_name": "default"
},
"SinglePatternMethod": {
"timeout_millis": 60000,
"retry_codes_name": "non_idempotent",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@
'callType' => \Google\ApiCore\Call::UNARY_CALL,
'responseType' => 'Testing\ResourceNames\PlaceholderResponse',
],
'NestedReferenceMethod' => [
'callType' => \Google\ApiCore\Call::UNARY_CALL,
'responseType' => 'Testing\ResourceNames\PlaceholderResponse',
],
'SinglePatternMethod' => [
'callType' => \Google\ApiCore\Call::UNARY_CALL,
'responseType' => 'Testing\ResourceNames\PlaceholderResponse',
Expand Down Expand Up @@ -47,9 +51,11 @@
'item3Id' => 'items3/{item3_id}',
'item4IdItem5aIdItem5bIdItem5cIdItem5dIdItem5eIdItem6Id' => 'items4/{item4_id}/items5/{item5a_id}_{item5b_id}-{item5c_id}.{item5d_id}~{item5e_id}/items6/{item6_id}',
'multiPattern' => 'items1/{item1_id}/items2/{item2_id}',
'nestedReferenceMessage' => 'nestedReferenceMessages/{nested_reference_message}',
'order1' => 'orders1/{order1_id}',
'order2' => 'orders2/{order2_id}',
'order3' => 'orders3/{order3_id}',
'otherReferenceResource' => 'otherReferenceResource/{other_reference_resource}',
'singlePattern' => 'items1/{item1_id}/items2/{item2_id}',
'wildcardMultiPattern' => 'items1/{item1_id}',
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,11 @@
'uriTemplate' => '/path:multiPatternMethod',
'body' => '*',
],
'NestedReferenceMethod' => [
'method' => 'post',
'uriTemplate' => '/path:nestedReferenceMethod',
'body' => '*',
],
'SinglePatternMethod' => [
'method' => 'post',
'uriTemplate' => '/path:singlePatternMethod',
Expand Down
Loading

0 comments on commit bd1be34

Please sign in to comment.