Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using Umbraco.Cms.Api.Management.Services.Flags;
using Umbraco.Cms.Api.Management.ViewModels;
using Umbraco.Cms.Api.Management.ViewModels.Content;
using Umbraco.Cms.Api.Management.ViewModels.Document;
using Umbraco.Cms.Api.Management.ViewModels.Document.Item;
using Umbraco.Cms.Api.Management.ViewModels.DocumentBlueprint.Item;
Expand Down Expand Up @@ -126,7 +127,7 @@ public Attempt<List<CulturePublishScheduleModel>, ContentPublishingOperationStat
/// <inheritdoc/>
protected override DocumentVariantItemResponseModel CreateVariantItemResponseModel(
string name,
DocumentVariantState state,
PublishableVariantState state,
string? culture)
=> new() { Name = name, State = state, Culture = culture };
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using Umbraco.Cms.Api.Management.Services.Flags;
using Umbraco.Cms.Api.Management.ViewModels;
using Umbraco.Cms.Api.Management.ViewModels.Document;
using Umbraco.Cms.Api.Management.ViewModels.Content;
using Umbraco.Cms.Api.Management.ViewModels.Element;
using Umbraco.Cms.Api.Management.ViewModels.Element.Item;
using Umbraco.Cms.Core;
Expand Down Expand Up @@ -72,7 +72,7 @@ public Attempt<List<CulturePublishScheduleModel>, ContentPublishingOperationStat
/// <inheritdoc />
protected override ElementVariantItemResponseModel CreateVariantItemResponseModel(
string name,
DocumentVariantState state,
PublishableVariantState state,
string? culture)
=> new() { Name = name, State = state, Culture = culture };
}
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ public async Task<IEnumerable<TVariantItemResponseModel>> CreateVariantsItemResp

if (entity.Variations.VariesByCulture() is false)
{
TVariantItemResponseModel model = CreateVariantItemResponseModel(entity.Name ?? string.Empty, DocumentVariantStateHelper.GetState(entity, null), null);
TVariantItemResponseModel model = CreateVariantItemResponseModel(entity.Name ?? string.Empty, PublishableVariantStateHelper.GetState(entity, null), null);

await PopulateFlagsAsync(model);
models.Add(model);
Expand All @@ -74,7 +74,7 @@ public async Task<IEnumerable<TVariantItemResponseModel>> CreateVariantsItemResp

foreach (KeyValuePair<string, string> cultureNamePair in entity.CultureNames)
{
TVariantItemResponseModel model = CreateVariantItemResponseModel(cultureNamePair.Value, DocumentVariantStateHelper.GetState(entity, cultureNamePair.Key), cultureNamePair.Key);
TVariantItemResponseModel model = CreateVariantItemResponseModel(cultureNamePair.Value, PublishableVariantStateHelper.GetState(entity, cultureNamePair.Key), cultureNamePair.Key);

await PopulateFlagsAsync(model);
models.Add(model);
Expand All @@ -100,7 +100,7 @@ public DocumentTypeReferenceResponseModel CreateDocumentTypeReferenceResponseMod
/// <returns>A new variant item response model.</returns>
protected abstract TVariantItemResponseModel CreateVariantItemResponseModel(
string name,
DocumentVariantState state,
PublishableVariantState state,
string? culture);

/// <summary>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
using Umbraco.Cms.Api.Management.ViewModels.Document;
using Umbraco.Cms.Api.Management.ViewModels.Content;
using Umbraco.Cms.Core.Models;
using Umbraco.Cms.Core.Models.Entities;

namespace Umbraco.Cms.Api.Management.Mapping.Content;

// TODO ELEMENTS: rename this to VariantStateHelper or ContentVariantStateHelper (depending on the new name for DocumentVariantState)
internal static class DocumentVariantStateHelper
internal static class PublishableVariantStateHelper
{
internal static DocumentVariantState GetState(IPublishableContentBase content, string? culture)
internal static PublishableVariantState GetState(IPublishableContentBase content, string? culture)
=> GetState(
content,
culture,
Expand All @@ -18,7 +17,7 @@ internal static DocumentVariantState GetState(IPublishableContentBase content, s
content.EditedCultures ?? Enumerable.Empty<string>(),
content.PublishedCultures);

internal static DocumentVariantState GetState(IPublishableContentEntitySlim entity, string? culture)
internal static PublishableVariantState GetState(IPublishableContentEntitySlim entity, string? culture)
=> GetState(
entity,
culture,
Expand All @@ -29,35 +28,35 @@ internal static DocumentVariantState GetState(IPublishableContentEntitySlim enti
entity.EditedCultures,
entity.PublishedCultures);

internal static DocumentVariantState GetState(IDocumentEntitySlim content, string? culture)
internal static PublishableVariantState GetState(IDocumentEntitySlim content, string? culture)
=> GetState((IPublishableContentEntitySlim)content, culture);

internal static DocumentVariantState GetState(IElementEntitySlim element, string? culture)
internal static PublishableVariantState GetState(IElementEntitySlim element, string? culture)
=> GetState((IPublishableContentEntitySlim)element, culture);

private static DocumentVariantState GetState(IEntity entity, string? culture, bool edited, bool published, bool trashed, IEnumerable<string> availableCultures, IEnumerable<string> editedCultures, IEnumerable<string> publishedCultures)
private static PublishableVariantState GetState(IEntity entity, string? culture, bool edited, bool published, bool trashed, IEnumerable<string> availableCultures, IEnumerable<string> editedCultures, IEnumerable<string> publishedCultures)
{
if (entity.Id <= 0 || (culture is not null && availableCultures.Contains(culture) is false))
{
return DocumentVariantState.NotCreated;
return PublishableVariantState.NotCreated;
}

if (trashed)
{
return DocumentVariantState.Trashed;
return PublishableVariantState.Trashed;
}

var isDraft = published is false ||
(culture != null && publishedCultures.Contains(culture) is false);
if (isDraft)
{
return DocumentVariantState.Draft;
return PublishableVariantState.Draft;
}

var isEdited = culture != null
? editedCultures.Contains(culture)
: edited;

return isEdited ? DocumentVariantState.PublishedPendingChanges : DocumentVariantState.Published;
return isEdited ? PublishableVariantState.PublishedPendingChanges : PublishableVariantState.Published;
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using Umbraco.Cms.Api.Management.Mapping.Content;
using Umbraco.Cms.Api.Management.ViewModels.Content;
using Umbraco.Cms.Api.Management.ViewModels.Document;
using Umbraco.Cms.Api.Management.ViewModels.Document.Collection;
using Umbraco.Cms.Api.Management.ViewModels.DocumentBlueprint;
Expand Down Expand Up @@ -57,7 +58,7 @@ private void Map(IContent source, DocumentResponseModel target, MapperContext co
source,
(culture, _, documentVariantViewModel) =>
{
documentVariantViewModel.State = DocumentVariantStateHelper.GetState(source, culture);
documentVariantViewModel.State = PublishableVariantStateHelper.GetState(source, culture);
documentVariantViewModel.PublishDate = culture == null
? source.PublishDate
: source.GetPublishDate(culture);
Expand All @@ -76,9 +77,9 @@ private void Map(IContent source, PublishedDocumentResponseModel target, MapperC
(culture, _, documentVariantViewModel) =>
{
documentVariantViewModel.Name = source.GetPublishName(culture) ?? documentVariantViewModel.Name;
DocumentVariantState variantState = DocumentVariantStateHelper.GetState(source, culture);
documentVariantViewModel.State = variantState == DocumentVariantState.PublishedPendingChanges
? DocumentVariantState.Published
PublishableVariantState variantState = PublishableVariantStateHelper.GetState(source, culture);
documentVariantViewModel.State = variantState == PublishableVariantState.PublishedPendingChanges
? PublishableVariantState.Published
: variantState;
documentVariantViewModel.PublishDate = culture == null
? source.PublishDate
Expand Down Expand Up @@ -113,7 +114,7 @@ private void Map(IContent source, DocumentCollectionResponseModel target, Mapper
source,
(culture, _, documentVariantViewModel) =>
{
documentVariantViewModel.State = DocumentVariantStateHelper.GetState(source, culture);
documentVariantViewModel.State = PublishableVariantStateHelper.GetState(source, culture);
documentVariantViewModel.PublishDate = culture == null
? source.PublishDate
: source.GetPublishDate(culture);
Expand All @@ -131,7 +132,7 @@ private void Map(IContent source, DocumentBlueprintResponseModel target, MapperC
source,
(culture, _, documentVariantViewModel) =>
{
documentVariantViewModel.State = DocumentVariantState.Draft;
documentVariantViewModel.State = PublishableVariantState.Draft;
});
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ private void Map(IContent source, DocumentVersionResponseModel target, MapperCon
source,
(culture, _, documentVariantViewModel) =>
{
documentVariantViewModel.State = DocumentVariantStateHelper.GetState(source, culture);
documentVariantViewModel.State = PublishableVariantStateHelper.GetState(source, culture);
documentVariantViewModel.PublishDate = culture == null
? source.PublishDate
: source.GetPublishDate(culture);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ private void Map(IElement source, ElementResponseModel target, MapperContext con
source,
(culture, _, documentVariantViewModel) =>
{
documentVariantViewModel.State = DocumentVariantStateHelper.GetState(source, culture);
documentVariantViewModel.State = PublishableVariantStateHelper.GetState(source, culture);
documentVariantViewModel.PublishDate = culture == null
? source.PublishDate
: source.GetPublishDate(culture);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ private void Map(IElement source, ElementVersionResponseModel target, MapperCont
source,
(culture, _, documentVariantViewModel) =>
{
documentVariantViewModel.State = DocumentVariantStateHelper.GetState(source, culture);
documentVariantViewModel.State = PublishableVariantStateHelper.GetState(source, culture);
documentVariantViewModel.PublishDate = culture == null
? source.PublishDate
: source.GetPublishDate(culture);
Expand Down
26 changes: 13 additions & 13 deletions src/Umbraco.Cms.Api.Management/OpenApi.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using Umbraco.Cms.Api.Management.ViewModels;
using Umbraco.Cms.Api.Management.ViewModels.Content;
using Umbraco.Cms.Api.Management.ViewModels.Document;
using Umbraco.Cms.Api.Management.ViewModels.Element;
using Umbraco.Cms.Core;
Expand Down Expand Up @@ -26,7 +27,7 @@ public Task PopulateFlagsAsync<TItem>(IEnumerable<TItem> items)
{
foreach (TItem item in items)
{
DocumentVariantState? state = item switch
PublishableVariantState? state = item switch
{
DocumentVariantItemResponseModel variant => variant.State,
DocumentVariantResponseModel variant => variant.State,
Expand All @@ -35,7 +36,7 @@ public Task PopulateFlagsAsync<TItem>(IEnumerable<TItem> items)
_ => null,
};

if (state == DocumentVariantState.PublishedPendingChanges)
if (state == PublishableVariantState.PublishedPendingChanges)
{
item.AddFlag(Alias);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,5 +32,5 @@ public IEnumerable<FlagModel> Flags
/// <summary>
/// Gets or sets the publish state of the variant.
/// </summary>
public required DocumentVariantState State { get; set; }
public required PublishableVariantState State { get; set; }
}
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public IEnumerable<FlagModel> Flags
/// <summary>
/// Gets or sets the publish state of the variant.
/// </summary>
public DocumentVariantState State { get; set; }
public PublishableVariantState State { get; set; }

/// <summary>
/// Gets or sets the date the variant was published.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
namespace Umbraco.Cms.Api.Management.ViewModels.Document;
namespace Umbraco.Cms.Api.Management.ViewModels.Content;

/// <summary>
/// The saved state of a content item
/// </summary>
// TODO ELEMENTS: move this to ViewModels.Content and rename it to VariantState or ContentVariantState (shared between document and element variants)
public enum DocumentVariantState
public enum PublishableVariantState
{
/// <summary>
/// The item isn't created yet
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ public ContentCacheRefresher(
// TODO: Ideally we should inject IElementsCache
// this interface is in infrastructure, and changing this is very breaking
// so as long as we have the cache manager, which casts the IElementsCache to a simple AppCache we might as well use that.
// see also ElementCacheRefresher.
_cacheManager = cacheManager;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,10 @@ public ElementCacheRefresher(
_elementCacheService = elementCacheService;
_publishStatusManagementService = publishStatusManagementService;

// TODO ELEMENTS: Use IElementsCache instead of ICacheManager, see ContentCacheRefresher for more information.
// TODO: Ideally we should inject IElementsCache
// this interface is in infrastructure, and changing this is very breaking
// so as long as we have the cache manager, which casts the IElementsCache to a simple AppCache we might as well use that.
// see also ContentCacheRefresher.
_cacheManager = cacheManager;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,22 +8,21 @@

namespace Umbraco.Cms.Core.PropertyEditors.ValueConverters;

public class ElementPickerValueConverter : PropertyValueConverterBase, IDeliveryApiPropertyValueConverter
internal sealed class ElementPickerValueConverter : PropertyValueConverterBase, IDeliveryApiPropertyValueConverter
{
private readonly IJsonSerializer _jsonSerializer;
// TODO ELEMENTS: this needs replacing with IPublishedElementCache when #22369 is merged
private readonly IElementCacheService _elementCacheService;
private readonly IPublishedElementCache _publishedElementCache;
private readonly IVariationContextAccessor _variationContextAccessor;
private readonly IApiElementBuilder _apiElementBuilder;

public ElementPickerValueConverter(
IJsonSerializer jsonSerializer,
IElementCacheService elementCacheService,
IPublishedElementCache publishedElementCache,
IVariationContextAccessor variationContextAccessor,
IApiElementBuilder apiElementBuilder)
{
_jsonSerializer = jsonSerializer;
_elementCacheService = elementCacheService;
_publishedElementCache = publishedElementCache;
_variationContextAccessor = variationContextAccessor;
_apiElementBuilder = apiElementBuilder;
}
Expand Down Expand Up @@ -75,7 +74,7 @@ public PropertyCacheLevel GetDeliveryApiPropertyCacheLevelForExpansion(IPublishe
}

IEnumerable<IPublishedElement> elements = keys
.Select(key => _elementCacheService.GetByKeyAsync(key, preview).GetAwaiter().GetResult())
.Select(key => _publishedElementCache.GetByIdAsync(key, preview).GetAwaiter().GetResult())
.WhereNotNull();

if (preview is false && _variationContextAccessor.VariationContext?.Culture is not null)
Expand Down
Loading
Loading