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", Name = "status",
ResolvedType = AllTypes.NonNullString, ResolvedType = AllTypes.NonNullString,
Resolver = Resolve(x => x.Status.ToString().ToUpperInvariant()), 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 public static readonly FieldType StatusColor = new FieldType
@ -93,7 +93,23 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
Name = "statusColor", Name = "statusColor",
ResolvedType = AllTypes.NonNullString, ResolvedType = AllTypes.NonNullString,
Resolver = Resolve(x => x.StatusColor), 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 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." 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) private static IFieldResolver Resolve<T>(Func<JsonObject, T> resolver)
{ {
return Resolvers.Sync(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.LastModifiedByUser);
AddField(ContentFields.Status); AddField(ContentFields.Status);
AddField(ContentFields.StatusColor); AddField(ContentFields.StatusColor);
AddField(ContentFields.NewStatus);
AddField(new FieldType AddField(ContentFields.NewStatusColor);
{ AddField(ContentFields.Url);
Name = "url",
ResolvedType = AllTypes.NonNullString,
Resolver = ContentResolvers.Url,
Description = "The url to the content."
});
var contentDataType = new DataGraphType(builder, schemaInfo); 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.LastModifiedBy);
AddField(ContentFields.Status); AddField(ContentFields.Status);
AddField(ContentFields.StatusColor); AddField(ContentFields.StatusColor);
AddField(ContentFields.NewStatus);
AddField(ContentFields.NewStatusColor);
AddField(ContentFields.Url);
Description = "The structure of all content types."; 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 status
statusColor statusColor
newStatus
newStatusColor
url url
data { data {
myJson { myJson {
@ -113,6 +115,8 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL
} }
status status
statusColor statusColor
newStatus
newStatusColor
url url
flatData { flatData {
myJson myJson
@ -229,7 +233,9 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL
Data = data, Data = data,
SchemaId = TestSchemas.DefaultId, SchemaId = TestSchemas.DefaultId,
Status = Status.Draft, Status = Status.Draft,
StatusColor = "red" StatusColor = "red",
NewStatus = Status.Published,
NewStatusColor = "blue"
}; };
return content; return content;
@ -257,7 +263,9 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL
Data = data, Data = data,
SchemaId = schemaId, SchemaId = schemaId,
Status = Status.Draft, Status = Status.Draft,
StatusColor = "red" StatusColor = "red",
NewStatus = Status.Published,
NewStatusColor = "blue"
}; };
return content; return content;
@ -287,6 +295,8 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL
}, },
status = "DRAFT", status = "DRAFT",
statusColor = "red", statusColor = "red",
newStatus = "PUBLISHED",
newStatusColor = "blue",
url = $"contents/my-schema/{content.Id}", url = $"contents/my-schema/{content.Id}",
data = Data(content) data = Data(content)
}; };
@ -316,6 +326,8 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL
}, },
status = "DRAFT", status = "DRAFT",
statusColor = "red", statusColor = "red",
newStatus = "PUBLISHED",
newStatusColor = "blue",
url = $"contents/my-schema/{content.Id}", url = $"contents/my-schema/{content.Id}",
flatData = FlatData(content) flatData = FlatData(content)
}; };

Loading…
Cancel
Save