Prevent NullRef when deleting missing backups

(cherry picked from commit 0ff0fe2e68f3abf7b8e4d6bf0c1e9dee4eb68227)
This commit is contained in:
Bogdan 2023-06-17 02:08:40 +03:00 committed by Mark McDowall
parent e2f27e0c61
commit b48fe6e633
1 changed files with 17 additions and 11 deletions

View File

@ -20,7 +20,7 @@ namespace Sonarr.Api.V3.System.Backup
private readonly IAppFolderInfo _appFolderInfo; private readonly IAppFolderInfo _appFolderInfo;
private readonly IDiskProvider _diskProvider; private readonly IDiskProvider _diskProvider;
private static readonly List<string> ValidExtensions = new List<string> { ".zip", ".db", ".xml" }; private static readonly List<string> ValidExtensions = new () { ".zip", ".db", ".xml" };
public BackupController(IBackupService backupService, public BackupController(IBackupService backupService,
IAppFolderInfo appFolderInfo, IAppFolderInfo appFolderInfo,
@ -37,22 +37,28 @@ namespace Sonarr.Api.V3.System.Backup
var backups = _backupService.GetBackups(); var backups = _backupService.GetBackups();
return backups.Select(b => new BackupResource return backups.Select(b => new BackupResource
{ {
Id = GetBackupId(b), Id = GetBackupId(b),
Name = b.Name, Name = b.Name,
Path = $"/backup/{b.Type.ToString().ToLower()}/{b.Name}", Path = $"/backup/{b.Type.ToString().ToLower()}/{b.Name}",
Size = b.Size, Size = b.Size,
Type = b.Type, Type = b.Type,
Time = b.Time Time = b.Time
}) })
.OrderByDescending(b => b.Time) .OrderByDescending(b => b.Time)
.ToList(); .ToList();
} }
[RestDeleteById] [RestDeleteById]
public void DeleteBackup(int id) public void DeleteBackup(int id)
{ {
var backup = GetBackup(id); var backup = GetBackup(id);
if (backup == null)
{
throw new NotFoundException();
}
var path = GetBackupPath(backup); var path = GetBackupPath(backup);
if (!_diskProvider.FileExists(path)) if (!_diskProvider.FileExists(path))