google-api-php-client-services icon indicating copy to clipboard operation
google-api-php-client-services copied to clipboard

Incorrect return type annotations for batch requests

Open marekdedic opened this issue 6 years ago • 5 comments

Environment details

  • OS: Debian testing
  • PHP version: 7.3.8

The return type of many API functions is incorrect, missing the option that many functions can return Request, if batch requests are enabled.

For example, the function Google_Service_Drive_Resource_Files::get() normally returns a Google_Service_Drive_DriveFile, as is written in the doc comment.

However, if batch requests are turned on, this function won't return the actual file, but instead a GuzzleHttp\Psr7\Request. This is because the function Google_Service_Drive_Resource_Files::get() calls Google_Service_Resource::call(), which (if batching is enabled) returns the request instead of the response (source).

So the correct PHPDoc return signature for Google_Service_Drive_Resource_Files::get() should be

/**
 * ...
 *
 * @return Google_Service_Drive_DriveFile|Request
 */

Of course, this applies to many more functions than just this one - possibly to all of them, but I am not really sure.

marekdedic avatar Aug 26 '19 14:08 marekdedic

This is IMHO not a feature request - the type annotations exist and are incorrect - as far as I see it, that makes this a bug report ;)

marekdedic avatar Aug 30 '19 16:08 marekdedic

We are changing this back to feature request because "bug" implies a bug in the library. We are working on rolling out a fix, however!

bshaffer avatar Feb 26 '20 19:02 bshaffer

Hi, is there any way I could help? As far as I understand, this repo is auto-generated - is the generating code somewhere? I would submit a PR if it were...

marekdedic avatar Oct 26 '20 09:10 marekdedic

Ok, looked at it once more, found the generator (was that in the repo the whole time?). However, it uses Python 2, which is not supported by my distro any more :/ (and managing python versions and dependencies is something I never quite grokked)

marekdedic avatar Mar 16 '21 16:03 marekdedic

Also following this as I noticed the same issue. Many methods are also missing phpdoc comments altogether. For instance, Google\Service\Drive\DriveFile has almost no phpdoc comments at all, which plays havoc with my IDE.

If I get the time perhaps I can look at the generator code, but I'm not very good at python.

devbanana avatar Oct 02 '21 13:10 devbanana