Convert CollectionType, SpecialFolderType to enum (#9764)

* Convert CollectionType, SpecialFolderType to enum

* Hide internal enum CollectionType values

* Apply suggestions from code review

Co-authored-by: Shadowghost <Shadowghost@users.noreply.github.com>

* Fix recent change

* Update Jellyfin.Data/Attributes/OpenApiIgnoreEnumAttribute.cs

Co-authored-by: Patrick Barron <barronpm@gmail.com>

---------

Co-authored-by: Shadowghost <Shadowghost@users.noreply.github.com>
Co-authored-by: Patrick Barron <barronpm@gmail.com>
This commit is contained in:
Cody Robibero
2023-11-09 14:00:29 -07:00
committed by GitHub
parent c7a94d48ae
commit 906f701fa8
43 changed files with 486 additions and 288 deletions

View File

@@ -42,7 +42,7 @@ namespace MediaBrowser.Controller.Entities
_tvSeriesManager = tvSeriesManager;
}
public QueryResult<BaseItem> GetUserItems(Folder queryParent, Folder displayParent, string viewType, InternalItemsQuery query)
public QueryResult<BaseItem> GetUserItems(Folder queryParent, Folder displayParent, CollectionType? viewType, InternalItemsQuery query)
{
var user = query.User;
@@ -67,49 +67,49 @@ namespace MediaBrowser.Controller.Entities
case CollectionType.Movies:
return GetMovieFolders(queryParent, user, query);
case SpecialFolder.TvShowSeries:
case CollectionType.TvShowSeries:
return GetTvSeries(queryParent, user, query);
case SpecialFolder.TvGenres:
case CollectionType.TvGenres:
return GetTvGenres(queryParent, user, query);
case SpecialFolder.TvGenre:
case CollectionType.TvGenre:
return GetTvGenreItems(queryParent, displayParent, user, query);
case SpecialFolder.TvResume:
case CollectionType.TvResume:
return GetTvResume(queryParent, user, query);
case SpecialFolder.TvNextUp:
case CollectionType.TvNextUp:
return GetTvNextUp(queryParent, query);
case SpecialFolder.TvLatest:
case CollectionType.TvLatest:
return GetTvLatest(queryParent, user, query);
case SpecialFolder.MovieFavorites:
case CollectionType.MovieFavorites:
return GetFavoriteMovies(queryParent, user, query);
case SpecialFolder.MovieLatest:
case CollectionType.MovieLatest:
return GetMovieLatest(queryParent, user, query);
case SpecialFolder.MovieGenres:
case CollectionType.MovieGenres:
return GetMovieGenres(queryParent, user, query);
case SpecialFolder.MovieGenre:
case CollectionType.MovieGenre:
return GetMovieGenreItems(queryParent, displayParent, user, query);
case SpecialFolder.MovieResume:
case CollectionType.MovieResume:
return GetMovieResume(queryParent, user, query);
case SpecialFolder.MovieMovies:
case CollectionType.MovieMovies:
return GetMovieMovies(queryParent, user, query);
case SpecialFolder.MovieCollections:
case CollectionType.MovieCollections:
return GetMovieCollections(user, query);
case SpecialFolder.TvFavoriteEpisodes:
case CollectionType.TvFavoriteEpisodes:
return GetFavoriteEpisodes(queryParent, user, query);
case SpecialFolder.TvFavoriteSeries:
case CollectionType.TvFavoriteSeries:
return GetFavoriteSeries(queryParent, user, query);
default:
@@ -146,12 +146,12 @@ namespace MediaBrowser.Controller.Entities
var list = new List<BaseItem>
{
GetUserView(SpecialFolder.MovieResume, "HeaderContinueWatching", "0", parent),
GetUserView(SpecialFolder.MovieLatest, "Latest", "1", parent),
GetUserView(SpecialFolder.MovieMovies, "Movies", "2", parent),
GetUserView(SpecialFolder.MovieCollections, "Collections", "3", parent),
GetUserView(SpecialFolder.MovieFavorites, "Favorites", "4", parent),
GetUserView(SpecialFolder.MovieGenres, "Genres", "5", parent)
GetUserView(CollectionType.MovieResume, "HeaderContinueWatching", "0", parent),
GetUserView(CollectionType.MovieLatest, "Latest", "1", parent),
GetUserView(CollectionType.MovieMovies, "Movies", "2", parent),
GetUserView(CollectionType.MovieCollections, "Collections", "3", parent),
GetUserView(CollectionType.MovieFavorites, "Favorites", "4", parent),
GetUserView(CollectionType.MovieGenres, "Genres", "5", parent)
};
return GetResult(list, query);
@@ -264,7 +264,7 @@ namespace MediaBrowser.Controller.Entities
}
})
.Where(i => i is not null)
.Select(i => GetUserViewWithName(SpecialFolder.MovieGenre, i.SortName, parent));
.Select(i => GetUserViewWithName(CollectionType.MovieGenre, i.SortName, parent));
return GetResult(genres, query);
}
@@ -303,13 +303,13 @@ namespace MediaBrowser.Controller.Entities
var list = new List<BaseItem>
{
GetUserView(SpecialFolder.TvResume, "HeaderContinueWatching", "0", parent),
GetUserView(SpecialFolder.TvNextUp, "HeaderNextUp", "1", parent),
GetUserView(SpecialFolder.TvLatest, "Latest", "2", parent),
GetUserView(SpecialFolder.TvShowSeries, "Shows", "3", parent),
GetUserView(SpecialFolder.TvFavoriteSeries, "HeaderFavoriteShows", "4", parent),
GetUserView(SpecialFolder.TvFavoriteEpisodes, "HeaderFavoriteEpisodes", "5", parent),
GetUserView(SpecialFolder.TvGenres, "Genres", "6", parent)
GetUserView(CollectionType.TvResume, "HeaderContinueWatching", "0", parent),
GetUserView(CollectionType.TvNextUp, "HeaderNextUp", "1", parent),
GetUserView(CollectionType.TvLatest, "Latest", "2", parent),
GetUserView(CollectionType.TvShowSeries, "Shows", "3", parent),
GetUserView(CollectionType.TvFavoriteSeries, "HeaderFavoriteShows", "4", parent),
GetUserView(CollectionType.TvFavoriteEpisodes, "HeaderFavoriteEpisodes", "5", parent),
GetUserView(CollectionType.TvGenres, "Genres", "6", parent)
};
return GetResult(list, query);
@@ -330,7 +330,7 @@ namespace MediaBrowser.Controller.Entities
private QueryResult<BaseItem> GetTvNextUp(Folder parent, InternalItemsQuery query)
{
var parentFolders = GetMediaFolders(parent, query.User, new[] { CollectionType.TvShows, string.Empty });
var parentFolders = GetMediaFolders(parent, query.User, new[] { CollectionType.TvShows });
var result = _tvSeriesManager.GetNextUp(
new NextUpQuery
@@ -392,7 +392,7 @@ namespace MediaBrowser.Controller.Entities
}
})
.Where(i => i is not null)
.Select(i => GetUserViewWithName(SpecialFolder.TvGenre, i.SortName, parent));
.Select(i => GetUserViewWithName(CollectionType.TvGenre, i.SortName, parent));
return GetResult(genres, query);
}
@@ -943,7 +943,7 @@ namespace MediaBrowser.Controller.Entities
.Where(i => user.IsFolderGrouped(i.Id) && UserView.IsEligibleForGrouping(i));
}
private BaseItem[] GetMediaFolders(User user, IEnumerable<string> viewTypes)
private BaseItem[] GetMediaFolders(User user, IEnumerable<CollectionType> viewTypes)
{
if (user is null)
{
@@ -952,7 +952,7 @@ namespace MediaBrowser.Controller.Entities
{
var folder = i as ICollectionFolder;
return folder is not null && viewTypes.Contains(folder.CollectionType ?? string.Empty, StringComparison.OrdinalIgnoreCase);
return folder?.CollectionType is not null && viewTypes.Contains(folder.CollectionType.Value);
}).ToArray();
}
@@ -961,11 +961,11 @@ namespace MediaBrowser.Controller.Entities
{
var folder = i as ICollectionFolder;
return folder is not null && viewTypes.Contains(folder.CollectionType ?? string.Empty, StringComparison.OrdinalIgnoreCase);
return folder?.CollectionType is not null && viewTypes.Contains(folder.CollectionType.Value);
}).ToArray();
}
private BaseItem[] GetMediaFolders(Folder parent, User user, IEnumerable<string> viewTypes)
private BaseItem[] GetMediaFolders(Folder parent, User user, IEnumerable<CollectionType> viewTypes)
{
if (parent is null || parent is UserView)
{
@@ -975,12 +975,12 @@ namespace MediaBrowser.Controller.Entities
return new BaseItem[] { parent };
}
private UserView GetUserViewWithName(string type, string sortName, BaseItem parent)
private UserView GetUserViewWithName(CollectionType? type, string sortName, BaseItem parent)
{
return _userViewManager.GetUserSubView(parent.Id, parent.Id.ToString("N", CultureInfo.InvariantCulture), type, sortName);
return _userViewManager.GetUserSubView(parent.Id, type, parent.Id.ToString("N", CultureInfo.InvariantCulture), sortName);
}
private UserView GetUserView(string type, string localizationKey, string sortName, BaseItem parent)
private UserView GetUserView(CollectionType? type, string localizationKey, string sortName, BaseItem parent)
{
return _userViewManager.GetUserSubView(parent.Id, type, localizationKey, sortName);
}