Incorrect return type annotations for batch requests
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.
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 ;)
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!
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...
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)
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.