Steam icon indicating copy to clipboard operation
Steam copied to clipboard

Invalid argument supplied for foreach()

Open ilumos opened this issue 3 years ago • 1 comments

Hey folks,

When calling Steam::app()->appDetails(1444140) I get the error:

ErrorException

 Invalid argument supplied for foreach()

 at vendor/syntax/steam-api/src/Syntax/SteamApi/Steam/App.php:79
   75|     protected function convertGames($apps)
   76|     {
   77|         $convertedApps = new Collection();
   78|
 > 79|         foreach ($apps as $app) {
   80|             if (isset($app->data)) {
   81|                 $convertedApps->add(new AppContainer($app->data));
   82|             }
   83|         }

I expect this is because Steam's API is returning an empty response with HTTP 200 OK.

Would it be appropriate to check for an empty response in setUpClient and if one is found, throw an ApiCallFailedException?

If so I will submit a PR.

Thank you for your great library!

ilumos avatar Oct 10 '21 19:10 ilumos

Looks like other endpoints sometimes return empty responses too:

https://github.com/syntaxerrors/Steam/pull/121

Where would be a good place to check for an empty response and throw an exception?

ilumos avatar Nov 04 '21 22:11 ilumos

I think this is covered in 3.0.0 release, will reopen if it keep happening.

nicekiwi avatar Apr 29 '24 08:04 nicekiwi