mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-04-26 03:55:01 +01:00
combined usermanager and userdata manager
This commit is contained in:
@@ -20,6 +20,20 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
public abstract class BaseItemsByNameService<TItemType> : BaseRestService
|
||||
where TItemType : BaseItem
|
||||
{
|
||||
/// <summary>
|
||||
/// The _user manager
|
||||
/// </summary>
|
||||
protected readonly IUserManager UserManager;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="BaseItemsByNameService{TItemType}" /> class.
|
||||
/// </summary>
|
||||
/// <param name="userManager">The user manager.</param>
|
||||
protected BaseItemsByNameService(IUserManager userManager)
|
||||
{
|
||||
UserManager = userManager;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the specified request.
|
||||
/// </summary>
|
||||
@@ -27,11 +41,9 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
/// <returns>Task{ItemsResult}.</returns>
|
||||
protected async Task<ItemsResult> GetResult(GetItemsByName request)
|
||||
{
|
||||
var kernel = (Kernel)Kernel;
|
||||
var user = UserManager.GetUserById(request.UserId);
|
||||
|
||||
var user = kernel.GetUserById(request.UserId);
|
||||
|
||||
var item = string.IsNullOrEmpty(request.Id) ? user.RootFolder : DtoBuilder.GetItemByClientId(request.Id, user.Id);
|
||||
var item = string.IsNullOrEmpty(request.Id) ? user.RootFolder : DtoBuilder.GetItemByClientId(request.Id, UserManager, user.Id);
|
||||
|
||||
IEnumerable<BaseItem> items;
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using MediaBrowser.Common.Net;
|
||||
using MediaBrowser.Controller;
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Controller.Library;
|
||||
using ServiceStack.ServiceHost;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -23,6 +24,10 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
/// </summary>
|
||||
public class GenresService : BaseItemsByNameService<Genre>
|
||||
{
|
||||
public GenresService(IUserManager userManager) : base(userManager)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the specified request.
|
||||
/// </summary>
|
||||
|
||||
@@ -145,6 +145,20 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
/// </summary>
|
||||
public class ItemsService : BaseRestService
|
||||
{
|
||||
/// <summary>
|
||||
/// The _user manager
|
||||
/// </summary>
|
||||
private readonly IUserManager _userManager;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="ItemsService" /> class.
|
||||
/// </summary>
|
||||
/// <param name="userManager">The user manager.</param>
|
||||
public ItemsService(IUserManager userManager)
|
||||
{
|
||||
_userManager = userManager;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the specified request.
|
||||
/// </summary>
|
||||
@@ -164,9 +178,7 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
/// <returns>Task{ItemsResult}.</returns>
|
||||
private async Task<ItemsResult> GetItems(GetItems request)
|
||||
{
|
||||
var kernel = (Kernel)Kernel;
|
||||
|
||||
var user = kernel.GetUserById(request.UserId);
|
||||
var user = _userManager.GetUserById(request.UserId);
|
||||
|
||||
var items = GetItemsToSerialize(request, user);
|
||||
|
||||
@@ -209,7 +221,7 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
/// <exception cref="System.InvalidOperationException"></exception>
|
||||
private IEnumerable<BaseItem> GetItemsToSerialize(GetItems request, User user)
|
||||
{
|
||||
var item = string.IsNullOrEmpty(request.ParentId) ? user.RootFolder : DtoBuilder.GetItemByClientId(request.ParentId, user.Id);
|
||||
var item = string.IsNullOrEmpty(request.ParentId) ? user.RootFolder : DtoBuilder.GetItemByClientId(request.ParentId, _userManager, user.Id);
|
||||
|
||||
// Default list type = children
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using MediaBrowser.Common.Net;
|
||||
using MediaBrowser.Controller;
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Controller.Library;
|
||||
using ServiceStack.ServiceHost;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -28,6 +29,10 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
/// </summary>
|
||||
public class PersonsService : BaseItemsByNameService<Person>
|
||||
{
|
||||
public PersonsService(IUserManager userManager) : base(userManager)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the specified request.
|
||||
/// </summary>
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using MediaBrowser.Controller;
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Controller.Library;
|
||||
using ServiceStack.ServiceHost;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -22,6 +23,11 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
/// </summary>
|
||||
public class StudiosService : BaseItemsByNameService<Studio>
|
||||
{
|
||||
public StudiosService(IUserManager userManager)
|
||||
: base(userManager)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the specified request.
|
||||
/// </summary>
|
||||
|
||||
@@ -312,12 +312,17 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
/// </summary>
|
||||
private readonly IJsonSerializer _jsonSerializer;
|
||||
|
||||
/// <summary>
|
||||
/// The _user manager
|
||||
/// </summary>
|
||||
private readonly IUserManager _userManager;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="UserLibraryService" /> class.
|
||||
/// </summary>
|
||||
/// <param name="jsonSerializer">The json serializer.</param>
|
||||
/// <exception cref="System.ArgumentNullException">jsonSerializer</exception>
|
||||
public UserLibraryService(IJsonSerializer jsonSerializer)
|
||||
public UserLibraryService(IJsonSerializer jsonSerializer, IUserManager userManager)
|
||||
: base()
|
||||
{
|
||||
if (jsonSerializer == null)
|
||||
@@ -326,6 +331,7 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
}
|
||||
|
||||
_jsonSerializer = jsonSerializer;
|
||||
_userManager = userManager;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -335,11 +341,9 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
/// <returns>System.Object.</returns>
|
||||
public object Get(GetSpecialFeatures request)
|
||||
{
|
||||
var kernel = (Kernel)Kernel;
|
||||
var user = _userManager.GetUserById(request.UserId);
|
||||
|
||||
var user = kernel.GetUserById(request.UserId);
|
||||
|
||||
var item = DtoBuilder.GetItemByClientId(request.Id, user.Id);
|
||||
var item = DtoBuilder.GetItemByClientId(request.Id, _userManager, user.Id);
|
||||
|
||||
// Get everything
|
||||
var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true)).ToList();
|
||||
@@ -360,11 +364,9 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
/// <returns>System.Object.</returns>
|
||||
public object Get(GetLocalTrailers request)
|
||||
{
|
||||
var kernel = (Kernel)Kernel;
|
||||
var user = _userManager.GetUserById(request.UserId);
|
||||
|
||||
var user = kernel.GetUserById(request.UserId);
|
||||
|
||||
var item = DtoBuilder.GetItemByClientId(request.Id, user.Id);
|
||||
var item = DtoBuilder.GetItemByClientId(request.Id, _userManager, user.Id);
|
||||
|
||||
// Get everything
|
||||
var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true)).ToList();
|
||||
@@ -383,11 +385,9 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
/// <returns>System.Object.</returns>
|
||||
public object Get(GetItem request)
|
||||
{
|
||||
var kernel = (Kernel)Kernel;
|
||||
var user = _userManager.GetUserById(request.UserId);
|
||||
|
||||
var user = kernel.GetUserById(request.UserId);
|
||||
|
||||
var item = string.IsNullOrEmpty(request.Id) ? user.RootFolder : DtoBuilder.GetItemByClientId(request.Id, user.Id);
|
||||
var item = string.IsNullOrEmpty(request.Id) ? user.RootFolder : DtoBuilder.GetItemByClientId(request.Id, _userManager, user.Id);
|
||||
|
||||
// Get everything
|
||||
var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true)).ToList();
|
||||
@@ -408,9 +408,9 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
{
|
||||
var kernel = (Kernel)Kernel;
|
||||
|
||||
var user = kernel.GetUserById(request.UserId);
|
||||
var user = _userManager.GetUserById(request.UserId);
|
||||
|
||||
var item = DtoBuilder.GetItemByClientId(request.Id, user.Id);
|
||||
var item = DtoBuilder.GetItemByClientId(request.Id, _userManager, user.Id);
|
||||
|
||||
var result = kernel.IntroProviders.SelectMany(i => i.GetIntros(item, user));
|
||||
|
||||
@@ -431,9 +431,9 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
|
||||
var kernel = (Kernel)Kernel;
|
||||
|
||||
var user = kernel.GetUserById(userId);
|
||||
var user = _userManager.GetUserById(userId);
|
||||
|
||||
var item = (Folder)DtoBuilder.GetItemByClientId(itemId, user.Id);
|
||||
var item = (Folder)DtoBuilder.GetItemByClientId(itemId, _userManager, user.Id);
|
||||
|
||||
var displayPreferences = _jsonSerializer.DeserializeFromStream<DisplayPreferences>(request.RequestStream);
|
||||
|
||||
@@ -448,11 +448,9 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
/// <param name="request">The request.</param>
|
||||
public void Post(MarkFavoriteItem request)
|
||||
{
|
||||
var kernel = (Kernel)Kernel;
|
||||
var user = _userManager.GetUserById(request.UserId);
|
||||
|
||||
var user = kernel.GetUserById(request.UserId);
|
||||
|
||||
var item = (Folder)DtoBuilder.GetItemByClientId(request.Id, user.Id);
|
||||
var item = (Folder)DtoBuilder.GetItemByClientId(request.Id, _userManager, user.Id);
|
||||
|
||||
// Get the user data for this item
|
||||
var data = item.GetUserData(user, true);
|
||||
@@ -460,7 +458,7 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
// Set favorite status
|
||||
data.IsFavorite = true;
|
||||
|
||||
var task = kernel.UserDataManager.SaveUserDataForItem(user, item, data);
|
||||
var task = _userManager.SaveUserDataForItem(user, item, data);
|
||||
|
||||
Task.WaitAll(task);
|
||||
}
|
||||
@@ -471,11 +469,9 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
/// <param name="request">The request.</param>
|
||||
public void Delete(UnmarkFavoriteItem request)
|
||||
{
|
||||
var kernel = (Kernel)Kernel;
|
||||
var user = _userManager.GetUserById(request.UserId);
|
||||
|
||||
var user = kernel.GetUserById(request.UserId);
|
||||
|
||||
var item = (Folder)DtoBuilder.GetItemByClientId(request.Id, user.Id);
|
||||
var item = (Folder)DtoBuilder.GetItemByClientId(request.Id, _userManager, user.Id);
|
||||
|
||||
// Get the user data for this item
|
||||
var data = item.GetUserData(user, true);
|
||||
@@ -483,7 +479,7 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
// Set favorite status
|
||||
data.IsFavorite = false;
|
||||
|
||||
var task = kernel.UserDataManager.SaveUserDataForItem(user, item, data);
|
||||
var task = _userManager.SaveUserDataForItem(user, item, data);
|
||||
|
||||
Task.WaitAll(task);
|
||||
}
|
||||
@@ -494,18 +490,16 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
/// <param name="request">The request.</param>
|
||||
public void Delete(DeleteUserItemRating request)
|
||||
{
|
||||
var kernel = (Kernel)Kernel;
|
||||
var user = _userManager.GetUserById(request.UserId);
|
||||
|
||||
var user = kernel.GetUserById(request.UserId);
|
||||
|
||||
var item = (Folder)DtoBuilder.GetItemByClientId(request.Id, user.Id);
|
||||
var item = (Folder)DtoBuilder.GetItemByClientId(request.Id, _userManager, user.Id);
|
||||
|
||||
// Get the user data for this item
|
||||
var data = item.GetUserData(user, true);
|
||||
|
||||
data.Rating = null;
|
||||
|
||||
var task = kernel.UserDataManager.SaveUserDataForItem(user, item, data);
|
||||
var task = _userManager.SaveUserDataForItem(user, item, data);
|
||||
|
||||
Task.WaitAll(task);
|
||||
}
|
||||
@@ -516,18 +510,16 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
/// <param name="request">The request.</param>
|
||||
public void Post(UpdateUserItemRating request)
|
||||
{
|
||||
var kernel = (Kernel)Kernel;
|
||||
var user = _userManager.GetUserById(request.UserId);
|
||||
|
||||
var user = kernel.GetUserById(request.UserId);
|
||||
|
||||
var item = (Folder)DtoBuilder.GetItemByClientId(request.Id, user.Id);
|
||||
var item = (Folder)DtoBuilder.GetItemByClientId(request.Id, _userManager, user.Id);
|
||||
|
||||
// Get the user data for this item
|
||||
var data = item.GetUserData(user, true);
|
||||
|
||||
data.Likes = request.Likes;
|
||||
|
||||
var task = kernel.UserDataManager.SaveUserDataForItem(user, item, data);
|
||||
var task = _userManager.SaveUserDataForItem(user, item, data);
|
||||
|
||||
Task.WaitAll(task);
|
||||
}
|
||||
@@ -538,9 +530,7 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
/// <param name="request">The request.</param>
|
||||
public void Post(MarkPlayedItem request)
|
||||
{
|
||||
var kernel = (Kernel)Kernel;
|
||||
|
||||
var user = kernel.GetUserById(request.UserId);
|
||||
var user = _userManager.GetUserById(request.UserId);
|
||||
|
||||
var task = UpdatePlayedStatus(user, request.Id, true);
|
||||
|
||||
@@ -553,13 +543,11 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
/// <param name="request">The request.</param>
|
||||
public void Post(OnPlaybackStart request)
|
||||
{
|
||||
var kernel = (Kernel)Kernel;
|
||||
var user = _userManager.GetUserById(request.UserId);
|
||||
|
||||
var user = kernel.GetUserById(request.UserId);
|
||||
var item = DtoBuilder.GetItemByClientId(request.Id, _userManager, user.Id);
|
||||
|
||||
var item = DtoBuilder.GetItemByClientId(request.Id, user.Id);
|
||||
|
||||
kernel.UserDataManager.OnPlaybackStart(user, item, ClientType.Other, string.Empty);
|
||||
_userManager.OnPlaybackStart(user, item, ClientType.Other, string.Empty);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -568,13 +556,11 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
/// <param name="request">The request.</param>
|
||||
public void Post(OnPlaybackProgress request)
|
||||
{
|
||||
var kernel = (Kernel)Kernel;
|
||||
var user = _userManager.GetUserById(request.UserId);
|
||||
|
||||
var user = kernel.GetUserById(request.UserId);
|
||||
var item = DtoBuilder.GetItemByClientId(request.Id, _userManager, user.Id);
|
||||
|
||||
var item = DtoBuilder.GetItemByClientId(request.Id, user.Id);
|
||||
|
||||
var task = kernel.UserDataManager.OnPlaybackProgress(user, item, request.PositionTicks, ClientType.Other, string.Empty);
|
||||
var task = _userManager.OnPlaybackProgress(user, item, request.PositionTicks, ClientType.Other, string.Empty);
|
||||
|
||||
Task.WaitAll(task);
|
||||
}
|
||||
@@ -585,13 +571,11 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
/// <param name="request">The request.</param>
|
||||
public void Post(OnPlaybackStopped request)
|
||||
{
|
||||
var kernel = (Kernel)Kernel;
|
||||
var user = _userManager.GetUserById(request.UserId);
|
||||
|
||||
var user = kernel.GetUserById(request.UserId);
|
||||
var item = DtoBuilder.GetItemByClientId(request.Id, _userManager, user.Id);
|
||||
|
||||
var item = DtoBuilder.GetItemByClientId(request.Id, user.Id);
|
||||
|
||||
var task = kernel.UserDataManager.OnPlaybackStopped(user, item, request.PositionTicks, ClientType.Other, string.Empty);
|
||||
var task = _userManager.OnPlaybackStopped(user, item, request.PositionTicks, ClientType.Other, string.Empty);
|
||||
|
||||
Task.WaitAll(task);
|
||||
}
|
||||
@@ -602,9 +586,7 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
/// <param name="request">The request.</param>
|
||||
public void Delete(MarkUnplayedItem request)
|
||||
{
|
||||
var kernel = (Kernel)Kernel;
|
||||
|
||||
var user = kernel.GetUserById(request.UserId);
|
||||
var user = _userManager.GetUserById(request.UserId);
|
||||
|
||||
var task = UpdatePlayedStatus(user, request.Id, false);
|
||||
|
||||
@@ -620,9 +602,9 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
/// <returns>Task.</returns>
|
||||
private Task UpdatePlayedStatus(User user, string itemId, bool wasPlayed)
|
||||
{
|
||||
var item = DtoBuilder.GetItemByClientId(itemId, user.Id);
|
||||
var item = DtoBuilder.GetItemByClientId(itemId, _userManager, user.Id);
|
||||
|
||||
return item.SetPlayedStatus(user, wasPlayed);
|
||||
return item.SetPlayedStatus(user, wasPlayed, _userManager);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using MediaBrowser.Common.Net;
|
||||
using MediaBrowser.Controller;
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Controller.Library;
|
||||
using ServiceStack.ServiceHost;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -29,6 +30,10 @@ namespace MediaBrowser.Api.UserLibrary
|
||||
/// </summary>
|
||||
private static readonly CultureInfo UsCulture = new CultureInfo("en-US");
|
||||
|
||||
public YearsService(IUserManager userManager) : base(userManager)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the specified request.
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user