lmerotta-zz / phpokeapi

A PHP7.1 Wrapper for PokéAPI, with cache and lazy-loading
32 stars 17 forks source link

Hack to fix pokeapi bug not working #10

Open renecatharsis opened 4 years ago

renecatharsis commented 4 years ago

There's a workaround in PokeAPI\Client class to address this open issue: https://github.com/PokeAPI/pokeapi/issues/345

That workaround doesn't work correctly for me, either. Possibly because my local pokeapi installation doesn't run on localhost but a custom hostname. It does try to resolve the expected Collection by calling the falsely delivered URL but doesn't prepend the baseUrl properly.

My (also ugly) fix for this was to replace:

if ($uri === Pokemon::POKEAPI_ENDPOINT && isset($data['location_area_encounters'])) { 
    $data['location_area_encounters'] = $this->fixEncounters($data['location_area_encounters']);
}

with

if ($uri === Pokemon::POKEAPI_ENDPOINT && isset($data['location_area_encounters'])) {
    $prepend = str_replace('/api/v2/', '', $this->baseUrl);
    $data['location_area_encounters'] = $this->fixEncounters($prepend . $data['location_area_encounters']);
}
renecatharsis commented 4 years ago

See PR #11