Fail safe when the IGDB connector experiences an exception (#127)

* Updated readme with database limitations

* Wrapped all IGDB calls (except search) in try catch blocks
This commit is contained in:
Michael Green
2023-09-22 03:24:09 -07:00
committed by GitHub
parent a0408a1d1d
commit 9b930b2a51
23 changed files with 229 additions and 82 deletions

View File

@@ -99,11 +99,19 @@ namespace gaseous_server.Classes.Metadata
AddPlatformMapping(returnValue);
return returnValue;
case Storage.CacheStatus.Expired:
returnValue = await GetObjectFromServer(WhereClause);
Storage.NewCacheValue(returnValue, true);
UpdateSubClasses(returnValue);
AddPlatformMapping(returnValue);
return returnValue;
try
{
returnValue = await GetObjectFromServer(WhereClause);
Storage.NewCacheValue(returnValue, true);
UpdateSubClasses(returnValue);
AddPlatformMapping(returnValue);
return returnValue;
}
catch (Exception ex)
{
Logging.Log(Logging.LogType.Warning, "Metadata: " + returnValue.GetType().Name, "An error occurred while connecting to IGDB. WhereClause: " + WhereClause, ex);
return Storage.GetCacheValue<Platform>(returnValue, "id", (long)searchValue);
}
case Storage.CacheStatus.Current:
return Storage.GetCacheValue<Platform>(returnValue, "id", (long)searchValue);
default: