Browse Source

New status for graphql. (#741)

* New status for graphql.

* Build fix.
pull/743/head
Sebastian Stehle 4 years ago
committed by GitHub
parent
commit
9a9c337e68
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 28
      backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/ContentFields.cs
  2. 11
      backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/ContentGraphType.cs
  3. 3
      backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/ContentInterfaceGraphType.cs
  4. 16
      backend/tests/Squidex.Domain.Apps.Entities.Tests/Contents/GraphQL/TestContent.cs

28
backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/ContentFields.cs

@ -85,7 +85,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
Name = "status",
ResolvedType = AllTypes.NonNullString,
Resolver = Resolve(x => x.Status.ToString().ToUpperInvariant()),
Description = "The the status of the content."
Description = "The status of the content."
};
public static readonly FieldType StatusColor = new FieldType
@ -93,7 +93,23 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
Name = "statusColor",
ResolvedType = AllTypes.NonNullString,
Resolver = Resolve(x => x.StatusColor),
Description = "The color status of the content."
Description = "The status color of the content."
};
public static readonly FieldType NewStatus = new FieldType
{
Name = "newStatus",
ResolvedType = AllTypes.String,
Resolver = Resolve(x => x.NewStatus?.ToString().ToUpperInvariant()),
Description = "The new status of the content."
};
public static readonly FieldType NewStatusColor = new FieldType
{
Name = "newStatusColor",
ResolvedType = AllTypes.String,
Resolver = Resolve(x => x.NewStatusColor),
Description = "The new status color of the content."
};
public static readonly FieldType SchemaId = new FieldType
@ -104,6 +120,14 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
Description = "The id of the schema."
};
public static readonly FieldType Url = new FieldType
{
Name = "url",
ResolvedType = AllTypes.NonNullString,
Resolver = ContentResolvers.Url,
Description = "The url to the content."
};
private static IFieldResolver Resolve<T>(Func<JsonObject, T> resolver)
{
return Resolvers.Sync(resolver);

11
backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/ContentGraphType.cs

@ -44,14 +44,9 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
AddField(ContentFields.LastModifiedByUser);
AddField(ContentFields.Status);
AddField(ContentFields.StatusColor);
AddField(new FieldType
{
Name = "url",
ResolvedType = AllTypes.NonNullString,
Resolver = ContentResolvers.Url,
Description = "The url to the content."
});
AddField(ContentFields.NewStatus);
AddField(ContentFields.NewStatusColor);
AddField(ContentFields.Url);
var contentDataType = new DataGraphType(builder, schemaInfo);

3
backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/ContentInterfaceGraphType.cs

@ -24,6 +24,9 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
AddField(ContentFields.LastModifiedBy);
AddField(ContentFields.Status);
AddField(ContentFields.StatusColor);
AddField(ContentFields.NewStatus);
AddField(ContentFields.NewStatusColor);
AddField(ContentFields.Url);
Description = "The structure of all content types.";
}

16
backend/tests/Squidex.Domain.Apps.Entities.Tests/Contents/GraphQL/TestContent.cs

@ -34,6 +34,8 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL
}
status
statusColor
newStatus
newStatusColor
url
data {
myJson {
@ -113,6 +115,8 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL
}
status
statusColor
newStatus
newStatusColor
url
flatData {
myJson
@ -229,7 +233,9 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL
Data = data,
SchemaId = TestSchemas.DefaultId,
Status = Status.Draft,
StatusColor = "red"
StatusColor = "red",
NewStatus = Status.Published,
NewStatusColor = "blue"
};
return content;
@ -257,7 +263,9 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL
Data = data,
SchemaId = schemaId,
Status = Status.Draft,
StatusColor = "red"
StatusColor = "red",
NewStatus = Status.Published,
NewStatusColor = "blue"
};
return content;
@ -287,6 +295,8 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL
},
status = "DRAFT",
statusColor = "red",
newStatus = "PUBLISHED",
newStatusColor = "blue",
url = $"contents/my-schema/{content.Id}",
data = Data(content)
};
@ -316,6 +326,8 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL
},
status = "DRAFT",
statusColor = "red",
newStatus = "PUBLISHED",
newStatusColor = "blue",
url = $"contents/my-schema/{content.Id}",
flatData = FlatData(content)
};

Loading…
Cancel
Save