From 596f5bf92c29114bb085bf69d4a5a4d37a8fe758 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 3 Dec 2019 22:10:36 +0100 Subject: [PATCH] Flag to not resolve languages. --- .../Contents/ContextExtensions.cs | 20 +++++++++++++++++++ .../Contents/Queries/ContentQueryService.cs | 5 ++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/backend/src/Squidex.Domain.Apps.Entities/Contents/ContextExtensions.cs b/backend/src/Squidex.Domain.Apps.Entities/Contents/ContextExtensions.cs index 0bae9a4bf..d8558de19 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Contents/ContextExtensions.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Contents/ContextExtensions.cs @@ -19,6 +19,7 @@ namespace Squidex.Domain.Apps.Entities.Contents private const string HeaderLanguages = "X-Languages"; private const string HeaderResolveFlow = "X-ResolveFlow"; private const string HeaderResolveAssetUrls = "X-Resolve-Urls"; + private const string HeaderNoResolveLanguage = "X-NoResolveLanguage"; private const string HeaderNoEnrichment = "X-NoEnrichment"; private static readonly char[] Separators = { ',', ';' }; @@ -98,6 +99,25 @@ namespace Squidex.Domain.Apps.Entities.Contents return context; } + public static bool IsNoResolveLanguage(this Context context) + { + return context.Headers.ContainsKey(HeaderNoResolveLanguage); + } + + public static Context WithNoResolveLanguage(this Context context, bool value = true) + { + if (value) + { + context.Headers[HeaderNoResolveLanguage] = "1"; + } + else + { + context.Headers.Remove(HeaderNoResolveLanguage); + } + + return context; + } + public static IEnumerable AssetUrls(this Context context) { if (context.Headers.TryGetValue(HeaderResolveAssetUrls, out var value)) diff --git a/backend/src/Squidex.Domain.Apps.Entities/Contents/Queries/ContentQueryService.cs b/backend/src/Squidex.Domain.Apps.Entities/Contents/Queries/ContentQueryService.cs index bdd029137..74d325195 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Contents/Queries/ContentQueryService.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Contents/Queries/ContentQueryService.cs @@ -224,7 +224,10 @@ namespace Squidex.Domain.Apps.Entities.Contents.Queries if (!context.IsFrontendClient) { - yield return FieldConverters.ResolveFallbackLanguages(context.App.LanguagesConfig); + if (!context.IsNoResolveLanguage()) + { + yield return FieldConverters.ResolveFallbackLanguages(context.App.LanguagesConfig); + } var languages = context.Languages();