Add error checking to the api caching
This commit is contained in:
parent
57903bdfcd
commit
d5f228f226
@ -56,6 +56,9 @@ class LodestoneApiService
|
|||||||
throw new Exception('Error:' . curl_error($ch));
|
throw new Exception('Error:' . curl_error($ch));
|
||||||
}
|
}
|
||||||
curl_close($ch);
|
curl_close($ch);
|
||||||
return json_decode($result);
|
$json = json_decode($result);
|
||||||
|
if (property_exists($json, 'Error') && $json->Error === true)
|
||||||
|
return null;
|
||||||
|
return $json;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -13,6 +13,10 @@ class LodestoneCacheService
|
|||||||
$character = LodestoneCache::where('type', LodestoneCacheType::character)->where('lodestoneId', $id)->first();
|
$character = LodestoneCache::where('type', LodestoneCacheType::character)->where('lodestoneId', $id)->first();
|
||||||
if ($character !== null && $character->updated_at > $this->getCacheFreshTime()) return $character;
|
if ($character !== null && $character->updated_at > $this->getCacheFreshTime()) return $character;
|
||||||
$fetchedCharacter = $lodestoneApiService->getCharacterById($id);
|
$fetchedCharacter = $lodestoneApiService->getCharacterById($id);
|
||||||
|
if ($fetchedCharacter === null) {
|
||||||
|
if ($character === null) return abort(502);
|
||||||
|
return $character;
|
||||||
|
}
|
||||||
$character = LodestoneCache::updateOrCreate([
|
$character = LodestoneCache::updateOrCreate([
|
||||||
'type' => LodestoneCacheType::character,
|
'type' => LodestoneCacheType::character,
|
||||||
'lodestoneId' => $fetchedCharacter->Character->ID,
|
'lodestoneId' => $fetchedCharacter->Character->ID,
|
||||||
@ -28,6 +32,10 @@ class LodestoneCacheService
|
|||||||
$character = LodestoneCache::where('type', LodestoneCacheType::character)->where('server', $server)->where('name', $name)->first();
|
$character = LodestoneCache::where('type', LodestoneCacheType::character)->where('server', $server)->where('name', $name)->first();
|
||||||
if ($character !== null && $character->updated_at > $this->getCacheFreshTime()) return $character;
|
if ($character !== null && $character->updated_at > $this->getCacheFreshTime()) return $character;
|
||||||
$fetchedCharacter = $lodestoneApiService->getCharacterByName($server, $name);
|
$fetchedCharacter = $lodestoneApiService->getCharacterByName($server, $name);
|
||||||
|
if ($fetchedCharacter === null) {
|
||||||
|
if ($character === null) return abort(502);
|
||||||
|
return $character;
|
||||||
|
}
|
||||||
$character = LodestoneCache::updateOrCreate([
|
$character = LodestoneCache::updateOrCreate([
|
||||||
'type' => LodestoneCacheType::character,
|
'type' => LodestoneCacheType::character,
|
||||||
'lodestoneId' => $fetchedCharacter->Character->ID,
|
'lodestoneId' => $fetchedCharacter->Character->ID,
|
||||||
@ -43,6 +51,10 @@ class LodestoneCacheService
|
|||||||
$freeCompany = LodestoneCache::where('type', LodestoneCacheType::freeCompany)->where('lodestoneId', $id)->first();
|
$freeCompany = LodestoneCache::where('type', LodestoneCacheType::freeCompany)->where('lodestoneId', $id)->first();
|
||||||
if ($freeCompany !== null && $freeCompany->updated_at > $this->getCacheFreshTime()) return $freeCompany;
|
if ($freeCompany !== null && $freeCompany->updated_at > $this->getCacheFreshTime()) return $freeCompany;
|
||||||
$fetchedFreeCompany = $lodestoneApiService->getFreeCompanyById($id);
|
$fetchedFreeCompany = $lodestoneApiService->getFreeCompanyById($id);
|
||||||
|
if ($fetchedFreeCompany === null) {
|
||||||
|
if ($freeCompany === null) return abort(502);
|
||||||
|
return $freeCompany;
|
||||||
|
}
|
||||||
$freeCompany = LodestoneCache::updateOrCreate([
|
$freeCompany = LodestoneCache::updateOrCreate([
|
||||||
'type' => LodestoneCacheType::freeCompany,
|
'type' => LodestoneCacheType::freeCompany,
|
||||||
'lodestoneId' => $fetchedFreeCompany->FreeCompany->ID,
|
'lodestoneId' => $fetchedFreeCompany->FreeCompany->ID,
|
||||||
@ -58,6 +70,10 @@ class LodestoneCacheService
|
|||||||
$freeCompany = LodestoneCache::where('type', LodestoneCacheType::freeCompany)->where('server', $server)->where('name', $name)->first();
|
$freeCompany = LodestoneCache::where('type', LodestoneCacheType::freeCompany)->where('server', $server)->where('name', $name)->first();
|
||||||
if ($freeCompany !== null && $freeCompany->updated_at > $this->getCacheFreshTime()) return $freeCompany;
|
if ($freeCompany !== null && $freeCompany->updated_at > $this->getCacheFreshTime()) return $freeCompany;
|
||||||
$fetchedFreeCompany = $lodestoneApiService->getFreeCompanyByName($server, $name);
|
$fetchedFreeCompany = $lodestoneApiService->getFreeCompanyByName($server, $name);
|
||||||
|
if ($fetchedFreeCompany === null) {
|
||||||
|
if ($freeCompany === null) return abort(502);
|
||||||
|
return $freeCompany;
|
||||||
|
}
|
||||||
$freeCompany = LodestoneCache::updateOrCreate([
|
$freeCompany = LodestoneCache::updateOrCreate([
|
||||||
'type' => LodestoneCacheType::freeCompany,
|
'type' => LodestoneCacheType::freeCompany,
|
||||||
'lodestoneId' => $fetchedFreeCompany->FreeCompany->ID,
|
'lodestoneId' => $fetchedFreeCompany->FreeCompany->ID,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user