Merge pull request #10345 from Bond-009/getperson
This commit is contained in:
commit
406c5df8a3
|
@ -46,7 +46,6 @@ using MediaBrowser.Model.IO;
|
||||||
using MediaBrowser.Model.Library;
|
using MediaBrowser.Model.Library;
|
||||||
using MediaBrowser.Model.Querying;
|
using MediaBrowser.Model.Querying;
|
||||||
using MediaBrowser.Model.Tasks;
|
using MediaBrowser.Model.Tasks;
|
||||||
using Microsoft.Extensions.Caching.Memory;
|
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Episode = MediaBrowser.Controller.Entities.TV.Episode;
|
using Episode = MediaBrowser.Controller.Entities.TV.Episode;
|
||||||
using EpisodeInfo = Emby.Naming.TV.EpisodeInfo;
|
using EpisodeInfo = Emby.Naming.TV.EpisodeInfo;
|
||||||
|
@ -839,19 +838,12 @@ namespace Emby.Server.Implementations.Library
|
||||||
{
|
{
|
||||||
var path = Person.GetPath(name);
|
var path = Person.GetPath(name);
|
||||||
var id = GetItemByNameId<Person>(path);
|
var id = GetItemByNameId<Person>(path);
|
||||||
if (GetItemById(id) is not Person item)
|
if (GetItemById(id) is Person item)
|
||||||
{
|
{
|
||||||
item = new Person
|
return item;
|
||||||
{
|
|
||||||
Name = name,
|
|
||||||
Id = id,
|
|
||||||
DateCreated = DateTime.UtcNow,
|
|
||||||
DateModified = DateTime.UtcNow,
|
|
||||||
Path = path
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return item;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -2900,9 +2892,18 @@ namespace Emby.Server.Implementations.Library
|
||||||
var saveEntity = false;
|
var saveEntity = false;
|
||||||
var personEntity = GetPerson(person.Name);
|
var personEntity = GetPerson(person.Name);
|
||||||
|
|
||||||
// if PresentationUniqueKey is empty it's likely a new item.
|
if (personEntity is null)
|
||||||
if (string.IsNullOrEmpty(personEntity.PresentationUniqueKey))
|
|
||||||
{
|
{
|
||||||
|
var path = Person.GetPath(person.Name);
|
||||||
|
personEntity = new Person()
|
||||||
|
{
|
||||||
|
Name = person.Name,
|
||||||
|
Id = GetItemByNameId<Person>(path),
|
||||||
|
DateCreated = DateTime.UtcNow,
|
||||||
|
DateModified = DateTime.UtcNow,
|
||||||
|
Path = path
|
||||||
|
};
|
||||||
|
|
||||||
personEntity.PresentationUniqueKey = personEntity.CreatePresentationUniqueKey();
|
personEntity.PresentationUniqueKey = personEntity.CreatePresentationUniqueKey();
|
||||||
saveEntity = true;
|
saveEntity = true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
using System.Net;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Xunit;
|
||||||
|
|
||||||
|
namespace Jellyfin.Server.Integration.Tests.Controllers;
|
||||||
|
|
||||||
|
public class PersonsControllerTests : IClassFixture<JellyfinApplicationFactory>
|
||||||
|
{
|
||||||
|
private readonly JellyfinApplicationFactory _factory;
|
||||||
|
private static string? _accessToken;
|
||||||
|
|
||||||
|
public PersonsControllerTests(JellyfinApplicationFactory factory)
|
||||||
|
{
|
||||||
|
_factory = factory;
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task GetPerson_DoesntExist_NotFound()
|
||||||
|
{
|
||||||
|
var client = _factory.CreateClient();
|
||||||
|
client.DefaultRequestHeaders.AddAuthHeader(_accessToken ??= await AuthHelper.CompleteStartupAsync(client));
|
||||||
|
|
||||||
|
using var response = await client.GetAsync($"Persons/DoesntExist");
|
||||||
|
Assert.Equal(HttpStatusCode.NotFound, response.StatusCode);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user