mirror of
https://github.com/Radarr/Radarr.git
synced 2024-10-02 22:27:20 +02:00
Simplify fallback to default for allowed sort keys
Co-authored-by: Mark McDowall <mark@mcdowall.ca>
This commit is contained in:
parent
b89271fc01
commit
dbc94dbe4e
@ -31,8 +31,6 @@ public PagingResource<BlocklistResource> GetBlocklist([FromQuery] PagingRequestR
|
|||||||
{
|
{
|
||||||
var pagingResource = new PagingResource<BlocklistResource>(paging);
|
var pagingResource = new PagingResource<BlocklistResource>(paging);
|
||||||
var pagingSpec = pagingResource.MapToPagingSpec<BlocklistResource, NzbDrone.Core.Blocklisting.Blocklist>(
|
var pagingSpec = pagingResource.MapToPagingSpec<BlocklistResource, NzbDrone.Core.Blocklisting.Blocklist>(
|
||||||
"date",
|
|
||||||
SortDirection.Descending,
|
|
||||||
new HashSet<string>(StringComparer.OrdinalIgnoreCase)
|
new HashSet<string>(StringComparer.OrdinalIgnoreCase)
|
||||||
{
|
{
|
||||||
"movieMetadata.sortTitle",
|
"movieMetadata.sortTitle",
|
||||||
@ -41,7 +39,9 @@ public PagingResource<BlocklistResource> GetBlocklist([FromQuery] PagingRequestR
|
|||||||
"quality",
|
"quality",
|
||||||
"date",
|
"date",
|
||||||
"indexer"
|
"indexer"
|
||||||
});
|
},
|
||||||
|
"date",
|
||||||
|
SortDirection.Descending);
|
||||||
|
|
||||||
if (movieIds?.Any() == true)
|
if (movieIds?.Any() == true)
|
||||||
{
|
{
|
||||||
|
@ -65,15 +65,15 @@ public PagingResource<HistoryResource> GetHistory([FromQuery] PagingRequestResou
|
|||||||
{
|
{
|
||||||
var pagingResource = new PagingResource<HistoryResource>(paging);
|
var pagingResource = new PagingResource<HistoryResource>(paging);
|
||||||
var pagingSpec = pagingResource.MapToPagingSpec<HistoryResource, MovieHistory>(
|
var pagingSpec = pagingResource.MapToPagingSpec<HistoryResource, MovieHistory>(
|
||||||
"date",
|
|
||||||
SortDirection.Descending,
|
|
||||||
new HashSet<string>(StringComparer.OrdinalIgnoreCase)
|
new HashSet<string>(StringComparer.OrdinalIgnoreCase)
|
||||||
{
|
{
|
||||||
"movieMetadata.sortTitle",
|
"movieMetadata.sortTitle",
|
||||||
"languages",
|
"languages",
|
||||||
"quality",
|
"quality",
|
||||||
"date"
|
"date"
|
||||||
});
|
},
|
||||||
|
"date",
|
||||||
|
SortDirection.Descending);
|
||||||
|
|
||||||
if (eventTypes != null && eventTypes.Any())
|
if (eventTypes != null && eventTypes.Any())
|
||||||
{
|
{
|
||||||
|
@ -49,15 +49,15 @@ public PagingResource<ImportListExclusionResource> GetImportListExclusionsPaged(
|
|||||||
{
|
{
|
||||||
var pagingResource = new PagingResource<ImportListExclusionResource>(paging);
|
var pagingResource = new PagingResource<ImportListExclusionResource>(paging);
|
||||||
var pageSpec = pagingResource.MapToPagingSpec<ImportListExclusionResource, ImportListExclusion>(
|
var pageSpec = pagingResource.MapToPagingSpec<ImportListExclusionResource, ImportListExclusion>(
|
||||||
"id",
|
|
||||||
SortDirection.Descending,
|
|
||||||
new HashSet<string>(StringComparer.OrdinalIgnoreCase)
|
new HashSet<string>(StringComparer.OrdinalIgnoreCase)
|
||||||
{
|
{
|
||||||
"id",
|
"id",
|
||||||
"tmdbId",
|
"tmdbId",
|
||||||
"movieTitle",
|
"movieTitle",
|
||||||
"movieYear"
|
"movieYear"
|
||||||
});
|
},
|
||||||
|
"id",
|
||||||
|
SortDirection.Descending);
|
||||||
|
|
||||||
return pageSpec.ApplyToPage(_importListExclusionService.Paged, ImportListExclusionResourceMapper.ToResource);
|
return pageSpec.ApplyToPage(_importListExclusionService.Paged, ImportListExclusionResourceMapper.ToResource);
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using NzbDrone.Common.Extensions;
|
using NzbDrone.Common.Extensions;
|
||||||
using NzbDrone.Core.Configuration;
|
using NzbDrone.Core.Configuration;
|
||||||
@ -29,7 +31,11 @@ public PagingResource<LogResource> GetLogs([FromQuery] PagingRequestResource pag
|
|||||||
}
|
}
|
||||||
|
|
||||||
var pagingResource = new PagingResource<LogResource>(paging);
|
var pagingResource = new PagingResource<LogResource>(paging);
|
||||||
var pageSpec = pagingResource.MapToPagingSpec<LogResource, Log>();
|
var pageSpec = pagingResource.MapToPagingSpec<LogResource, Log>(new HashSet<string>(StringComparer.OrdinalIgnoreCase)
|
||||||
|
{
|
||||||
|
"id",
|
||||||
|
"time"
|
||||||
|
});
|
||||||
|
|
||||||
if (pageSpec.SortKey == "time")
|
if (pageSpec.SortKey == "time")
|
||||||
{
|
{
|
||||||
|
@ -139,7 +139,7 @@ public object RemoveMany([FromBody] QueueBulkResource resource, [FromQuery] bool
|
|||||||
public PagingResource<QueueResource> GetQueue([FromQuery] PagingRequestResource paging, bool includeUnknownMovieItems = false, bool includeMovie = false, [FromQuery] int[] movieIds = null, DownloadProtocol? protocol = null, [FromQuery] int[] languages = null, int? quality = null)
|
public PagingResource<QueueResource> GetQueue([FromQuery] PagingRequestResource paging, bool includeUnknownMovieItems = false, bool includeMovie = false, [FromQuery] int[] movieIds = null, DownloadProtocol? protocol = null, [FromQuery] int[] languages = null, int? quality = null)
|
||||||
{
|
{
|
||||||
var pagingResource = new PagingResource<QueueResource>(paging);
|
var pagingResource = new PagingResource<QueueResource>(paging);
|
||||||
var pagingSpec = pagingResource.MapToPagingSpec<QueueResource, NzbDrone.Core.Queue.Queue>("timeleft", SortDirection.Ascending);
|
var pagingSpec = pagingResource.MapToPagingSpec<QueueResource, NzbDrone.Core.Queue.Queue>(null, "timeleft", SortDirection.Ascending);
|
||||||
|
|
||||||
return pagingSpec.ApplyToPage((spec) => GetQueue(spec, movieIds?.ToHashSet(), protocol, languages?.ToHashSet(), quality, includeUnknownMovieItems), (q) => MapToResource(q, includeMovie));
|
return pagingSpec.ApplyToPage((spec) => GetQueue(spec, movieIds?.ToHashSet(), protocol, languages?.ToHashSet(), quality, includeUnknownMovieItems), (q) => MapToResource(q, includeMovie));
|
||||||
}
|
}
|
||||||
|
@ -47,8 +47,6 @@ public PagingResource<MovieResource> GetCutoffUnmetMovies([FromQuery] PagingRequ
|
|||||||
{
|
{
|
||||||
var pagingResource = new PagingResource<MovieResource>(paging);
|
var pagingResource = new PagingResource<MovieResource>(paging);
|
||||||
var pagingSpec = pagingResource.MapToPagingSpec<MovieResource, Movie>(
|
var pagingSpec = pagingResource.MapToPagingSpec<MovieResource, Movie>(
|
||||||
"movieMetadata.sortTitle",
|
|
||||||
SortDirection.Ascending,
|
|
||||||
new HashSet<string>(StringComparer.OrdinalIgnoreCase)
|
new HashSet<string>(StringComparer.OrdinalIgnoreCase)
|
||||||
{
|
{
|
||||||
"movieMetadata.sortTitle",
|
"movieMetadata.sortTitle",
|
||||||
@ -57,7 +55,9 @@ public PagingResource<MovieResource> GetCutoffUnmetMovies([FromQuery] PagingRequ
|
|||||||
"movieMetadata.digitalRelease",
|
"movieMetadata.digitalRelease",
|
||||||
"movieMetadata.physicalRelease",
|
"movieMetadata.physicalRelease",
|
||||||
"movies.lastSearchTime"
|
"movies.lastSearchTime"
|
||||||
});
|
},
|
||||||
|
"movieMetadata.sortTitle",
|
||||||
|
SortDirection.Ascending);
|
||||||
|
|
||||||
pagingSpec.FilterExpressions.Add(v => v.Monitored == monitored);
|
pagingSpec.FilterExpressions.Add(v => v.Monitored == monitored);
|
||||||
|
|
||||||
|
@ -43,8 +43,6 @@ public PagingResource<MovieResource> GetMissingMovies([FromQuery] PagingRequestR
|
|||||||
{
|
{
|
||||||
var pagingResource = new PagingResource<MovieResource>(paging);
|
var pagingResource = new PagingResource<MovieResource>(paging);
|
||||||
var pagingSpec = pagingResource.MapToPagingSpec<MovieResource, Movie>(
|
var pagingSpec = pagingResource.MapToPagingSpec<MovieResource, Movie>(
|
||||||
"movieMetadata.sortTitle",
|
|
||||||
SortDirection.Ascending,
|
|
||||||
new HashSet<string>(StringComparer.OrdinalIgnoreCase)
|
new HashSet<string>(StringComparer.OrdinalIgnoreCase)
|
||||||
{
|
{
|
||||||
"movieMetadata.sortTitle",
|
"movieMetadata.sortTitle",
|
||||||
@ -53,7 +51,9 @@ public PagingResource<MovieResource> GetMissingMovies([FromQuery] PagingRequestR
|
|||||||
"movieMetadata.digitalRelease",
|
"movieMetadata.digitalRelease",
|
||||||
"movieMetadata.physicalRelease",
|
"movieMetadata.physicalRelease",
|
||||||
"movies.lastSearchTime"
|
"movies.lastSearchTime"
|
||||||
});
|
},
|
||||||
|
"movieMetadata.sortTitle",
|
||||||
|
SortDirection.Ascending);
|
||||||
|
|
||||||
pagingSpec.FilterExpressions.Add(v => v.Monitored == monitored);
|
pagingSpec.FilterExpressions.Add(v => v.Monitored == monitored);
|
||||||
|
|
||||||
|
@ -40,9 +40,9 @@ public static class PagingResourceMapper
|
|||||||
{
|
{
|
||||||
public static PagingSpec<TModel> MapToPagingSpec<TResource, TModel>(
|
public static PagingSpec<TModel> MapToPagingSpec<TResource, TModel>(
|
||||||
this PagingResource<TResource> pagingResource,
|
this PagingResource<TResource> pagingResource,
|
||||||
string defaultSortKey = "Id",
|
HashSet<string> allowedSortKeys,
|
||||||
SortDirection defaultSortDirection = SortDirection.Ascending,
|
string defaultSortKey = "id",
|
||||||
HashSet<string> allowedSortKeys = null)
|
SortDirection defaultSortDirection = SortDirection.Ascending)
|
||||||
{
|
{
|
||||||
var pagingSpec = new PagingSpec<TModel>
|
var pagingSpec = new PagingSpec<TModel>
|
||||||
{
|
{
|
||||||
@ -52,21 +52,15 @@ public static PagingSpec<TModel> MapToPagingSpec<TResource, TModel>(
|
|||||||
SortDirection = pagingResource.SortDirection,
|
SortDirection = pagingResource.SortDirection,
|
||||||
};
|
};
|
||||||
|
|
||||||
if (pagingResource.SortKey == null)
|
pagingSpec.SortKey = pagingResource.SortKey != null &&
|
||||||
{
|
allowedSortKeys is { Count: > 0 } &&
|
||||||
pagingSpec.SortKey = defaultSortKey;
|
allowedSortKeys.Contains(pagingResource.SortKey)
|
||||||
if (pagingResource.SortDirection == SortDirection.Default)
|
? pagingResource.SortKey
|
||||||
{
|
: defaultSortKey;
|
||||||
pagingSpec.SortDirection = defaultSortDirection;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pagingResource.SortKey != null &&
|
pagingSpec.SortDirection = pagingResource.SortDirection == SortDirection.Default
|
||||||
allowedSortKeys is { Count: > 0 } &&
|
? defaultSortDirection
|
||||||
!allowedSortKeys.Contains(pagingResource.SortKey))
|
: pagingResource.SortDirection;
|
||||||
{
|
|
||||||
pagingSpec.SortKey = defaultSortKey;
|
|
||||||
}
|
|
||||||
|
|
||||||
return pagingSpec;
|
return pagingSpec;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user