From 6ef3795ca30e76d42cb89451137fbd07fe6cc4fd Mon Sep 17 00:00:00 2001 From: Sebastian Stehle Date: Mon, 16 Apr 2018 19:34:05 +0200 Subject: [PATCH] Added status to graphql. --- .../Contents/GraphQL/Types/AllTypes.cs | 5 +++++ .../Contents/GraphQL/Types/ContentGraphType.cs | 8 ++++++++ .../Areas/Api/Controllers/Content/Models/ContentDto.cs | 2 +- .../Contents/GraphQL/GraphQLQueriesTests.cs | 6 ++++++ 4 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/AllTypes.cs b/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/AllTypes.cs index dac8e7e07..ff34568c9 100644 --- a/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/AllTypes.cs +++ b/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/AllTypes.cs @@ -7,6 +7,7 @@ using System; using GraphQL.Types; +using Squidex.Domain.Apps.Core.Contents; namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types { @@ -26,6 +27,8 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types public static readonly IGraphType Boolean = new BooleanGraphType(); + public static readonly IGraphType StatusType = new EnumerationGraphType(); + public static readonly IGraphType NonNullInt = new NonNullGraphType(new IntGraphType()); public static readonly IGraphType NonNullGuid = new NonNullGraphType(new GuidGraphType()); @@ -38,6 +41,8 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types public static readonly IGraphType NonNullBoolean = new NonNullGraphType(new BooleanGraphType()); + public static readonly IGraphType NonNullStatusType = new NonNullGraphType(new EnumerationGraphType()); + public static readonly IGraphType ListOfNonNullGuid = new ListGraphType(new NonNullGraphType(new GuidGraphType())); public static readonly IGraphType ListOfNonNullString = new ListGraphType(new NonNullGraphType(new StringGraphType())); diff --git a/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/ContentGraphType.cs b/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/ContentGraphType.cs index c23eaeaea..40990b9ad 100644 --- a/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/ContentGraphType.cs +++ b/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/ContentGraphType.cs @@ -70,6 +70,14 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types Description = $"The user that has updated the {schemaName} content last." }); + AddField(new FieldType + { + Name = "status", + ResolvedType = AllTypes.NonNullStatusType, + Resolver = Resolve(x => x.Status), + Description = $"The the status of the {schemaName} content." + }); + AddField(new FieldType { Name = "url", diff --git a/src/Squidex/Areas/Api/Controllers/Content/Models/ContentDto.cs b/src/Squidex/Areas/Api/Controllers/Content/Models/ContentDto.cs index 2be029606..897d75743 100644 --- a/src/Squidex/Areas/Api/Controllers/Content/Models/ContentDto.cs +++ b/src/Squidex/Areas/Api/Controllers/Content/Models/ContentDto.cs @@ -66,7 +66,7 @@ namespace Squidex.Areas.Api.Controllers.Contents.Models public Instant LastModified { get; set; } /// - /// Gets the status of the content. + /// The the status of the content. /// public Status Status { get; set; } diff --git a/tests/Squidex.Domain.Apps.Entities.Tests/Contents/GraphQL/GraphQLQueriesTests.cs b/tests/Squidex.Domain.Apps.Entities.Tests/Contents/GraphQL/GraphQLQueriesTests.cs index 9cb71fc72..669ea6d2f 100644 --- a/tests/Squidex.Domain.Apps.Entities.Tests/Contents/GraphQL/GraphQLQueriesTests.cs +++ b/tests/Squidex.Domain.Apps.Entities.Tests/Contents/GraphQL/GraphQLQueriesTests.cs @@ -249,6 +249,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL createdBy lastModified lastModifiedBy + status url data { myString { @@ -299,6 +300,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL createdBy = "subject:user1", lastModified = content.LastModified.ToDateTimeUtc(), lastModifiedBy = "subject:user2", + status = "DRAFT", url = $"contents/my-schema/{content.Id}", data = new { @@ -364,6 +366,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL createdBy lastModified lastModifiedBy + status url data { myString { @@ -418,6 +421,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL createdBy = "subject:user1", lastModified = content.LastModified.ToDateTimeUtc(), lastModifiedBy = "subject:user2", + status = "DRAFT", url = $"contents/my-schema/{content.Id}", data = new { @@ -485,6 +489,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL createdBy lastModified lastModifiedBy + status url data {{ myString {{ @@ -529,6 +534,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL createdBy = "subject:user1", lastModified = content.LastModified.ToDateTimeUtc(), lastModifiedBy = "subject:user2", + status = "DRAFT", url = $"contents/my-schema/{content.Id}", data = new {