From 24225461aa070320a6594b25c2f805bcbca628af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Z=C3=A1hora?= Date: Wed, 27 Mar 2024 07:50:14 +0100 Subject: [PATCH] EN-125 Add due date to content item variant --- .../Data/LanguageVariant/LanguageVariant.json | 3 +++ .../Data/LanguageVariant/LanguageVariants.json | 6 ++++++ .../LanguageVariant/LanguageVariantsPage1.json | 6 ++++++ .../LanguageVariant/LanguageVariantsPage2.json | 6 ++++++ .../LanguageVariant/LanguageVariantsPage3.json | 9 +++++++++ .../LanguageVariantTests.cs | 5 +++++ .../LanguageVariants/DueDateResponseModel.cs | 16 ++++++++++++++++ .../LanguageVariants/LanguageVariantModel.cs | 6 ++++++ .../Models/StronglyTyped/LanguageVariantModel.cs | 7 +++++++ .../Modules/ModelBuilders/ModelProvider.cs | 3 ++- 10 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 Kontent.Ai.Management/Models/LanguageVariants/DueDateResponseModel.cs diff --git a/Kontent.Ai.Management.Tests/Data/LanguageVariant/LanguageVariant.json b/Kontent.Ai.Management.Tests/Data/LanguageVariant/LanguageVariant.json index d9abd1e9..437d1cb4 100644 --- a/Kontent.Ai.Management.Tests/Data/LanguageVariant/LanguageVariant.json +++ b/Kontent.Ai.Management.Tests/Data/LanguageVariant/LanguageVariant.json @@ -173,6 +173,9 @@ "id": "eee6db3b-545a-4785-8e86-e3772c8756f9" } }, + "due_date": { + "value": "2092-01-07T06:04:00.7069564Z" + }, "item": { "id": "4b628214-e4fe-4fe0-b1ff-955df33e1515" }, diff --git a/Kontent.Ai.Management.Tests/Data/LanguageVariant/LanguageVariants.json b/Kontent.Ai.Management.Tests/Data/LanguageVariant/LanguageVariants.json index 61cad92a..c0d816f8 100644 --- a/Kontent.Ai.Management.Tests/Data/LanguageVariant/LanguageVariants.json +++ b/Kontent.Ai.Management.Tests/Data/LanguageVariant/LanguageVariants.json @@ -174,6 +174,9 @@ "id": "eee6db3b-545a-4785-8e86-e3772c8756f9" } }, + "due_date": { + "value": "2092-01-07T06:04:00.7069564Z" + }, "item": { "id": "4b628214-e4fe-4fe0-b1ff-955df33e1515" }, @@ -357,6 +360,9 @@ "id": "eee6db3b-545a-4785-8e86-e3772c8756f9" } }, + "due_date": { + "value": "2092-01-07T06:04:00.7069564Z" + }, "item": { "id": "4b628214-e4fe-4fe0-b1ff-955df33e1515" }, diff --git a/Kontent.Ai.Management.Tests/Data/LanguageVariant/LanguageVariantsPage1.json b/Kontent.Ai.Management.Tests/Data/LanguageVariant/LanguageVariantsPage1.json index c262c561..faa8e867 100644 --- a/Kontent.Ai.Management.Tests/Data/LanguageVariant/LanguageVariantsPage1.json +++ b/Kontent.Ai.Management.Tests/Data/LanguageVariant/LanguageVariantsPage1.json @@ -175,6 +175,9 @@ "id": "eee6db3b-545a-4785-8e86-e3772c8756f9" } }, + "due_date": { + "value": "2092-01-07T06:04:00.7069564Z" + }, "item": { "id": "00000000-0000-0000-0000-000000000000" }, @@ -358,6 +361,9 @@ "id": "eee6db3b-545a-4785-8e86-e3772c8756f9" } }, + "due_date": { + "value": "2092-01-07T06:04:00.7069564Z" + }, "item": { "id": "00000000-0000-0000-0000-000000000000" }, diff --git a/Kontent.Ai.Management.Tests/Data/LanguageVariant/LanguageVariantsPage2.json b/Kontent.Ai.Management.Tests/Data/LanguageVariant/LanguageVariantsPage2.json index 9e3e6f77..9f87ed35 100644 --- a/Kontent.Ai.Management.Tests/Data/LanguageVariant/LanguageVariantsPage2.json +++ b/Kontent.Ai.Management.Tests/Data/LanguageVariant/LanguageVariantsPage2.json @@ -175,6 +175,9 @@ "id": "eee6db3b-545a-4785-8e86-e3772c8756f9" } }, + "due_date": { + "value": "2092-01-07T06:04:00.7069564Z" + }, "item": { "id": "10000000-0000-0000-0000-000000000000" }, @@ -358,6 +361,9 @@ "id": "eee6db3b-545a-4785-8e86-e3772c8756f9" } }, + "due_date": { + "value": "2092-01-07T06:04:00.7069564Z" + }, "item": { "id": "10000000-0000-0000-0000-000000000000" }, diff --git a/Kontent.Ai.Management.Tests/Data/LanguageVariant/LanguageVariantsPage3.json b/Kontent.Ai.Management.Tests/Data/LanguageVariant/LanguageVariantsPage3.json index 52dcac47..d1ba36db 100644 --- a/Kontent.Ai.Management.Tests/Data/LanguageVariant/LanguageVariantsPage3.json +++ b/Kontent.Ai.Management.Tests/Data/LanguageVariant/LanguageVariantsPage3.json @@ -175,6 +175,9 @@ "id": "eee6db3b-545a-4785-8e86-e3772c8756f9" } }, + "due_date": { + "value": "2092-01-07T06:04:00.7069564Z" + }, "item": { "id": "20000000-0000-0000-0000-000000000000" }, @@ -354,10 +357,16 @@ "workflow_identifier": { "id": "00000000-0000-0000-0000-000000000000" }, + "due_date": { + "value": "2092-01-07T06:04:00.7069564Z" + }, "step_identifier": { "id": "eee6db3b-545a-4785-8e86-e3772c8756f9" } }, + "due_date": { + "value": "2092-01-07T06:04:00.7069564Z" + }, "item": { "id": "20000000-0000-0000-0000-000000000000" }, diff --git a/Kontent.Ai.Management.Tests/ManagementClientTests/LanguageVariantTests.cs b/Kontent.Ai.Management.Tests/ManagementClientTests/LanguageVariantTests.cs index 93d4d63e..def819b7 100644 --- a/Kontent.Ai.Management.Tests/ManagementClientTests/LanguageVariantTests.cs +++ b/Kontent.Ai.Management.Tests/ManagementClientTests/LanguageVariantTests.cs @@ -437,6 +437,7 @@ private static LanguageVariantModel GetExpectedLanguageVariantModel( LastModified = DateTimeOffset.Parse("2021-11-06T13:57:26.7069564Z").UtcDateTime, Workflow = new WorkflowStepIdentifier(Reference.ById(Guid.Parse("00000000-0000-0000-0000-000000000000")), Reference.ById(Guid.Parse("eee6db3b-545a-4785-8e86-e3772c8756f9"))), Schedule = GetExpectedScheduleResponseModel(), + DueDate = GetExpectedDueDateModel(), Elements = ElementsData.GetExpectedDynamicElements(), }; @@ -450,6 +451,7 @@ private static List> GetExpectedComplexTe LastModified = DateTimeOffset.Parse("2021-11-06T13:57:26.7069564Z").UtcDateTime, Workflow = new WorkflowStepIdentifier(Reference.ById(Guid.Parse("00000000-0000-0000-0000-000000000000")), Reference.ById(Guid.Parse("eee6db3b-545a-4785-8e86-e3772c8756f9"))), Schedule = GetExpectedScheduleResponseModel(), + DueDate = GetExpectedDueDateModel(), Elements = ElementsData.GetExpectedStronglyTypedElementsModel(), }; @@ -461,6 +463,9 @@ private static List> GetExpectedComplexTe UnpublishDisplayTimeZone = "Europe/Prague" }; + private static DueDateResponseModel GetExpectedDueDateModel() => + new() { Value = DateTimeOffset.Parse("2092-01-07T06:04:00.7069564Z").UtcDateTime }; + private class CombinationOfIdentifiersAndUrl : IEnumerable { diff --git a/Kontent.Ai.Management/Models/LanguageVariants/DueDateResponseModel.cs b/Kontent.Ai.Management/Models/LanguageVariants/DueDateResponseModel.cs new file mode 100644 index 00000000..caa08f53 --- /dev/null +++ b/Kontent.Ai.Management/Models/LanguageVariants/DueDateResponseModel.cs @@ -0,0 +1,16 @@ +using Newtonsoft.Json; +using System; + +namespace Kontent.Ai.Management.Models.LanguageVariants; + +/// +/// Represents due date model. +/// +public class DueDateResponseModel +{ + /// + /// Gets or sets ISO-8601 formatted date-time for due date. + /// + [JsonProperty("value")] + public DateTime? Value { get; set; } +} \ No newline at end of file diff --git a/Kontent.Ai.Management/Models/LanguageVariants/LanguageVariantModel.cs b/Kontent.Ai.Management/Models/LanguageVariants/LanguageVariantModel.cs index fc2c7114..8c3c6aab 100644 --- a/Kontent.Ai.Management/Models/LanguageVariants/LanguageVariantModel.cs +++ b/Kontent.Ai.Management/Models/LanguageVariants/LanguageVariantModel.cs @@ -47,4 +47,10 @@ public sealed class LanguageVariantModel /// [JsonProperty("workflow")] public WorkflowStepIdentifier Workflow { get; set; } + + /// + /// Gets or sets due date. + /// + [JsonProperty("due_date")] + public DueDateResponseModel DueDate { get; set; } } diff --git a/Kontent.Ai.Management/Models/StronglyTyped/LanguageVariantModel.cs b/Kontent.Ai.Management/Models/StronglyTyped/LanguageVariantModel.cs index 6becc15d..81e62e5b 100644 --- a/Kontent.Ai.Management/Models/StronglyTyped/LanguageVariantModel.cs +++ b/Kontent.Ai.Management/Models/StronglyTyped/LanguageVariantModel.cs @@ -1,4 +1,5 @@ using Kontent.Ai.Management.Models.Publishing; +using Kontent.Ai.Management.Models.LanguageVariants; using Kontent.Ai.Management.Models.Shared; using Kontent.Ai.Management.Models.Workflow; using Newtonsoft.Json; @@ -46,4 +47,10 @@ namespace Kontent.Ai.Management.Models.StronglyTyped; /// [JsonProperty("workflow")] public WorkflowStepIdentifier Workflow { get; set; } + + /// + /// Gets or sets due date. + /// + [JsonProperty("due_date")] + public DueDateResponseModel DueDate { get; set; } } diff --git a/Kontent.Ai.Management/Modules/ModelBuilders/ModelProvider.cs b/Kontent.Ai.Management/Modules/ModelBuilders/ModelProvider.cs index 9e1c63a8..755af490 100644 --- a/Kontent.Ai.Management/Modules/ModelBuilders/ModelProvider.cs +++ b/Kontent.Ai.Management/Modules/ModelBuilders/ModelProvider.cs @@ -22,7 +22,8 @@ internal ModelProvider() LastModified = variant.LastModified, Schedule = variant.Schedule, Workflow = variant.Workflow, - Elements = _elementModelProvider.GetStronglyTypedElements(variant.Elements) + DueDate = variant.DueDate, + Elements = _elementModelProvider.GetStronglyTypedElements(variant.Elements), }; public LanguageVariantUpsertModel GetLanguageVariantUpsertModel(T variantElements, WorkflowStepIdentifier workflow = null) where T : new() =>