diff --git a/src/Umbraco.Cms.Api.Management/Factories/DocumentVersionPresentationFactory.cs b/src/Umbraco.Cms.Api.Management/Factories/DocumentVersionPresentationFactory.cs index 5006ccbaa7f4..144be70a4c29 100644 --- a/src/Umbraco.Cms.Api.Management/Factories/DocumentVersionPresentationFactory.cs +++ b/src/Umbraco.Cms.Api.Management/Factories/DocumentVersionPresentationFactory.cs @@ -1,5 +1,6 @@ using Umbraco.Cms.Api.Management.ViewModels; using Umbraco.Cms.Api.Management.ViewModels.Document; +using Umbraco.Cms.Core; using Umbraco.Cms.Core.Models; using Umbraco.Cms.Core.Services; using Umbraco.Extensions; @@ -19,17 +20,26 @@ public DocumentVersionPresentationFactory( _userIdKeyResolver = userIdKeyResolver; } - public async Task CreateAsync(ContentVersionMeta contentVersion) => - new( + public async Task CreateAsync(ContentVersionMeta contentVersion) + { + ReferenceByIdModel userReference = contentVersion.UserId switch + { + Constants.Security.UnknownUserId => new ReferenceByIdModel(), + _ => new ReferenceByIdModel(await _userIdKeyResolver.GetAsync(contentVersion.UserId)), + }; + + return new DocumentVersionItemResponseModel( contentVersion.VersionId.ToGuid(), // this is a magic guid since versions do not have keys in the DB new ReferenceByIdModel(_entityService.GetKey(contentVersion.ContentId, UmbracoObjectTypes.Document).Result), - new ReferenceByIdModel(_entityService.GetKey(contentVersion.ContentTypeId, UmbracoObjectTypes.DocumentType) - .Result), - new ReferenceByIdModel(await _userIdKeyResolver.GetAsync(contentVersion.UserId)), + new ReferenceByIdModel( + _entityService.GetKey(contentVersion.ContentTypeId, UmbracoObjectTypes.DocumentType) + .Result), + userReference, new DateTimeOffset(contentVersion.VersionDate), contentVersion.CurrentPublishedVersion, contentVersion.CurrentDraftVersion, contentVersion.PreventCleanup); + } public async Task> CreateMultipleAsync(IEnumerable contentVersions) => await CreateMultipleImplAsync(contentVersions).ToArrayAsync();