Browse Source

Fix graphql memory leak. (#883)

pull/885/head
Sebastian Stehle 4 years ago
committed by GitHub
parent
commit
5d9d74a100
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 12
      backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Assets/AssetActions.cs
  2. 50
      backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Assets/AssetGraphType.cs
  3. 2
      backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Assets/AssetsResultGraphType.cs
  4. 8
      backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Builder.cs
  5. 4
      backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/ComponentGraphType.cs
  6. 54
      backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/ContentActions.cs
  7. 28
      backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/ContentFields.cs
  8. 2
      backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/ContentGraphType.cs
  9. 2
      backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/ContentResultGraphType.cs
  10. 2
      backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/DataFlatGraphType.cs
  11. 2
      backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/DataGraphType.cs
  12. 22
      backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/FieldInputVisitor.cs
  13. 14
      backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/FieldVisitor.cs
  14. 2
      backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/NestedGraphType.cs
  15. 2
      backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Primitives/EntitySavedGraphType.cs
  16. 2
      backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Scalars.cs
  17. 4
      backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/SharedTypes.cs
  18. 6
      backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/UserGraphType.cs
  19. 5
      backend/src/Squidex/Squidex.csproj

12
backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Assets/AssetActions.cs

@ -20,7 +20,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Assets
{ {
public static readonly QueryArguments Arguments = new QueryArguments public static readonly QueryArguments Arguments = new QueryArguments
{ {
new QueryArgument(AllTypes.String) new QueryArgument(Scalars.String)
{ {
Name = "path", Name = "path",
Description = FieldDescriptions.JsonPath, Description = FieldDescriptions.JsonPath,
@ -46,7 +46,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Assets
{ {
public static readonly QueryArguments Arguments = new QueryArguments public static readonly QueryArguments Arguments = new QueryArguments
{ {
new QueryArgument(AllTypes.NonNullString) new QueryArgument(Scalars.NonNullString)
{ {
Name = "id", Name = "id",
Description = "The id of the asset (usually GUID).", Description = "The id of the asset (usually GUID).",
@ -67,25 +67,25 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Assets
{ {
public static readonly QueryArguments Arguments = new QueryArguments public static readonly QueryArguments Arguments = new QueryArguments
{ {
new QueryArgument(AllTypes.Int) new QueryArgument(Scalars.Int)
{ {
Name = "top", Name = "top",
Description = "Optional number of assets to take.", Description = "Optional number of assets to take.",
DefaultValue = null DefaultValue = null
}, },
new QueryArgument(AllTypes.Int) new QueryArgument(Scalars.Int)
{ {
Name = "skip", Name = "skip",
Description = "Optional number of assets to skip.", Description = "Optional number of assets to skip.",
DefaultValue = 0 DefaultValue = 0
}, },
new QueryArgument(AllTypes.String) new QueryArgument(Scalars.String)
{ {
Name = "filter", Name = "filter",
Description = "Optional OData filter.", Description = "Optional OData filter.",
DefaultValue = null DefaultValue = null
}, },
new QueryArgument(AllTypes.String) new QueryArgument(Scalars.String)
{ {
Name = "orderby", Name = "orderby",
Description = "Optional OData order definition.", Description = "Optional OData order definition.",

50
backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Assets/AssetGraphType.cs

@ -26,7 +26,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Assets
AddField(new FieldType AddField(new FieldType
{ {
Name = "id", Name = "id",
ResolvedType = AllTypes.NonNullString, ResolvedType = Scalars.NonNullString,
Resolver = EntityResolvers.Id, Resolver = EntityResolvers.Id,
Description = FieldDescriptions.EntityId Description = FieldDescriptions.EntityId
}); });
@ -34,7 +34,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Assets
AddField(new FieldType AddField(new FieldType
{ {
Name = "version", Name = "version",
ResolvedType = AllTypes.NonNullInt, ResolvedType = Scalars.NonNullInt,
Resolver = EntityResolvers.Version, Resolver = EntityResolvers.Version,
Description = FieldDescriptions.EntityVersion Description = FieldDescriptions.EntityVersion
}); });
@ -42,7 +42,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Assets
AddField(new FieldType AddField(new FieldType
{ {
Name = "created", Name = "created",
ResolvedType = AllTypes.NonNullDateTime, ResolvedType = Scalars.NonNullDateTime,
Resolver = EntityResolvers.Created, Resolver = EntityResolvers.Created,
Description = FieldDescriptions.EntityCreated Description = FieldDescriptions.EntityCreated
}); });
@ -50,7 +50,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Assets
AddField(new FieldType AddField(new FieldType
{ {
Name = "createdBy", Name = "createdBy",
ResolvedType = AllTypes.NonNullString, ResolvedType = Scalars.NonNullString,
Resolver = EntityResolvers.CreatedBy, Resolver = EntityResolvers.CreatedBy,
Description = FieldDescriptions.EntityCreatedBy Description = FieldDescriptions.EntityCreatedBy
}); });
@ -66,7 +66,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Assets
AddField(new FieldType AddField(new FieldType
{ {
Name = "lastModified", Name = "lastModified",
ResolvedType = AllTypes.NonNullDateTime, ResolvedType = Scalars.NonNullDateTime,
Resolver = EntityResolvers.LastModified, Resolver = EntityResolvers.LastModified,
Description = FieldDescriptions.EntityLastModified Description = FieldDescriptions.EntityLastModified
}); });
@ -74,7 +74,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Assets
AddField(new FieldType AddField(new FieldType
{ {
Name = "lastModifiedBy", Name = "lastModifiedBy",
ResolvedType = AllTypes.NonNullString, ResolvedType = Scalars.NonNullString,
Resolver = EntityResolvers.LastModifiedBy, Resolver = EntityResolvers.LastModifiedBy,
Description = FieldDescriptions.EntityLastModifiedBy Description = FieldDescriptions.EntityLastModifiedBy
}); });
@ -90,7 +90,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Assets
AddField(new FieldType AddField(new FieldType
{ {
Name = "mimeType", Name = "mimeType",
ResolvedType = AllTypes.NonNullString, ResolvedType = Scalars.NonNullString,
Resolver = Resolve(x => x.MimeType), Resolver = Resolve(x => x.MimeType),
Description = FieldDescriptions.AssetMimeType Description = FieldDescriptions.AssetMimeType
}); });
@ -98,7 +98,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Assets
AddField(new FieldType AddField(new FieldType
{ {
Name = "url", Name = "url",
ResolvedType = AllTypes.NonNullString, ResolvedType = Scalars.NonNullString,
Resolver = Url, Resolver = Url,
Description = FieldDescriptions.AssetUrl Description = FieldDescriptions.AssetUrl
}); });
@ -106,7 +106,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Assets
AddField(new FieldType AddField(new FieldType
{ {
Name = "thumbnailUrl", Name = "thumbnailUrl",
ResolvedType = AllTypes.String, ResolvedType = Scalars.String,
Resolver = ThumbnailUrl, Resolver = ThumbnailUrl,
Description = FieldDescriptions.AssetThumbnailUrl Description = FieldDescriptions.AssetThumbnailUrl
}); });
@ -114,7 +114,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Assets
AddField(new FieldType AddField(new FieldType
{ {
Name = "fileName", Name = "fileName",
ResolvedType = AllTypes.NonNullString, ResolvedType = Scalars.NonNullString,
Resolver = Resolve(x => x.FileName), Resolver = Resolve(x => x.FileName),
Description = FieldDescriptions.AssetFileName Description = FieldDescriptions.AssetFileName
}); });
@ -122,7 +122,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Assets
AddField(new FieldType AddField(new FieldType
{ {
Name = "fileHash", Name = "fileHash",
ResolvedType = AllTypes.NonNullString, ResolvedType = Scalars.NonNullString,
Resolver = Resolve(x => x.FileHash), Resolver = Resolve(x => x.FileHash),
Description = FieldDescriptions.AssetFileHash Description = FieldDescriptions.AssetFileHash
}); });
@ -130,7 +130,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Assets
AddField(new FieldType AddField(new FieldType
{ {
Name = "fileType", Name = "fileType",
ResolvedType = AllTypes.NonNullString, ResolvedType = Scalars.NonNullString,
Resolver = Resolve(x => x.FileName.FileType()), Resolver = Resolve(x => x.FileName.FileType()),
Description = FieldDescriptions.AssetFileType Description = FieldDescriptions.AssetFileType
}); });
@ -138,7 +138,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Assets
AddField(new FieldType AddField(new FieldType
{ {
Name = "fileSize", Name = "fileSize",
ResolvedType = AllTypes.NonNullInt, ResolvedType = Scalars.NonNullInt,
Resolver = Resolve(x => x.FileSize), Resolver = Resolve(x => x.FileSize),
Description = FieldDescriptions.AssetFileSize Description = FieldDescriptions.AssetFileSize
}); });
@ -146,7 +146,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Assets
AddField(new FieldType AddField(new FieldType
{ {
Name = "fileVersion", Name = "fileVersion",
ResolvedType = AllTypes.NonNullInt, ResolvedType = Scalars.NonNullInt,
Resolver = Resolve(x => x.FileVersion), Resolver = Resolve(x => x.FileVersion),
Description = FieldDescriptions.AssetFileVersion Description = FieldDescriptions.AssetFileVersion
}); });
@ -154,7 +154,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Assets
AddField(new FieldType AddField(new FieldType
{ {
Name = "slug", Name = "slug",
ResolvedType = AllTypes.NonNullString, ResolvedType = Scalars.NonNullString,
Resolver = Resolve(x => x.Slug), Resolver = Resolve(x => x.Slug),
Description = FieldDescriptions.AssetSlug Description = FieldDescriptions.AssetSlug
}); });
@ -162,7 +162,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Assets
AddField(new FieldType AddField(new FieldType
{ {
Name = "isProtected", Name = "isProtected",
ResolvedType = AllTypes.NonNullBoolean, ResolvedType = Scalars.NonNullBoolean,
Resolver = Resolve(x => x.IsProtected), Resolver = Resolve(x => x.IsProtected),
Description = FieldDescriptions.AssetIsProtected Description = FieldDescriptions.AssetIsProtected
}); });
@ -170,7 +170,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Assets
AddField(new FieldType AddField(new FieldType
{ {
Name = "isImage", Name = "isImage",
ResolvedType = AllTypes.NonNullBoolean, ResolvedType = Scalars.NonNullBoolean,
Resolver = Resolve(x => x.Type == AssetType.Image), Resolver = Resolve(x => x.Type == AssetType.Image),
Description = FieldDescriptions.AssetIsImage, Description = FieldDescriptions.AssetIsImage,
DeprecationReason = "Use 'type' field instead." DeprecationReason = "Use 'type' field instead."
@ -179,7 +179,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Assets
AddField(new FieldType AddField(new FieldType
{ {
Name = "pixelWidth", Name = "pixelWidth",
ResolvedType = AllTypes.Int, ResolvedType = Scalars.Int,
Resolver = Resolve(x => x.Metadata.GetPixelWidth()), Resolver = Resolve(x => x.Metadata.GetPixelWidth()),
Description = FieldDescriptions.AssetPixelWidth, Description = FieldDescriptions.AssetPixelWidth,
DeprecationReason = "Use 'metadata' field instead." DeprecationReason = "Use 'metadata' field instead."
@ -188,7 +188,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Assets
AddField(new FieldType AddField(new FieldType
{ {
Name = "pixelHeight", Name = "pixelHeight",
ResolvedType = AllTypes.Int, ResolvedType = Scalars.Int,
Resolver = Resolve(x => x.Metadata.GetPixelHeight()), Resolver = Resolve(x => x.Metadata.GetPixelHeight()),
Description = FieldDescriptions.AssetPixelHeight, Description = FieldDescriptions.AssetPixelHeight,
DeprecationReason = "Use 'metadata' field instead." DeprecationReason = "Use 'metadata' field instead."
@ -197,7 +197,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Assets
AddField(new FieldType AddField(new FieldType
{ {
Name = "type", Name = "type",
ResolvedType = AllTypes.NonNullAssetType, ResolvedType = Scalars.NonNullAssetType,
Resolver = Resolve(x => x.Type), Resolver = Resolve(x => x.Type),
Description = FieldDescriptions.AssetType Description = FieldDescriptions.AssetType
}); });
@ -205,7 +205,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Assets
AddField(new FieldType AddField(new FieldType
{ {
Name = "metadataText", Name = "metadataText",
ResolvedType = AllTypes.NonNullString, ResolvedType = Scalars.NonNullString,
Resolver = Resolve(x => x.MetadataText), Resolver = Resolve(x => x.MetadataText),
Description = FieldDescriptions.AssetMetadataText Description = FieldDescriptions.AssetMetadataText
}); });
@ -213,7 +213,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Assets
AddField(new FieldType AddField(new FieldType
{ {
Name = "tags", Name = "tags",
ResolvedType = AllTypes.NonNullStrings, ResolvedType = Scalars.NonNullStrings,
Resolver = Resolve(x => x.TagNames), Resolver = Resolve(x => x.TagNames),
Description = FieldDescriptions.AssetTags Description = FieldDescriptions.AssetTags
}); });
@ -222,7 +222,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Assets
{ {
Name = "metadata", Name = "metadata",
Arguments = AssetActions.Metadata.Arguments, Arguments = AssetActions.Metadata.Arguments,
ResolvedType = AllTypes.JsonNoop, ResolvedType = Scalars.JsonNoop,
Resolver = AssetActions.Metadata.Resolver, Resolver = AssetActions.Metadata.Resolver,
Description = FieldDescriptions.AssetMetadata Description = FieldDescriptions.AssetMetadata
}); });
@ -230,7 +230,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Assets
AddField(new FieldType AddField(new FieldType
{ {
Name = "editToken", Name = "editToken",
ResolvedType = AllTypes.String, ResolvedType = Scalars.String,
Resolver = Resolve(x => x.EditToken), Resolver = Resolve(x => x.EditToken),
Description = FieldDescriptions.EditToken Description = FieldDescriptions.EditToken
}); });
@ -238,7 +238,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Assets
AddField(new FieldType AddField(new FieldType
{ {
Name = "sourceUrl", Name = "sourceUrl",
ResolvedType = AllTypes.NonNullString, ResolvedType = Scalars.NonNullString,
Resolver = SourceUrl, Resolver = SourceUrl,
Description = FieldDescriptions.AssetSourceUrl Description = FieldDescriptions.AssetSourceUrl
}); });

2
backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Assets/AssetsResultGraphType.cs

@ -23,7 +23,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Assets
AddField(new FieldType AddField(new FieldType
{ {
Name = "total", Name = "total",
ResolvedType = AllTypes.NonNullInt, ResolvedType = Scalars.NonNullInt,
Resolver = ResolveList(x => x.Total), Resolver = ResolveList(x => x.Total),
Description = FieldDescriptions.AssetsTotal Description = FieldDescriptions.AssetsTotal
}); });

8
backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Builder.cs

@ -36,6 +36,10 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types
ValueConverter.Register<string, Status>(x => new Status(x)); ValueConverter.Register<string, Status>(x => new Status(x));
} }
public IInterfaceGraphType ContentInterface { get; } = new ContentInterfaceGraphType();
public IInterfaceGraphType ComponentInterface { get; } = new ComponentInterfaceGraphType();
public Builder(IAppEntity app) public Builder(IAppEntity app)
{ {
partitionResolver = app.PartitionResolver(); partitionResolver = app.PartitionResolver();
@ -72,8 +76,8 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types
Query = new AppQueriesGraphType(this, schemaInfos) Query = new AppQueriesGraphType(this, schemaInfos)
}; };
newSchema.RegisterType(SharedTypes.ComponentInterface); newSchema.RegisterType(ComponentInterface);
newSchema.RegisterType(SharedTypes.ContentInterface); newSchema.RegisterType(ContentInterface);
newSchema.Directives.Register(SharedTypes.MemoryCacheDirective); newSchema.Directives.Register(SharedTypes.MemoryCacheDirective);

4
backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/ComponentGraphType.cs

@ -36,7 +36,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
{ {
Name = fieldInfo.FieldNameDynamic, Name = fieldInfo.FieldNameDynamic,
Arguments = ContentActions.Json.Arguments, Arguments = ContentActions.Json.Arguments,
ResolvedType = AllTypes.Json, ResolvedType = Scalars.Json,
Resolver = FieldVisitor.JsonPath, Resolver = FieldVisitor.JsonPath,
Description = fieldInfo.Field.RawProperties.Hints Description = fieldInfo.Field.RawProperties.Hints
}).WithSourceName(fieldInfo); }).WithSourceName(fieldInfo);
@ -57,7 +57,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
} }
} }
AddResolvedInterface(SharedTypes.ComponentInterface); AddResolvedInterface(builder.ComponentInterface);
} }
private static Func<object, bool> CheckType(string schemaId) private static Func<object, bool> CheckType(string schemaId)

54
backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/ContentActions.cs

@ -26,7 +26,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
{ {
public static readonly QueryArguments Arguments = new QueryArguments public static readonly QueryArguments Arguments = new QueryArguments
{ {
new QueryArgument(AllTypes.String) new QueryArgument(Scalars.String)
{ {
Name = "path", Name = "path",
Description = FieldDescriptions.JsonPath, Description = FieldDescriptions.JsonPath,
@ -51,7 +51,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
public static readonly QueryArguments JsonPath = new QueryArguments public static readonly QueryArguments JsonPath = new QueryArguments
{ {
new QueryArgument(AllTypes.String) new QueryArgument(Scalars.String)
{ {
Name = "path", Name = "path",
Description = FieldDescriptions.JsonPath, Description = FieldDescriptions.JsonPath,
@ -63,13 +63,13 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
{ {
public static readonly QueryArguments Arguments = new QueryArguments public static readonly QueryArguments Arguments = new QueryArguments
{ {
new QueryArgument(AllTypes.NonNullString) new QueryArgument(Scalars.NonNullString)
{ {
Name = "id", Name = "id",
Description = FieldDescriptions.EntityId, Description = FieldDescriptions.EntityId,
DefaultValue = null DefaultValue = null
}, },
new QueryArgument(AllTypes.Int) new QueryArgument(Scalars.Int)
{ {
Name = "version", Name = "version",
Description = FieldDescriptions.QueryVersion, Description = FieldDescriptions.QueryVersion,
@ -101,31 +101,31 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
{ {
public static readonly QueryArguments Arguments = new QueryArguments public static readonly QueryArguments Arguments = new QueryArguments
{ {
new QueryArgument(AllTypes.Int) new QueryArgument(Scalars.Int)
{ {
Name = "top", Name = "top",
Description = FieldDescriptions.QueryTop, Description = FieldDescriptions.QueryTop,
DefaultValue = null DefaultValue = null
}, },
new QueryArgument(AllTypes.Int) new QueryArgument(Scalars.Int)
{ {
Name = "skip", Name = "skip",
Description = FieldDescriptions.QuerySkip, Description = FieldDescriptions.QuerySkip,
DefaultValue = 0 DefaultValue = 0
}, },
new QueryArgument(AllTypes.String) new QueryArgument(Scalars.String)
{ {
Name = "filter", Name = "filter",
Description = FieldDescriptions.QueryFilter, Description = FieldDescriptions.QueryFilter,
DefaultValue = null DefaultValue = null
}, },
new QueryArgument(AllTypes.String) new QueryArgument(Scalars.String)
{ {
Name = "orderby", Name = "orderby",
Description = FieldDescriptions.QueryOrderBy, Description = FieldDescriptions.QueryOrderBy,
DefaultValue = null DefaultValue = null
}, },
new QueryArgument(AllTypes.String) new QueryArgument(Scalars.String)
{ {
Name = "search", Name = "search",
Description = FieldDescriptions.QuerySearch, Description = FieldDescriptions.QuerySearch,
@ -206,19 +206,19 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
Description = FieldDescriptions.ContentRequestData, Description = FieldDescriptions.ContentRequestData,
DefaultValue = null DefaultValue = null
}, },
new QueryArgument(AllTypes.Boolean) new QueryArgument(Scalars.Boolean)
{ {
Name = "publish", Name = "publish",
Description = FieldDescriptions.ContentRequestPublish, Description = FieldDescriptions.ContentRequestPublish,
DefaultValue = false DefaultValue = false
}, },
new QueryArgument(AllTypes.String) new QueryArgument(Scalars.String)
{ {
Name = "status", Name = "status",
Description = FieldDescriptions.ContentRequestOptionalStatus, Description = FieldDescriptions.ContentRequestOptionalStatus,
DefaultValue = null DefaultValue = null
}, },
new QueryArgument(AllTypes.String) new QueryArgument(Scalars.String)
{ {
Name = "id", Name = "id",
Description = FieldDescriptions.ContentRequestOptionalId, Description = FieldDescriptions.ContentRequestOptionalId,
@ -259,7 +259,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
{ {
return new QueryArguments return new QueryArguments
{ {
new QueryArgument(AllTypes.NonNullString) new QueryArgument(Scalars.NonNullString)
{ {
Name = "id", Name = "id",
Description = FieldDescriptions.EntityId, Description = FieldDescriptions.EntityId,
@ -271,25 +271,25 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
Description = FieldDescriptions.ContentRequestData, Description = FieldDescriptions.ContentRequestData,
DefaultValue = null DefaultValue = null
}, },
new QueryArgument(AllTypes.Boolean) new QueryArgument(Scalars.Boolean)
{ {
Name = "publish", Name = "publish",
Description = FieldDescriptions.ContentRequestPublish, Description = FieldDescriptions.ContentRequestPublish,
DefaultValue = false DefaultValue = false
}, },
new QueryArgument(AllTypes.Boolean) new QueryArgument(Scalars.Boolean)
{ {
Name = "patch", Name = "patch",
Description = FieldDescriptions.ContentRequestPatch, Description = FieldDescriptions.ContentRequestPatch,
DefaultValue = false DefaultValue = false
}, },
new QueryArgument(AllTypes.String) new QueryArgument(Scalars.String)
{ {
Name = "status", Name = "status",
Description = FieldDescriptions.ContentRequestOptionalStatus, Description = FieldDescriptions.ContentRequestOptionalStatus,
DefaultValue = null DefaultValue = null
}, },
new QueryArgument(AllTypes.Int) new QueryArgument(Scalars.Int)
{ {
Name = "expectedVersion", Name = "expectedVersion",
Description = FieldDescriptions.EntityExpectedVersion, Description = FieldDescriptions.EntityExpectedVersion,
@ -326,7 +326,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
{ {
return new QueryArguments return new QueryArguments
{ {
new QueryArgument(AllTypes.String) new QueryArgument(Scalars.String)
{ {
Name = "id", Name = "id",
Description = FieldDescriptions.EntityId, Description = FieldDescriptions.EntityId,
@ -338,7 +338,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
Description = FieldDescriptions.ContentRequestData, Description = FieldDescriptions.ContentRequestData,
DefaultValue = null DefaultValue = null
}, },
new QueryArgument(AllTypes.Int) new QueryArgument(Scalars.Int)
{ {
Name = "expectedVersion", Name = "expectedVersion",
Description = FieldDescriptions.EntityExpectedVersion, Description = FieldDescriptions.EntityExpectedVersion,
@ -362,7 +362,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
{ {
return new QueryArguments return new QueryArguments
{ {
new QueryArgument(AllTypes.String) new QueryArgument(Scalars.String)
{ {
Name = "id", Name = "id",
Description = FieldDescriptions.EntityId, Description = FieldDescriptions.EntityId,
@ -374,7 +374,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
Description = FieldDescriptions.ContentRequestData, Description = FieldDescriptions.ContentRequestData,
DefaultValue = null DefaultValue = null
}, },
new QueryArgument(AllTypes.Int) new QueryArgument(Scalars.Int)
{ {
Name = "expectedVersion", Name = "expectedVersion",
Description = FieldDescriptions.EntityExpectedVersion, Description = FieldDescriptions.EntityExpectedVersion,
@ -396,25 +396,25 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
{ {
public static readonly QueryArguments Arguments = new QueryArguments public static readonly QueryArguments Arguments = new QueryArguments
{ {
new QueryArgument(AllTypes.NonNullString) new QueryArgument(Scalars.NonNullString)
{ {
Name = "id", Name = "id",
Description = FieldDescriptions.EntityId, Description = FieldDescriptions.EntityId,
DefaultValue = null DefaultValue = null
}, },
new QueryArgument(AllTypes.NonNullString) new QueryArgument(Scalars.NonNullString)
{ {
Name = "status", Name = "status",
Description = FieldDescriptions.ContentRequestStatus, Description = FieldDescriptions.ContentRequestStatus,
DefaultValue = null DefaultValue = null
}, },
new QueryArgument(AllTypes.DateTime) new QueryArgument(Scalars.DateTime)
{ {
Name = "dueTime", Name = "dueTime",
Description = FieldDescriptions.ContentRequestDueTime, Description = FieldDescriptions.ContentRequestDueTime,
DefaultValue = null DefaultValue = null
}, },
new QueryArgument(AllTypes.Int) new QueryArgument(Scalars.Int)
{ {
Name = "expectedVersion", Name = "expectedVersion",
Description = FieldDescriptions.EntityExpectedVersion, Description = FieldDescriptions.EntityExpectedVersion,
@ -436,13 +436,13 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
{ {
public static readonly QueryArguments Arguments = new QueryArguments public static readonly QueryArguments Arguments = new QueryArguments
{ {
new QueryArgument(AllTypes.NonNullString) new QueryArgument(Scalars.NonNullString)
{ {
Name = "id", Name = "id",
Description = "The id of the content (usually GUID).", Description = "The id of the content (usually GUID).",
DefaultValue = null DefaultValue = null
}, },
new QueryArgument(AllTypes.Int) new QueryArgument(Scalars.Int)
{ {
Name = "expectedVersion", Name = "expectedVersion",
Description = FieldDescriptions.EntityExpectedVersion, Description = FieldDescriptions.EntityExpectedVersion,

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

@ -38,7 +38,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
public static readonly FieldType Id = new FieldType public static readonly FieldType Id = new FieldType
{ {
Name = "id", Name = "id",
ResolvedType = AllTypes.NonNullString, ResolvedType = Scalars.NonNullString,
Resolver = EntityResolvers.Id, Resolver = EntityResolvers.Id,
Description = FieldDescriptions.EntityId Description = FieldDescriptions.EntityId
}; };
@ -46,7 +46,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
public static readonly FieldType Version = new FieldType public static readonly FieldType Version = new FieldType
{ {
Name = "version", Name = "version",
ResolvedType = AllTypes.NonNullInt, ResolvedType = Scalars.NonNullInt,
Resolver = EntityResolvers.Version, Resolver = EntityResolvers.Version,
Description = FieldDescriptions.EntityVersion Description = FieldDescriptions.EntityVersion
}; };
@ -54,7 +54,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
public static readonly FieldType Created = new FieldType public static readonly FieldType Created = new FieldType
{ {
Name = "created", Name = "created",
ResolvedType = AllTypes.NonNullDateTime, ResolvedType = Scalars.NonNullDateTime,
Resolver = EntityResolvers.Created, Resolver = EntityResolvers.Created,
Description = FieldDescriptions.EntityCreated Description = FieldDescriptions.EntityCreated
}; };
@ -62,7 +62,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
public static readonly FieldType CreatedBy = new FieldType public static readonly FieldType CreatedBy = new FieldType
{ {
Name = "createdBy", Name = "createdBy",
ResolvedType = AllTypes.NonNullString, ResolvedType = Scalars.NonNullString,
Resolver = EntityResolvers.CreatedBy, Resolver = EntityResolvers.CreatedBy,
Description = FieldDescriptions.EntityCreatedBy Description = FieldDescriptions.EntityCreatedBy
}; };
@ -78,7 +78,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
public static readonly FieldType LastModified = new FieldType public static readonly FieldType LastModified = new FieldType
{ {
Name = "lastModified", Name = "lastModified",
ResolvedType = AllTypes.NonNullDateTime, ResolvedType = Scalars.NonNullDateTime,
Resolver = EntityResolvers.LastModified, Resolver = EntityResolvers.LastModified,
Description = FieldDescriptions.EntityLastModified Description = FieldDescriptions.EntityLastModified
}; };
@ -86,7 +86,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
public static readonly FieldType LastModifiedBy = new FieldType public static readonly FieldType LastModifiedBy = new FieldType
{ {
Name = "lastModifiedBy", Name = "lastModifiedBy",
ResolvedType = AllTypes.NonNullString, ResolvedType = Scalars.NonNullString,
Resolver = EntityResolvers.LastModifiedBy, Resolver = EntityResolvers.LastModifiedBy,
Description = FieldDescriptions.EntityLastModifiedBy Description = FieldDescriptions.EntityLastModifiedBy
}; };
@ -102,7 +102,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
public static readonly FieldType Status = new FieldType public static readonly FieldType Status = new FieldType
{ {
Name = "status", Name = "status",
ResolvedType = AllTypes.NonNullString, ResolvedType = Scalars.NonNullString,
Resolver = Resolve(x => x.Status.ToString().ToUpperInvariant()), Resolver = Resolve(x => x.Status.ToString().ToUpperInvariant()),
Description = FieldDescriptions.ContentStatus Description = FieldDescriptions.ContentStatus
}; };
@ -110,7 +110,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
public static readonly FieldType StatusColor = new FieldType public static readonly FieldType StatusColor = new FieldType
{ {
Name = "statusColor", Name = "statusColor",
ResolvedType = AllTypes.NonNullString, ResolvedType = Scalars.NonNullString,
Resolver = Resolve(x => x.StatusColor), Resolver = Resolve(x => x.StatusColor),
Description = FieldDescriptions.ContentStatusColor Description = FieldDescriptions.ContentStatusColor
}; };
@ -118,7 +118,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
public static readonly FieldType NewStatus = new FieldType public static readonly FieldType NewStatus = new FieldType
{ {
Name = "newStatus", Name = "newStatus",
ResolvedType = AllTypes.String, ResolvedType = Scalars.String,
Resolver = Resolve(x => x.NewStatus?.ToString().ToUpperInvariant()), Resolver = Resolve(x => x.NewStatus?.ToString().ToUpperInvariant()),
Description = FieldDescriptions.ContentNewStatus Description = FieldDescriptions.ContentNewStatus
}; };
@ -126,7 +126,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
public static readonly FieldType NewStatusColor = new FieldType public static readonly FieldType NewStatusColor = new FieldType
{ {
Name = "newStatusColor", Name = "newStatusColor",
ResolvedType = AllTypes.String, ResolvedType = Scalars.String,
Resolver = Resolve(x => x.NewStatusColor), Resolver = Resolve(x => x.NewStatusColor),
Description = FieldDescriptions.ContentStatusColor Description = FieldDescriptions.ContentStatusColor
}; };
@ -134,7 +134,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
public static readonly FieldType SchemaId = new FieldType public static readonly FieldType SchemaId = new FieldType
{ {
Name = "schemaId", Name = "schemaId",
ResolvedType = AllTypes.NonNullString, ResolvedType = Scalars.NonNullString,
Resolver = Resolve(x => x[Component.Discriminator].ToString()), Resolver = Resolve(x => x[Component.Discriminator].ToString()),
Description = FieldDescriptions.ContentSchemaId Description = FieldDescriptions.ContentSchemaId
}; };
@ -142,7 +142,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
public static readonly FieldType Url = new FieldType public static readonly FieldType Url = new FieldType
{ {
Name = "url", Name = "url",
ResolvedType = AllTypes.NonNullString, ResolvedType = Scalars.NonNullString,
Resolver = ContentResolvers.Url, Resolver = ContentResolvers.Url,
Description = FieldDescriptions.ContentUrl Description = FieldDescriptions.ContentUrl
}; };
@ -150,7 +150,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
public static readonly FieldType EditToken = new FieldType public static readonly FieldType EditToken = new FieldType
{ {
Name = "editToken", Name = "editToken",
ResolvedType = AllTypes.String, ResolvedType = Scalars.String,
Resolver = Resolve(x => x.EditToken), Resolver = Resolve(x => x.EditToken),
Description = FieldDescriptions.EditToken Description = FieldDescriptions.EditToken
}; };
@ -158,7 +158,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
public static readonly FieldType StringFieldText = new FieldType public static readonly FieldType StringFieldText = new FieldType
{ {
Name = "text", Name = "text",
ResolvedType = AllTypes.String, ResolvedType = Scalars.String,
Resolver = Resolvers.Sync<string, string>(x => x), Resolver = Resolvers.Sync<string, string>(x => x),
Description = FieldDescriptions.StringFieldText Description = FieldDescriptions.StringFieldText
}; };

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

@ -80,7 +80,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
AddReferencesQueries(builder, other); AddReferencesQueries(builder, other);
} }
AddResolvedInterface(SharedTypes.ContentInterface); AddResolvedInterface(builder.ContentInterface);
Description = $"The structure of a {schemaInfo.DisplayName} content type."; Description = $"The structure of a {schemaInfo.DisplayName} content type.";
} }

2
backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/ContentResultGraphType.cs

@ -21,7 +21,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
AddField(new FieldType AddField(new FieldType
{ {
Name = "total", Name = "total",
ResolvedType = AllTypes.NonNullInt, ResolvedType = Scalars.NonNullInt,
Resolver = ContentResolvers.ListTotal, Resolver = ContentResolvers.ListTotal,
Description = FieldDescriptions.ContentsTotal Description = FieldDescriptions.ContentsTotal
}); });

2
backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/DataFlatGraphType.cs

@ -26,7 +26,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
{ {
Name = fieldInfo.FieldNameDynamic, Name = fieldInfo.FieldNameDynamic,
Arguments = ContentActions.Json.Arguments, Arguments = ContentActions.Json.Arguments,
ResolvedType = AllTypes.Json, ResolvedType = Scalars.Json,
Resolver = FieldVisitor.JsonPath, Resolver = FieldVisitor.JsonPath,
Description = fieldInfo.Field.RawProperties.Hints Description = fieldInfo.Field.RawProperties.Hints
}).WithSourceName(fieldInfo); }).WithSourceName(fieldInfo);

2
backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/DataGraphType.cs

@ -37,7 +37,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
{ {
Name = partitionKey.EscapePartition(), Name = partitionKey.EscapePartition(),
Arguments = ContentActions.Json.Arguments, Arguments = ContentActions.Json.Arguments,
ResolvedType = AllTypes.Json, ResolvedType = Scalars.Json,
Resolver = FieldVisitor.JsonPath, Resolver = FieldVisitor.JsonPath,
Description = fieldInfo.Field.RawProperties.Hints Description = fieldInfo.Field.RawProperties.Hints
}).WithSourceName(partitionKey); }).WithSourceName(partitionKey);

22
backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/FieldInputVisitor.cs

@ -36,52 +36,52 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
public IGraphType? Visit(IField<AssetsFieldProperties> field, FieldInfo args) public IGraphType? Visit(IField<AssetsFieldProperties> field, FieldInfo args)
{ {
return AllTypes.Strings; return Scalars.Strings;
} }
public IGraphType? Visit(IField<BooleanFieldProperties> field, FieldInfo args) public IGraphType? Visit(IField<BooleanFieldProperties> field, FieldInfo args)
{ {
return AllTypes.Boolean; return Scalars.Boolean;
} }
public IGraphType? Visit(IField<ComponentFieldProperties> field, FieldInfo args) public IGraphType? Visit(IField<ComponentFieldProperties> field, FieldInfo args)
{ {
return AllTypes.Json; return Scalars.Json;
} }
public IGraphType? Visit(IField<ComponentsFieldProperties> field, FieldInfo args) public IGraphType? Visit(IField<ComponentsFieldProperties> field, FieldInfo args)
{ {
return AllTypes.Json; return Scalars.Json;
} }
public IGraphType? Visit(IField<DateTimeFieldProperties> field, FieldInfo args) public IGraphType? Visit(IField<DateTimeFieldProperties> field, FieldInfo args)
{ {
return AllTypes.DateTime; return Scalars.DateTime;
} }
public IGraphType? Visit(IField<GeolocationFieldProperties> field, FieldInfo args) public IGraphType? Visit(IField<GeolocationFieldProperties> field, FieldInfo args)
{ {
return AllTypes.Json; return Scalars.Json;
} }
public IGraphType? Visit(IField<JsonFieldProperties> field, FieldInfo args) public IGraphType? Visit(IField<JsonFieldProperties> field, FieldInfo args)
{ {
return AllTypes.Json; return Scalars.Json;
} }
public IGraphType? Visit(IField<ReferencesFieldProperties> field, FieldInfo args) public IGraphType? Visit(IField<ReferencesFieldProperties> field, FieldInfo args)
{ {
return AllTypes.Strings; return Scalars.Strings;
} }
public IGraphType? Visit(IField<NumberFieldProperties> field, FieldInfo args) public IGraphType? Visit(IField<NumberFieldProperties> field, FieldInfo args)
{ {
return AllTypes.Float; return Scalars.Float;
} }
public IGraphType? Visit(IField<StringFieldProperties> field, FieldInfo args) public IGraphType? Visit(IField<StringFieldProperties> field, FieldInfo args)
{ {
var type = AllTypes.String; var type = Scalars.String;
if (field.Properties?.AllowedValues?.Count > 0 && field.Properties.CreateEnum) if (field.Properties?.AllowedValues?.Count > 0 && field.Properties.CreateEnum)
{ {
@ -98,7 +98,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
public IGraphType? Visit(IField<TagsFieldProperties> field, FieldInfo args) public IGraphType? Visit(IField<TagsFieldProperties> field, FieldInfo args)
{ {
var type = AllTypes.Strings; var type = Scalars.Strings;
if (field.Properties?.AllowedValues?.Count > 0 && field.Properties.CreateEnum) if (field.Properties?.AllowedValues?.Count > 0 && field.Properties.CreateEnum)
{ {

14
backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/FieldVisitor.cs

@ -126,7 +126,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
public FieldGraphSchema Visit(IField<BooleanFieldProperties> field, FieldInfo args) public FieldGraphSchema Visit(IField<BooleanFieldProperties> field, FieldInfo args)
{ {
return new (AllTypes.Boolean, JsonBoolean, null); return new (Scalars.Boolean, JsonBoolean, null);
} }
public FieldGraphSchema Visit(IField<ComponentFieldProperties> field, FieldInfo args) public FieldGraphSchema Visit(IField<ComponentFieldProperties> field, FieldInfo args)
@ -155,27 +155,27 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
public FieldGraphSchema Visit(IField<DateTimeFieldProperties> field, FieldInfo args) public FieldGraphSchema Visit(IField<DateTimeFieldProperties> field, FieldInfo args)
{ {
return new (AllTypes.DateTime, JsonDateTime, null); return new (Scalars.DateTime, JsonDateTime, null);
} }
public FieldGraphSchema Visit(IField<JsonFieldProperties> field, FieldInfo args) public FieldGraphSchema Visit(IField<JsonFieldProperties> field, FieldInfo args)
{ {
return new (AllTypes.Json, JsonPath, ContentActions.Json.Arguments); return new (Scalars.Json, JsonPath, ContentActions.Json.Arguments);
} }
public FieldGraphSchema Visit(IField<GeolocationFieldProperties> field, FieldInfo args) public FieldGraphSchema Visit(IField<GeolocationFieldProperties> field, FieldInfo args)
{ {
return new (AllTypes.Json, JsonPath, ContentActions.Json.Arguments); return new (Scalars.Json, JsonPath, ContentActions.Json.Arguments);
} }
public FieldGraphSchema Visit(IField<NumberFieldProperties> field, FieldInfo args) public FieldGraphSchema Visit(IField<NumberFieldProperties> field, FieldInfo args)
{ {
return new (AllTypes.Float, JsonNumber, null); return new (Scalars.Float, JsonNumber, null);
} }
public FieldGraphSchema Visit(IField<StringFieldProperties> field, FieldInfo args) public FieldGraphSchema Visit(IField<StringFieldProperties> field, FieldInfo args)
{ {
var type = AllTypes.String; var type = Scalars.String;
if (field.Properties.IsEmbeddable) if (field.Properties.IsEmbeddable)
{ {
@ -196,7 +196,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
public FieldGraphSchema Visit(IField<TagsFieldProperties> field, FieldInfo args) public FieldGraphSchema Visit(IField<TagsFieldProperties> field, FieldInfo args)
{ {
var type = AllTypes.Strings; var type = Scalars.Strings;
if (field.Properties?.AllowedValues?.Count > 0 && field.Properties.CreateEnum) if (field.Properties?.AllowedValues?.Count > 0 && field.Properties.CreateEnum)
{ {

2
backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Contents/NestedGraphType.cs

@ -26,7 +26,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Contents
{ {
Name = nestedFieldInfo.FieldNameDynamic, Name = nestedFieldInfo.FieldNameDynamic,
Arguments = ContentActions.Json.Arguments, Arguments = ContentActions.Json.Arguments,
ResolvedType = AllTypes.Json, ResolvedType = Scalars.Json,
Resolver = FieldVisitor.JsonPath, Resolver = FieldVisitor.JsonPath,
Description = nestedFieldInfo.Field.RawProperties.Hints Description = nestedFieldInfo.Field.RawProperties.Hints
}).WithSourceName(nestedFieldInfo); }).WithSourceName(nestedFieldInfo);

2
backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Primitives/EntitySavedGraphType.cs

@ -26,7 +26,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Primitives
{ {
Name = "version", Name = "version",
Resolver = ResolveVersion(), Resolver = ResolveVersion(),
ResolvedType = AllTypes.NonNullLong, ResolvedType = Scalars.NonNullLong,
Description = "The new version of the item." Description = "The new version of the item."
}); });

2
backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/AllTypes.cs → backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/Scalars.cs

@ -11,7 +11,7 @@ using Squidex.Domain.Apps.Entities.Contents.GraphQL.Types.Primitives;
namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types
{ {
public static class AllTypes public static class Scalars
{ {
public static readonly IGraphType Int = new IntGraphType(); public static readonly IGraphType Int = new IntGraphType();

4
backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/SharedTypes.cs

@ -20,10 +20,6 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types
public static readonly IGraphType AssetsResult = new AssetsResultGraphType(AssetsList); public static readonly IGraphType AssetsResult = new AssetsResultGraphType(AssetsList);
public static readonly IInterfaceGraphType ContentInterface = new ContentInterfaceGraphType();
public static readonly IInterfaceGraphType ComponentInterface = new ComponentInterfaceGraphType();
public static readonly CacheDirective MemoryCacheDirective = new CacheDirective(); public static readonly CacheDirective MemoryCacheDirective = new CacheDirective();
public static readonly FieldType FindAsset = new FieldType public static readonly FieldType FindAsset = new FieldType

6
backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/UserGraphType.cs

@ -28,7 +28,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types
{ {
Name = "id", Name = "id",
Resolver = Resolve(x => x.Id), Resolver = Resolve(x => x.Id),
ResolvedType = AllTypes.NonNullString, ResolvedType = Scalars.NonNullString,
Description = FieldDescriptions.UserId Description = FieldDescriptions.UserId
}); });
@ -36,7 +36,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types
{ {
Name = "displayName", Name = "displayName",
Resolver = Resolve(x => x.Claims.DisplayName()), Resolver = Resolve(x => x.Claims.DisplayName()),
ResolvedType = AllTypes.String, ResolvedType = Scalars.String,
Description = FieldDescriptions.UserDisplayName Description = FieldDescriptions.UserDisplayName
}); });
@ -44,7 +44,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types
{ {
Name = "email", Name = "email",
Resolver = Resolve(x => x.Email), Resolver = Resolve(x => x.Email),
ResolvedType = AllTypes.String, ResolvedType = Scalars.String,
Description = FieldDescriptions.UserEmail Description = FieldDescriptions.UserEmail
}); });

5
backend/src/Squidex/Squidex.csproj

@ -109,10 +109,12 @@
<EmbeddedResource Include="Pipeline\Squid\icon-sad-sm.svg" /> <EmbeddedResource Include="Pipeline\Squid\icon-sad-sm.svg" />
<EmbeddedResource Include="Pipeline\Squid\icon-sad.svg" /> <EmbeddedResource Include="Pipeline\Squid\icon-sad.svg" />
<EmbeddedResource Remove="Assets\**" /> <EmbeddedResource Remove="Assets\**" />
<EmbeddedResource Remove="wwwroot\build\**" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Remove="Assets\**" /> <Compile Remove="Assets\**" />
<Compile Remove="wwwroot\build\**" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
@ -125,15 +127,16 @@
<ItemGroup> <ItemGroup>
<None Remove="Assets\**" /> <None Remove="Assets\**" />
<None Remove="wwwroot\build\**" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Content Remove="Assets\**" /> <Content Remove="Assets\**" />
<Content Remove="wwwroot\build\**" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Folder Include="Areas\Frontend\Resources\" /> <Folder Include="Areas\Frontend\Resources\" />
<Folder Include="wwwroot\build\" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

Loading…
Cancel
Save