1
0
mirror of https://github.com/Radarr/Radarr.git synced 2024-09-17 15:02:34 +02:00

Reportingare.ReportException are now routed to ExceptionController

This commit is contained in:
kay.one 2012-02-29 22:38:42 -08:00
parent c5d2ba9bef
commit b2cce4d4f0
2 changed files with 54 additions and 50 deletions

View File

@ -17,29 +17,29 @@ public ExceptionController(IDatabase database)
{ {
_database = database; _database = database;
} }
[HttpPost] [HttpPost]
public EmptyResult ReportExisting(ExistingExceptionReport existingExceptionReport) public EmptyResult ReportExisting(ExistingExceptionReport existingExceptionReport)
{ {
try try
{ {
if (ExceptionHashExists(existingExceptionReport.Hash)) if (ExceptionHashExists(existingExceptionReport.Hash))
{ {
var exceptionInstance = new ExceptionInstance var exceptionInstance = new ExceptionInstance
{ {
ExceptionHash = existingExceptionReport.Hash, ExceptionHash = existingExceptionReport.Hash,
IsProduction = existingExceptionReport.IsProduction, IsProduction = existingExceptionReport.IsProduction,
LogMessage = existingExceptionReport.LogMessage, LogMessage = existingExceptionReport.LogMessage,
Timestamp = DateTime.Now Timestamp = DateTime.Now
}; };
_database.Insert(exceptionInstance); _database.Insert(exceptionInstance);
} }
else else
{ {
logger.Warn("Invalid exception hash '{0}'", existingExceptionReport.Hash); logger.Warn("Invalid exception hash '{0}'", existingExceptionReport.Hash);
} }
} }
catch (Exception e) catch (Exception e)
{ {
@ -49,7 +49,7 @@ public EmptyResult ReportExisting(ExistingExceptionReport existingExceptionRepor
return new EmptyResult(); return new EmptyResult();
} }
[HttpPost] [HttpPost]
public JsonResult ReportNew(ExceptionReport exceptionReport) public JsonResult ReportNew(ExceptionReport exceptionReport)
{ {
@ -72,14 +72,19 @@ public JsonResult ReportNew(ExceptionReport exceptionReport)
catch (Exception e) catch (Exception e)
{ {
logger.FatalException("Error has occurred while saving exception", e); logger.FatalException("Error has occurred while saving exception", e);
throw; if (!exceptionReport.IsProduction)
{
throw;
}
} }
return new JsonResult();
} }
private string GetExceptionDetailId(ExceptionReport exceptionReport) private string GetExceptionDetailId(ExceptionReport exceptionReport)
{ {
var reportHash = Hash(String.Concat(exceptionReport.Version, exceptionReport.String, exceptionReport.Logger)); var reportHash = Hash(String.Concat(exceptionReport.Version, exceptionReport.String, exceptionReport.Logger));
if (!ExceptionHashExists(reportHash)) if (!ExceptionHashExists(reportHash))
{ {
var exeptionDetail = new ExceptionDetail(); var exeptionDetail = new ExceptionDetail();
@ -89,7 +94,7 @@ private string GetExceptionDetailId(ExceptionReport exceptionReport)
exeptionDetail.Type = exceptionReport.Type; exeptionDetail.Type = exceptionReport.Type;
exeptionDetail.Version = exceptionReport.Version; exeptionDetail.Version = exceptionReport.Version;
_database.Insert(exeptionDetail); _database.Insert(exeptionDetail);
} }
return reportHash; return reportHash;

View File

@ -13,30 +13,47 @@ namespace NzbDrone.Services.Service.Controllers
public class ReportingController : Controller public class ReportingController : Controller
{ {
private readonly IDatabase _database; private readonly IDatabase _database;
private readonly ExceptionController _exceptionController;
private static readonly Logger logger = LogManager.GetCurrentClassLogger(); private static readonly Logger logger = LogManager.GetCurrentClassLogger();
private const string OK = "OK"; private const string OK = "OK";
public ReportingController(IDatabase database) public ReportingController(IDatabase database, ExceptionController exceptionController)
{ {
_database = database; _database = database;
_exceptionController = exceptionController;
} }
[HttpPost] [HttpPost]
public JsonResult ParseError(ParseErrorReport parseErrorReport) public JsonResult ParseError(ParseErrorReport parseErrorReport)
{ {
logger.Trace(parseErrorReport.NullSafe()); try
{
logger.Trace(parseErrorReport.NullSafe());
if (ParseErrorExists(parseErrorReport.Title))
return Json(OK);
var row = new ParseErrorRow();
row.LoadBase(parseErrorReport);
row.Title = parseErrorReport.Title;
_database.Insert(row);
if (ParseErrorExists(parseErrorReport.Title))
return Json(OK); return Json(OK);
}
catch (Exception e)
{
logger.FatalException("Error has occurred while saving parse report", e);
if (!parseErrorReport.IsProduction)
{
throw;
}
}
var row = new ParseErrorRow(); return new JsonResult();
row.LoadBase(parseErrorReport);
row.Title = parseErrorReport.Title;
_database.Insert(row);
return Json(OK);
} }
@ -48,25 +65,7 @@ private bool ParseErrorExists(string title)
[HttpPost] [HttpPost]
public JsonResult ReportException(ExceptionReport exceptionReport) public JsonResult ReportException(ExceptionReport exceptionReport)
{ {
try return _exceptionController.ReportNew(exceptionReport);
{
var row = new ExceptionRow();
row.LoadBase(exceptionReport);
row.LogMessage = exceptionReport.LogMessage;
row.Logger = exceptionReport.Logger;
row.String = exceptionReport.String;
row.Type = exceptionReport.Type;
_database.Insert(row);
return Json(OK);
}
catch (Exception)
{
logger.Trace(exceptionReport.NullSafe());
throw;
}
} }
} }
} }