@webiny/api-headless-cms 0.0.0-unstable.aad28a72ae → 0.0.0-unstable.b14eaecf38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/context.d.ts +5 -2
- package/context.js +61 -23
- package/context.js.map +1 -1
- package/crud/contentEntry/afterDelete.js +0 -5
- package/crud/contentEntry/afterDelete.js.map +1 -1
- package/crud/contentEntry/beforeCreate.js +0 -3
- package/crud/contentEntry/beforeCreate.js.map +1 -1
- package/crud/contentEntry/beforeUpdate.js +0 -3
- package/crud/contentEntry/beforeUpdate.js.map +1 -1
- package/crud/contentEntry/entryDataValidation.js +1 -40
- package/crud/contentEntry/entryDataValidation.js.map +1 -1
- package/crud/contentEntry/markLockedFields.d.ts +1 -1
- package/crud/contentEntry/markLockedFields.js +15 -28
- package/crud/contentEntry/markLockedFields.js.map +1 -1
- package/crud/contentEntry/referenceFieldsMapping.js +5 -61
- package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
- package/crud/contentEntry/searchableFields.js +1 -12
- package/crud/contentEntry/searchableFields.js.map +1 -1
- package/crud/contentEntry.crud.d.ts +5 -2
- package/crud/contentEntry.crud.js +871 -936
- package/crud/contentEntry.crud.js.map +1 -1
- package/crud/contentModel/afterCreate.js +0 -2
- package/crud/contentModel/afterCreate.js.map +1 -1
- package/crud/contentModel/afterCreateFrom.js +0 -2
- package/crud/contentModel/afterCreateFrom.js.map +1 -1
- package/crud/contentModel/afterDelete.js +0 -2
- package/crud/contentModel/afterDelete.js.map +1 -1
- package/crud/contentModel/afterUpdate.js +0 -2
- package/crud/contentModel/afterUpdate.js.map +1 -1
- package/crud/contentModel/beforeCreate.d.ts +2 -3
- package/crud/contentModel/beforeCreate.js +43 -109
- package/crud/contentModel/beforeCreate.js.map +1 -1
- package/crud/contentModel/beforeDelete.d.ts +1 -1
- package/crud/contentModel/beforeDelete.js +1 -15
- package/crud/contentModel/beforeDelete.js.map +1 -1
- package/crud/contentModel/beforeUpdate.d.ts +2 -4
- package/crud/contentModel/beforeUpdate.js +33 -10
- package/crud/contentModel/beforeUpdate.js.map +1 -1
- package/crud/contentModel/compatibility/modelApiName.d.ts +3 -0
- package/crud/contentModel/compatibility/modelApiName.js +24 -0
- package/crud/contentModel/compatibility/modelApiName.js.map +1 -0
- package/crud/contentModel/contentModelManagerFactory.js +0 -7
- package/crud/contentModel/contentModelManagerFactory.js.map +1 -1
- package/crud/contentModel/createFieldStorageId.js +0 -3
- package/crud/contentModel/createFieldStorageId.js.map +1 -1
- package/crud/contentModel/defaultFields.d.ts +5 -0
- package/crud/contentModel/defaultFields.js +58 -0
- package/crud/contentModel/defaultFields.js.map +1 -0
- package/crud/contentModel/fields/descriptionField.d.ts +2 -0
- package/crud/contentModel/fields/descriptionField.js +42 -0
- package/crud/contentModel/fields/descriptionField.js.map +1 -0
- package/crud/contentModel/fields/imageField.d.ts +2 -0
- package/crud/contentModel/fields/imageField.js +46 -0
- package/crud/contentModel/fields/imageField.js.map +1 -0
- package/crud/contentModel/fields/titleField.d.ts +2 -0
- package/crud/contentModel/fields/titleField.js +58 -0
- package/crud/contentModel/fields/titleField.js.map +1 -0
- package/crud/contentModel/validate/endingAllowed.d.ts +6 -0
- package/crud/contentModel/validate/endingAllowed.js +26 -0
- package/crud/contentModel/validate/endingAllowed.js.map +1 -0
- package/crud/contentModel/validate/isModelEndingAllowed.d.ts +6 -0
- package/crud/contentModel/validate/isModelEndingAllowed.js +24 -0
- package/crud/contentModel/validate/isModelEndingAllowed.js.map +1 -0
- package/crud/contentModel/validate/modelId.d.ts +11 -0
- package/crud/contentModel/validate/modelId.js +36 -0
- package/crud/contentModel/validate/modelId.js.map +1 -0
- package/crud/contentModel/validate/pluralApiName.d.ts +7 -0
- package/crud/contentModel/validate/pluralApiName.js +24 -0
- package/crud/contentModel/validate/pluralApiName.js.map +1 -0
- package/crud/contentModel/validate/singularApiName.d.ts +7 -0
- package/crud/contentModel/validate/singularApiName.js +24 -0
- package/crud/contentModel/validate/singularApiName.js.map +1 -0
- package/crud/contentModel/validateLayout.js +0 -8
- package/crud/contentModel/validateLayout.js.map +1 -1
- package/crud/contentModel/validateModel.d.ts +4 -4
- package/crud/contentModel/validateModel.js +6 -11
- package/crud/contentModel/validateModel.js.map +1 -1
- package/crud/contentModel/validateModelFields.d.ts +4 -4
- package/crud/contentModel/validateModelFields.js +97 -126
- package/crud/contentModel/validateModelFields.js.map +1 -1
- package/crud/contentModel/validation.d.ts +551 -0
- package/crud/contentModel/validation.js +145 -0
- package/crud/contentModel/validation.js.map +1 -0
- package/crud/contentModel.crud.js +357 -391
- package/crud/contentModel.crud.js.map +1 -1
- package/crud/contentModelGroup/beforeCreate.js +0 -12
- package/crud/contentModelGroup/beforeCreate.js.map +1 -1
- package/crud/contentModelGroup/beforeDelete.js +0 -8
- package/crud/contentModelGroup/beforeDelete.js.map +1 -1
- package/crud/contentModelGroup/beforeUpdate.js +0 -5
- package/crud/contentModelGroup/beforeUpdate.js.map +1 -1
- package/crud/contentModelGroup/validation.d.ts +30 -0
- package/crud/contentModelGroup/validation.js +34 -0
- package/crud/contentModelGroup/validation.js.map +1 -0
- package/crud/contentModelGroup.crud.js +177 -221
- package/crud/contentModelGroup.crud.js.map +1 -1
- package/crud/settings.crud.d.ts +1 -1
- package/crud/settings.crud.js +5 -22
- package/crud/settings.crud.js.map +1 -1
- package/crud/system.crud.js +1 -96
- package/crud/system.crud.js.map +1 -1
- package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +0 -13
- package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -1
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +0 -36
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -1
- package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +0 -53
- package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -1
- package/fieldConverters/index.js +0 -5
- package/fieldConverters/index.js.map +1 -1
- package/graphql/buildSchemaPlugins.d.ts +8 -3
- package/graphql/buildSchemaPlugins.js +6 -14
- package/graphql/buildSchemaPlugins.js.map +1 -1
- package/graphql/checkEndpointAccess.d.ts +2 -0
- package/graphql/checkEndpointAccess.js +18 -0
- package/graphql/checkEndpointAccess.js.map +1 -0
- package/graphql/createExecutableSchema.d.ts +6 -0
- package/graphql/createExecutableSchema.js +29 -0
- package/graphql/createExecutableSchema.js.map +1 -0
- package/graphql/createRequestBody.d.ts +2 -0
- package/graphql/createRequestBody.js +14 -0
- package/graphql/createRequestBody.js.map +1 -0
- package/graphql/formatErrorPayload.d.ts +1 -0
- package/graphql/formatErrorPayload.js +25 -0
- package/graphql/formatErrorPayload.js.map +1 -0
- package/graphql/generateSchema.d.ts +8 -0
- package/graphql/generateSchema.js +31 -0
- package/graphql/generateSchema.js.map +1 -0
- package/graphql/getSchema.d.ts +17 -0
- package/graphql/getSchema.js +102 -0
- package/graphql/getSchema.js.map +1 -0
- package/graphql/graphQLHandlerFactory.js +8 -169
- package/graphql/graphQLHandlerFactory.js.map +1 -1
- package/graphql/handleRequest.d.ts +11 -0
- package/graphql/handleRequest.js +81 -0
- package/graphql/handleRequest.js.map +1 -0
- package/graphql/index.d.ts +1 -3
- package/graphql/index.js +2 -46
- package/graphql/index.js.map +1 -1
- package/graphql/schema/baseContentSchema.d.ts +6 -2
- package/graphql/schema/baseContentSchema.js +10 -20
- package/graphql/schema/baseContentSchema.js.map +1 -1
- package/graphql/schema/baseSchema.d.ts +3 -0
- package/graphql/schema/baseSchema.js +53 -0
- package/graphql/schema/baseSchema.js.map +1 -0
- package/graphql/schema/contentEntries.d.ts +6 -2
- package/graphql/schema/contentEntries.js +118 -107
- package/graphql/schema/contentEntries.js.map +1 -1
- package/graphql/schema/contentModelGroups.d.ts +6 -2
- package/graphql/schema/contentModelGroups.js +16 -29
- package/graphql/schema/contentModelGroups.js.map +1 -1
- package/graphql/schema/contentModels.d.ts +6 -2
- package/graphql/schema/contentModels.js +41 -24
- package/graphql/schema/contentModels.js.map +1 -1
- package/graphql/schema/createFieldResolvers.js +13 -24
- package/graphql/schema/createFieldResolvers.js.map +1 -1
- package/graphql/schema/createManageResolvers.d.ts +1 -1
- package/graphql/schema/createManageResolvers.js +33 -43
- package/graphql/schema/createManageResolvers.js.map +1 -1
- package/graphql/schema/createManageSDL.d.ts +3 -0
- package/graphql/schema/createManageSDL.js +61 -65
- package/graphql/schema/createManageSDL.js.map +1 -1
- package/graphql/schema/createPreviewResolvers.js +3 -17
- package/graphql/schema/createPreviewResolvers.js.map +1 -1
- package/graphql/schema/createReadResolvers.js +8 -17
- package/graphql/schema/createReadResolvers.js.map +1 -1
- package/graphql/schema/createReadSDL.d.ts +3 -0
- package/graphql/schema/createReadSDL.js +30 -34
- package/graphql/schema/createReadSDL.js.map +1 -1
- package/graphql/schema/resolvers/commonFieldResolvers.d.ts +3 -2
- package/graphql/schema/resolvers/commonFieldResolvers.js +2 -3
- package/graphql/schema/resolvers/commonFieldResolvers.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveCreate.js +0 -3
- package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveCreateFrom.js +0 -3
- package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveDelete.js +0 -6
- package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveGet.js +0 -16
- package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveGetByIds.js +0 -3
- package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveGetRevisions.js +0 -3
- package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveList.js +0 -3
- package/graphql/schema/resolvers/manage/resolveList.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolvePublish.js +0 -3
- package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveRepublish.js +0 -3
- package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveUnpublish.js +0 -3
- package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveUpdate.js +0 -3
- package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -1
- package/graphql/schema/resolvers/preview/resolveGet.js +0 -8
- package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
- package/graphql/schema/resolvers/preview/resolveList.js +0 -3
- package/graphql/schema/resolvers/preview/resolveList.js.map +1 -1
- package/graphql/schema/resolvers/read/resolveGet.js +0 -8
- package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
- package/graphql/schema/resolvers/read/resolveList.js +0 -3
- package/graphql/schema/resolvers/read/resolveList.js.map +1 -1
- package/graphql/schema/schemaPlugins.d.ts +8 -3
- package/graphql/schema/schemaPlugins.js +64 -66
- package/graphql/schema/schemaPlugins.js.map +1 -1
- package/graphql/system.js +55 -87
- package/graphql/system.js.map +1 -1
- package/graphqlFields/boolean.js +0 -12
- package/graphqlFields/boolean.js.map +1 -1
- package/graphqlFields/datetime.js +0 -17
- package/graphqlFields/datetime.js.map +1 -1
- package/graphqlFields/dynamicZone/dynamicZoneField.d.ts +1 -1
- package/graphqlFields/dynamicZone/dynamicZoneField.js +27 -33
- package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -1
- package/graphqlFields/dynamicZone/dynamicZoneStorage.js +2 -18
- package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +1 -1
- package/graphqlFields/dynamicZone/index.js +0 -2
- package/graphqlFields/dynamicZone/index.js.map +1 -1
- package/graphqlFields/file.js +0 -8
- package/graphqlFields/file.js.map +1 -1
- package/graphqlFields/helpers.js +0 -10
- package/graphqlFields/helpers.js.map +1 -1
- package/graphqlFields/index.js +0 -12
- package/graphqlFields/index.js.map +1 -1
- package/graphqlFields/longText.js +0 -10
- package/graphqlFields/longText.js.map +1 -1
- package/graphqlFields/number.js +0 -12
- package/graphqlFields/number.js.map +1 -1
- package/graphqlFields/object.js +22 -39
- package/graphqlFields/object.js.map +1 -1
- package/graphqlFields/ref.js +64 -66
- package/graphqlFields/ref.js.map +1 -1
- package/graphqlFields/richText.js +0 -9
- package/graphqlFields/richText.js.map +1 -1
- package/graphqlFields/text.js +0 -11
- package/graphqlFields/text.js.map +1 -1
- package/index.d.ts +5 -3
- package/index.js +26 -28
- package/index.js.map +1 -1
- package/modelManager/DefaultCmsModelManager.js +0 -16
- package/modelManager/DefaultCmsModelManager.js.map +1 -1
- package/modelManager/index.js +0 -4
- package/modelManager/index.js.map +1 -1
- package/package.json +26 -28
- package/parameters/context.js +0 -4
- package/parameters/context.js.map +1 -1
- package/parameters/header.js +0 -11
- package/parameters/header.js.map +1 -1
- package/parameters/index.js +0 -8
- package/parameters/index.js.map +1 -1
- package/parameters/manual.js +1 -8
- package/parameters/manual.js.map +1 -1
- package/parameters/path.js +0 -11
- package/parameters/path.js.map +1 -1
- package/plugins/CmsGraphQLSchemaPlugin.d.ts +5 -0
- package/plugins/CmsGraphQLSchemaPlugin.js +12 -0
- package/plugins/CmsGraphQLSchemaPlugin.js.map +1 -0
- package/plugins/CmsGraphQLSchemaSorterPlugin.d.ts +20 -0
- package/plugins/CmsGraphQLSchemaSorterPlugin.js +28 -0
- package/plugins/CmsGraphQLSchemaSorterPlugin.js.map +1 -0
- package/plugins/CmsGroupPlugin.js +0 -8
- package/plugins/CmsGroupPlugin.js.map +1 -1
- package/plugins/CmsModelFieldConverterPlugin.js +0 -5
- package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
- package/plugins/CmsModelPlugin.d.ts +19 -3
- package/plugins/CmsModelPlugin.js +30 -40
- package/plugins/CmsModelPlugin.js.map +1 -1
- package/plugins/CmsParametersPlugin.js +0 -7
- package/plugins/CmsParametersPlugin.js.map +1 -1
- package/plugins/StorageOperationsCmsModelPlugin.d.ts +23 -0
- package/plugins/StorageOperationsCmsModelPlugin.js +42 -0
- package/plugins/StorageOperationsCmsModelPlugin.js.map +1 -0
- package/plugins/StorageTransformPlugin.js +0 -9
- package/plugins/StorageTransformPlugin.js.map +1 -1
- package/plugins/index.d.ts +3 -0
- package/plugins/index.js +33 -10
- package/plugins/index.js.map +1 -1
- package/storage/default.js +0 -3
- package/storage/default.js.map +1 -1
- package/storage/object.js +0 -19
- package/storage/object.js.map +1 -1
- package/types.d.ts +173 -79
- package/types.js +23 -73
- package/types.js.map +1 -1
- package/utils/access.js +11 -25
- package/utils/access.js.map +1 -1
- package/utils/converters/Converter.js +0 -13
- package/utils/converters/Converter.js.map +1 -1
- package/utils/converters/ConverterCollection.js +9 -33
- package/utils/converters/ConverterCollection.js.map +1 -1
- package/utils/converters/valueKeyStorageConverter.d.ts +1 -5
- package/utils/converters/valueKeyStorageConverter.js +21 -44
- package/utils/converters/valueKeyStorageConverter.js.map +1 -1
- package/utils/createTypeFromFields.d.ts +1 -0
- package/utils/createTypeFromFields.js +11 -20
- package/utils/createTypeFromFields.js.map +1 -1
- package/utils/createTypeName.d.ts +0 -2
- package/utils/createTypeName.js +2 -19
- package/utils/createTypeName.js.map +1 -1
- package/utils/entryStorage.js +10 -26
- package/utils/entryStorage.js.map +1 -1
- package/utils/filterAsync.js +0 -5
- package/utils/filterAsync.js.map +1 -1
- package/utils/getBaseFieldType.js +0 -2
- package/utils/getBaseFieldType.js.map +1 -1
- package/utils/getEntryDescription.d.ts +2 -0
- package/utils/getEntryDescription.js +17 -0
- package/utils/getEntryDescription.js.map +1 -0
- package/utils/getEntryImage.d.ts +2 -0
- package/utils/getEntryImage.js +17 -0
- package/utils/getEntryImage.js.map +1 -0
- package/utils/getEntryTitle.js +0 -9
- package/utils/getEntryTitle.js.map +1 -1
- package/utils/getSchemaFromFieldPlugins.d.ts +4 -7
- package/utils/getSchemaFromFieldPlugins.js +23 -19
- package/utils/getSchemaFromFieldPlugins.js.map +1 -1
- package/utils/incrementEntryIdVersion.d.ts +5 -0
- package/utils/incrementEntryIdVersion.js +29 -0
- package/utils/incrementEntryIdVersion.js.map +1 -0
- package/utils/ownership.d.ts +3 -3
- package/utils/ownership.js +0 -8
- package/utils/ownership.js.map +1 -1
- package/utils/permissions.js +8 -23
- package/utils/permissions.js.map +1 -1
- package/utils/renderFields.d.ts +2 -1
- package/utils/renderFields.js +8 -10
- package/utils/renderFields.js.map +1 -1
- package/utils/renderGetFilterFields.js +0 -13
- package/utils/renderGetFilterFields.js.map +1 -1
- package/utils/renderInputFields.d.ts +2 -1
- package/utils/renderInputFields.js +4 -9
- package/utils/renderInputFields.js.map +1 -1
- package/utils/renderListFilterFields.js +1 -10
- package/utils/renderListFilterFields.js.map +1 -1
- package/utils/renderSortEnum.d.ts +7 -4
- package/utils/renderSortEnum.js +19 -11
- package/utils/renderSortEnum.js.map +1 -1
- package/utils/toSlug.js +0 -4
- package/utils/toSlug.js.map +1 -1
- package/validators/dateGte.js +0 -7
- package/validators/dateGte.js.map +1 -1
- package/validators/dateLte.js +0 -7
- package/validators/dateLte.js.map +1 -1
- package/validators/dynamicZone.js +0 -4
- package/validators/dynamicZone.js.map +1 -1
- package/validators/gte.js +0 -8
- package/validators/gte.js.map +1 -1
- package/validators/in.js +0 -8
- package/validators/in.js.map +1 -1
- package/validators/index.js +0 -16
- package/validators/index.js.map +1 -1
- package/validators/lte.js +0 -8
- package/validators/lte.js.map +1 -1
- package/validators/maxLength.js +0 -8
- package/validators/maxLength.js.map +1 -1
- package/validators/minLength.js +0 -8
- package/validators/minLength.js.map +1 -1
- package/validators/pattern.js +0 -9
- package/validators/pattern.js.map +1 -1
- package/validators/patternPlugins/email.js +0 -2
- package/validators/patternPlugins/email.js.map +1 -1
- package/validators/patternPlugins/index.js +0 -8
- package/validators/patternPlugins/index.js.map +1 -1
- package/validators/patternPlugins/lowerCase.js +0 -2
- package/validators/patternPlugins/lowerCase.js.map +1 -1
- package/validators/patternPlugins/lowerCaseSpace.js +0 -2
- package/validators/patternPlugins/lowerCaseSpace.js.map +1 -1
- package/validators/patternPlugins/upperCase.js +0 -2
- package/validators/patternPlugins/upperCase.js.map +1 -1
- package/validators/patternPlugins/upperCaseSpace.js +0 -2
- package/validators/patternPlugins/upperCaseSpace.js.map +1 -1
- package/validators/patternPlugins/url.js +0 -2
- package/validators/patternPlugins/url.js.map +1 -1
- package/validators/required.js +0 -5
- package/validators/required.js.map +1 -1
- package/validators/timeGte.js +0 -8
- package/validators/timeGte.js.map +1 -1
- package/validators/timeLte.js +0 -8
- package/validators/timeLte.js.map +1 -1
- package/validators/unique.js +0 -7
- package/validators/unique.js.map +1 -1
- package/crud/index.d.ts +0 -6
- package/crud/index.js +0 -85
- package/crud/index.js.map +0 -1
- package/utils/filterModelFields.d.ts +0 -16
- package/utils/filterModelFields.js +0 -77
- package/utils/filterModelFields.js.map +0 -1
|
@@ -1,24 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.createBaseContentSchema = void 0;
|
|
9
|
-
|
|
10
8
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
11
|
-
|
|
12
9
|
var _builtInTypes = require("@webiny/handler-graphql/builtInTypes");
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
10
|
+
var _plugins = require("../../plugins");
|
|
11
|
+
const createBaseContentSchema = ({
|
|
12
|
+
context
|
|
13
|
+
}) => {
|
|
17
14
|
const scalars = context.plugins.byType("graphql-scalar").map(item => item.scalar);
|
|
18
|
-
|
|
19
|
-
typeDefs:
|
|
20
|
-
/* GraphQL */
|
|
21
|
-
`
|
|
15
|
+
const plugin = new _plugins.CmsGraphQLSchemaPlugin({
|
|
16
|
+
typeDefs: /* GraphQL */`
|
|
22
17
|
${scalars.map(scalar => `scalar ${scalar.name}`).join(" ")}
|
|
23
18
|
scalar JSON
|
|
24
19
|
scalar Long
|
|
@@ -36,13 +31,7 @@ const createBaseContentSchema = context => {
|
|
|
36
31
|
_empty: String
|
|
37
32
|
}
|
|
38
33
|
|
|
39
|
-
type
|
|
40
|
-
id: String
|
|
41
|
-
displayName: String
|
|
42
|
-
type: String
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
type CmsOwnedBy {
|
|
34
|
+
type CmsIdentity {
|
|
46
35
|
id: String
|
|
47
36
|
displayName: String
|
|
48
37
|
type: String
|
|
@@ -59,7 +48,7 @@ const createBaseContentSchema = context => {
|
|
|
59
48
|
}, {})), {}, {
|
|
60
49
|
JSON: _builtInTypes.JsonScalar,
|
|
61
50
|
Long: _builtInTypes.LongScalar,
|
|
62
|
-
RefInput: _builtInTypes.
|
|
51
|
+
RefInput: _builtInTypes.RefInputScalar,
|
|
63
52
|
Number: _builtInTypes.NumberScalar,
|
|
64
53
|
Any: _builtInTypes.AnyScalar,
|
|
65
54
|
DateTime: _builtInTypes.DateTimeScalar,
|
|
@@ -71,6 +60,7 @@ const createBaseContentSchema = context => {
|
|
|
71
60
|
}
|
|
72
61
|
})
|
|
73
62
|
});
|
|
63
|
+
plugin.name = `headless-cms.graphql.schema.baseContentSchema`;
|
|
64
|
+
return plugin;
|
|
74
65
|
};
|
|
75
|
-
|
|
76
66
|
exports.createBaseContentSchema = createBaseContentSchema;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createBaseContentSchema","context","scalars","plugins","byType","map","item","scalar","
|
|
1
|
+
{"version":3,"names":["createBaseContentSchema","context","scalars","plugins","byType","map","item","scalar","plugin","CmsGraphQLSchemaPlugin","typeDefs","name","join","resolvers","reduce","acc","s","JSON","JsonScalar","Long","LongScalar","RefInput","RefInputScalar","Number","NumberScalar","Any","AnyScalar","DateTime","DateTimeScalar","DateTimeZ","DateTimeZScalar","Date","DateScalar","Time","TimeScalar","Mutation","_empty"],"sources":["baseContentSchema.ts"],"sourcesContent":["import { GraphQLScalarPlugin } from \"@webiny/handler-graphql/types\";\nimport { CmsContext } from \"~/types\";\nimport {\n RefInputScalar,\n NumberScalar,\n AnyScalar,\n DateTimeScalar,\n DateScalar,\n TimeScalar,\n LongScalar,\n JsonScalar,\n DateTimeZScalar\n} from \"@webiny/handler-graphql/builtInTypes\";\nimport { GraphQLScalarType } from \"graphql\";\nimport { CmsGraphQLSchemaPlugin } from \"~/plugins\";\n\ninterface Params {\n context: CmsContext;\n}\nexport const createBaseContentSchema = ({ context }: Params): CmsGraphQLSchemaPlugin => {\n const scalars = context.plugins\n .byType<GraphQLScalarPlugin>(\"graphql-scalar\")\n .map(item => item.scalar);\n\n const plugin = new CmsGraphQLSchemaPlugin({\n typeDefs: /* GraphQL */ `\n ${scalars.map(scalar => `scalar ${scalar.name}`).join(\" \")}\n scalar JSON\n scalar Long\n scalar RefInput\n scalar Number\n scalar Any\n scalar Date\n scalar DateTime\n scalar DateTimeZ\n scalar Time\n\n type Query\n\n type Mutation {\n _empty: String\n }\n\n type CmsIdentity {\n id: String\n displayName: String\n type: String\n }\n\n enum CmsEntryStatusType {\n latest\n published\n }\n `,\n resolvers: {\n ...scalars.reduce<Record<string, GraphQLScalarType>>((acc, s) => {\n acc[s.name] = s;\n return acc;\n }, {}),\n JSON: JsonScalar,\n Long: LongScalar,\n RefInput: RefInputScalar,\n Number: NumberScalar,\n Any: AnyScalar,\n DateTime: DateTimeScalar,\n DateTimeZ: DateTimeZScalar,\n Date: DateScalar,\n Time: TimeScalar,\n Mutation: {\n _empty: () => \"_empty\"\n }\n }\n });\n plugin.name = `headless-cms.graphql.schema.baseContentSchema`;\n\n return plugin;\n};\n"],"mappings":";;;;;;;;AAEA;AAYA;AAKO,MAAMA,uBAAuB,GAAG,CAAC;EAAEC;AAAgB,CAAC,KAA6B;EACpF,MAAMC,OAAO,GAAGD,OAAO,CAACE,OAAO,CAC1BC,MAAM,CAAsB,gBAAgB,CAAC,CAC7CC,GAAG,CAACC,IAAI,IAAIA,IAAI,CAACC,MAAM,CAAC;EAE7B,MAAMC,MAAM,GAAG,IAAIC,+BAAsB,CAAC;IACtCC,QAAQ,EAAE,aAAe;AACjC,cAAcR,OAAO,CAACG,GAAG,CAACE,MAAM,IAAK,UAASA,MAAM,CAACI,IAAK,EAAC,CAAC,CAACC,IAAI,CAAC,GAAG,CAAE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;IACDC,SAAS,8DACFX,OAAO,CAACY,MAAM,CAAoC,CAACC,GAAG,EAAEC,CAAC,KAAK;MAC7DD,GAAG,CAACC,CAAC,CAACL,IAAI,CAAC,GAAGK,CAAC;MACf,OAAOD,GAAG;IACd,CAAC,EAAE,CAAC,CAAC,CAAC;MACNE,IAAI,EAAEC,wBAAU;MAChBC,IAAI,EAAEC,wBAAU;MAChBC,QAAQ,EAAEC,4BAAc;MACxBC,MAAM,EAAEC,0BAAY;MACpBC,GAAG,EAAEC,uBAAS;MACdC,QAAQ,EAAEC,4BAAc;MACxBC,SAAS,EAAEC,6BAAe;MAC1BC,IAAI,EAAEC,wBAAU;MAChBC,IAAI,EAAEC,wBAAU;MAChBC,QAAQ,EAAE;QACNC,MAAM,EAAE,MAAM;MAClB;IAAC;EAET,CAAC,CAAC;EACF5B,MAAM,CAACG,IAAI,GAAI,+CAA8C;EAE7D,OAAOH,MAAM;AACjB,CAAC;AAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createBaseSchema = void 0;
|
|
7
|
+
var _plugins = require("../../plugins");
|
|
8
|
+
var _handlerGraphql = require("@webiny/handler-graphql");
|
|
9
|
+
const createBaseSchema = () => {
|
|
10
|
+
const cmsPlugin = new _plugins.CmsGraphQLSchemaPlugin({
|
|
11
|
+
typeDefs: /* GraphQL */`
|
|
12
|
+
type CmsError {
|
|
13
|
+
code: String
|
|
14
|
+
message: String
|
|
15
|
+
data: JSON
|
|
16
|
+
stack: String
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
type CmsCursors {
|
|
20
|
+
next: String
|
|
21
|
+
previous: String
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
type CmsListMeta {
|
|
25
|
+
cursor: String
|
|
26
|
+
hasMoreItems: Boolean
|
|
27
|
+
totalCount: Int
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
type CmsDeleteResponse {
|
|
31
|
+
data: Boolean
|
|
32
|
+
error: CmsError
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
type CmsBooleanResponse {
|
|
36
|
+
data: Boolean
|
|
37
|
+
error: CmsError
|
|
38
|
+
}
|
|
39
|
+
`,
|
|
40
|
+
resolvers: {}
|
|
41
|
+
});
|
|
42
|
+
cmsPlugin.name = "headless-cms.graphql.schema.base";
|
|
43
|
+
const corePlugin = new _handlerGraphql.GraphQLSchemaPlugin({
|
|
44
|
+
typeDefs: cmsPlugin.schema.typeDefs,
|
|
45
|
+
resolvers: cmsPlugin.schema.resolvers
|
|
46
|
+
});
|
|
47
|
+
corePlugin.name = "headless-cms.graphql.core.schema.base";
|
|
48
|
+
/**
|
|
49
|
+
* Due to splitting of CMS and Core schema plugins, we must have both defined for CMS to work.
|
|
50
|
+
*/
|
|
51
|
+
return [cmsPlugin, corePlugin];
|
|
52
|
+
};
|
|
53
|
+
exports.createBaseSchema = createBaseSchema;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createBaseSchema","cmsPlugin","CmsGraphQLSchemaPlugin","typeDefs","resolvers","name","corePlugin","GraphQLSchemaPlugin","schema"],"sources":["baseSchema.ts"],"sourcesContent":["import { CmsContext } from \"~/types\";\nimport { CmsGraphQLSchemaPlugin } from \"~/plugins\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql\";\n\nexport const createBaseSchema = (): GraphQLSchemaPlugin<CmsContext>[] => {\n const cmsPlugin = new CmsGraphQLSchemaPlugin({\n typeDefs: /* GraphQL */ `\n type CmsError {\n code: String\n message: String\n data: JSON\n stack: String\n }\n\n type CmsCursors {\n next: String\n previous: String\n }\n\n type CmsListMeta {\n cursor: String\n hasMoreItems: Boolean\n totalCount: Int\n }\n\n type CmsDeleteResponse {\n data: Boolean\n error: CmsError\n }\n\n type CmsBooleanResponse {\n data: Boolean\n error: CmsError\n }\n `,\n resolvers: {}\n });\n cmsPlugin.name = \"headless-cms.graphql.schema.base\";\n const corePlugin = new GraphQLSchemaPlugin<CmsContext>({\n typeDefs: cmsPlugin.schema.typeDefs,\n resolvers: cmsPlugin.schema.resolvers\n });\n corePlugin.name = \"headless-cms.graphql.core.schema.base\";\n /**\n * Due to splitting of CMS and Core schema plugins, we must have both defined for CMS to work.\n */\n return [cmsPlugin, corePlugin];\n};\n"],"mappings":";;;;;;AACA;AACA;AAEO,MAAMA,gBAAgB,GAAG,MAAyC;EACrE,MAAMC,SAAS,GAAG,IAAIC,+BAAsB,CAAC;IACzCC,QAAQ,EAAE,aAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;IACDC,SAAS,EAAE,CAAC;EAChB,CAAC,CAAC;EACFH,SAAS,CAACI,IAAI,GAAG,kCAAkC;EACnD,MAAMC,UAAU,GAAG,IAAIC,mCAAmB,CAAa;IACnDJ,QAAQ,EAAEF,SAAS,CAACO,MAAM,CAACL,QAAQ;IACnCC,SAAS,EAAEH,SAAS,CAACO,MAAM,CAACJ;EAChC,CAAC,CAAC;EACFE,UAAU,CAACD,IAAI,GAAG,uCAAuC;EACzD;AACJ;AACA;EACI,OAAO,CAACJ,SAAS,EAAEK,UAAU,CAAC;AAClC,CAAC;AAAC"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
import { CmsContext } from "../../types";
|
|
2
|
-
import {
|
|
3
|
-
|
|
2
|
+
import { CmsGraphQLSchemaPlugin } from "../../plugins";
|
|
3
|
+
interface Params {
|
|
4
|
+
context: CmsContext;
|
|
5
|
+
}
|
|
6
|
+
export declare const createContentEntriesSchema: ({ context }: Params) => CmsGraphQLSchemaPlugin<CmsContext>;
|
|
7
|
+
export {};
|
|
@@ -1,59 +1,71 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.createContentEntriesSchema = void 0;
|
|
9
|
-
|
|
8
|
+
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
10
9
|
var _handlerGraphql = require("@webiny/handler-graphql");
|
|
11
|
-
|
|
12
10
|
var _apiSecurity = require("@webiny/api-security");
|
|
13
|
-
|
|
14
|
-
var _GraphQLSchemaPlugin = require("@webiny/handler-graphql/plugins/GraphQLSchemaPlugin");
|
|
15
|
-
|
|
16
11
|
var _getEntryTitle = require("../../utils/getEntryTitle");
|
|
17
|
-
|
|
18
|
-
var
|
|
19
|
-
|
|
12
|
+
var _plugins = require("../../plugins");
|
|
13
|
+
var _getEntryDescription = require("../../utils/getEntryDescription");
|
|
14
|
+
var _getEntryImage = require("../../utils/getEntryImage");
|
|
15
|
+
var _entryStorage = require("../../utils/entryStorage");
|
|
16
|
+
const createDate = date => {
|
|
17
|
+
try {
|
|
18
|
+
return new Date(date);
|
|
19
|
+
} catch {}
|
|
20
|
+
return new Date();
|
|
21
|
+
};
|
|
22
|
+
const createCmsEntryRecord = (model, entry) => {
|
|
23
|
+
return {
|
|
24
|
+
id: entry.id,
|
|
25
|
+
entryId: entry.entryId,
|
|
26
|
+
model: {
|
|
27
|
+
modelId: model.modelId,
|
|
28
|
+
name: model.name
|
|
29
|
+
},
|
|
30
|
+
status: entry.status,
|
|
31
|
+
title: (0, _getEntryTitle.getEntryTitle)(model, entry),
|
|
32
|
+
description: (0, _getEntryDescription.getEntryDescription)(model, entry),
|
|
33
|
+
image: (0, _getEntryImage.getEntryImage)(model, entry),
|
|
34
|
+
createdBy: entry.createdBy,
|
|
35
|
+
modifiedBy: entry.modifiedBy,
|
|
36
|
+
createdOn: createDate(entry.createdOn),
|
|
37
|
+
savedOn: createDate(entry.savedOn)
|
|
38
|
+
};
|
|
39
|
+
};
|
|
20
40
|
const getFetchMethod = (type, context) => {
|
|
21
41
|
if (!getContentEntriesMethods[type]) {
|
|
22
42
|
throw new _error.default(`Unknown getContentEntries method "${type}". Could not fetch content entries.`, "UNKNOWN_METHOD_ERROR", {
|
|
23
43
|
type
|
|
24
44
|
});
|
|
25
45
|
}
|
|
26
|
-
|
|
27
46
|
const methodName = getContentEntriesMethods[type];
|
|
28
|
-
|
|
29
47
|
if (!context.cms[methodName]) {
|
|
30
48
|
throw new _error.default(`Unknown context.cms method "${methodName}". Could not fetch content entries.`, "UNKNOWN_METHOD_ERROR", {
|
|
31
49
|
type,
|
|
32
50
|
methodName
|
|
33
51
|
});
|
|
34
52
|
}
|
|
35
|
-
|
|
36
53
|
return context.cms[methodName];
|
|
37
54
|
};
|
|
38
55
|
/**
|
|
39
56
|
* Function to get the list of content entries depending on latest, published or exact GraphQL queries.
|
|
40
57
|
*/
|
|
41
|
-
|
|
42
|
-
|
|
43
58
|
var GetContentEntryMethods;
|
|
44
|
-
|
|
45
59
|
(function (GetContentEntryMethods) {
|
|
46
60
|
GetContentEntryMethods["getLatestEntriesByIds"] = "getLatestEntriesByIds";
|
|
47
61
|
GetContentEntryMethods["getPublishedEntriesByIds"] = "getPublishedEntriesByIds";
|
|
48
62
|
GetContentEntryMethods["getEntriesByIds"] = "getEntriesByIds";
|
|
49
63
|
})(GetContentEntryMethods || (GetContentEntryMethods = {}));
|
|
50
|
-
|
|
51
64
|
const getContentEntriesMethods = {
|
|
52
65
|
latest: "getLatestEntriesByIds",
|
|
53
66
|
published: "getPublishedEntriesByIds",
|
|
54
67
|
exact: "getEntriesByIds"
|
|
55
68
|
};
|
|
56
|
-
|
|
57
69
|
const getContentEntries = async params => {
|
|
58
70
|
const {
|
|
59
71
|
args,
|
|
@@ -73,55 +85,45 @@ const getContentEntries = async params => {
|
|
|
73
85
|
} else if (collection[ref.modelId].includes(ref.id)) {
|
|
74
86
|
return collection;
|
|
75
87
|
}
|
|
76
|
-
|
|
77
88
|
collection[ref.modelId].push(ref.id);
|
|
78
89
|
return collection;
|
|
79
90
|
}, {});
|
|
80
91
|
const getters = Object.keys(entriesByModel).map(async modelId => {
|
|
81
92
|
return method(modelsMap[modelId], entriesByModel[modelId]);
|
|
82
93
|
});
|
|
83
|
-
|
|
84
94
|
if (getters.length === 0) {
|
|
85
95
|
return new _handlerGraphql.Response([]);
|
|
86
96
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
status: item.status,
|
|
100
|
-
title: (0, _getEntryTitle.getEntryTitle)(model, item)
|
|
101
|
-
};
|
|
102
|
-
}));
|
|
103
|
-
}, []).filter(Boolean);
|
|
104
|
-
return new _handlerGraphql.Response(entries);
|
|
97
|
+
try {
|
|
98
|
+
const results = await Promise.all(getters);
|
|
99
|
+
const entries = results.reduce((collection, items) => {
|
|
100
|
+
return collection.concat(items.map(item => {
|
|
101
|
+
const model = modelsMap[item.modelId];
|
|
102
|
+
return createCmsEntryRecord(model, item);
|
|
103
|
+
}));
|
|
104
|
+
}, []).filter(Boolean);
|
|
105
|
+
return new _handlerGraphql.Response(entries);
|
|
106
|
+
} catch (ex) {
|
|
107
|
+
return new _handlerGraphql.ErrorResponse(ex);
|
|
108
|
+
}
|
|
105
109
|
};
|
|
110
|
+
|
|
106
111
|
/**
|
|
107
112
|
* Function to fetch a single content entry depending on latest, published or exact GraphQL query.
|
|
108
113
|
*/
|
|
109
114
|
|
|
110
|
-
|
|
111
115
|
const getContentEntry = async params => {
|
|
112
116
|
const {
|
|
113
117
|
args,
|
|
114
118
|
context,
|
|
115
119
|
type
|
|
116
120
|
} = params;
|
|
117
|
-
|
|
118
121
|
if (!getContentEntriesMethods[type]) {
|
|
119
122
|
throw new _error.default(`Unknown getContentEntry method "${type}". Could not fetch content entry.`, "UNKNOWN_METHOD_ERROR", {
|
|
120
123
|
args,
|
|
121
124
|
type
|
|
122
125
|
});
|
|
123
126
|
}
|
|
124
|
-
|
|
125
127
|
const method = getFetchMethod(type, context);
|
|
126
128
|
const {
|
|
127
129
|
modelId,
|
|
@@ -129,7 +131,6 @@ const getContentEntry = async params => {
|
|
|
129
131
|
} = args.entry;
|
|
130
132
|
const models = await context.cms.listModels();
|
|
131
133
|
const model = models.find(m => m.modelId === modelId);
|
|
132
|
-
|
|
133
134
|
if (!model) {
|
|
134
135
|
return new _apiSecurity.NotAuthorizedResponse({
|
|
135
136
|
data: {
|
|
@@ -137,60 +138,87 @@ const getContentEntry = async params => {
|
|
|
137
138
|
}
|
|
138
139
|
});
|
|
139
140
|
}
|
|
140
|
-
|
|
141
141
|
const result = await method(model, [id]);
|
|
142
142
|
const entry = result.shift();
|
|
143
|
-
|
|
144
143
|
if (!entry) {
|
|
145
144
|
return new _handlerGraphql.Response(null);
|
|
146
145
|
}
|
|
147
|
-
|
|
148
|
-
return new _handlerGraphql.Response({
|
|
149
|
-
id: entry.id,
|
|
150
|
-
entryId: entry.entryId,
|
|
151
|
-
model: {
|
|
152
|
-
modelId: model.modelId,
|
|
153
|
-
name: model.name
|
|
154
|
-
},
|
|
155
|
-
status: entry.status,
|
|
156
|
-
title: (0, _getEntryTitle.getEntryTitle)(model, entry)
|
|
157
|
-
});
|
|
146
|
+
return new _handlerGraphql.Response(createCmsEntryRecord(model, entry));
|
|
158
147
|
};
|
|
159
|
-
|
|
160
|
-
|
|
148
|
+
/**
|
|
149
|
+
* As we support description field, we need to transform the value from storage.
|
|
150
|
+
*/
|
|
151
|
+
const createResolveDescription = () => {
|
|
152
|
+
return async (parent, _, context) => {
|
|
153
|
+
const models = await context.cms.listModels();
|
|
154
|
+
const model = models.find(({
|
|
155
|
+
modelId
|
|
156
|
+
}) => {
|
|
157
|
+
return parent.model.modelId === modelId;
|
|
158
|
+
});
|
|
159
|
+
if (!model) {
|
|
160
|
+
return null;
|
|
161
|
+
}
|
|
162
|
+
const field = model.fields.find(f => f.fieldId === model.descriptionFieldId);
|
|
163
|
+
if (!field) {
|
|
164
|
+
return null;
|
|
165
|
+
}
|
|
166
|
+
const value = parent.description || parent[field.fieldId];
|
|
167
|
+
if (!value) {
|
|
168
|
+
return null;
|
|
169
|
+
}
|
|
170
|
+
return (0, _entryStorage.entryFieldFromStorageTransform)({
|
|
171
|
+
context,
|
|
172
|
+
model,
|
|
173
|
+
field,
|
|
174
|
+
value
|
|
175
|
+
});
|
|
176
|
+
};
|
|
177
|
+
};
|
|
178
|
+
const createContentEntriesSchema = ({
|
|
179
|
+
context
|
|
180
|
+
}) => {
|
|
161
181
|
if (!context.cms.MANAGE) {
|
|
162
|
-
|
|
182
|
+
const plugin = new _plugins.CmsGraphQLSchemaPlugin({
|
|
163
183
|
typeDefs: "",
|
|
164
184
|
resolvers: {}
|
|
165
185
|
});
|
|
186
|
+
plugin.name = `headless-cms.graphql.schema.${context.cms.type}.empty`;
|
|
187
|
+
return plugin;
|
|
166
188
|
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
typeDefs:
|
|
170
|
-
/* GraphQL */
|
|
171
|
-
`
|
|
189
|
+
const plugin = new _plugins.CmsGraphQLSchemaPlugin({
|
|
190
|
+
typeDefs: /* GraphQL */`
|
|
172
191
|
type CmsModelMeta {
|
|
173
|
-
modelId: String
|
|
174
|
-
name: String
|
|
192
|
+
modelId: String!
|
|
193
|
+
name: String!
|
|
175
194
|
}
|
|
176
195
|
|
|
177
196
|
type CmsPublishedContentEntry {
|
|
178
197
|
id: ID!
|
|
179
198
|
entryId: String!
|
|
180
199
|
title: String
|
|
200
|
+
description: String
|
|
201
|
+
image: String
|
|
181
202
|
}
|
|
182
203
|
|
|
183
204
|
type CmsContentEntry {
|
|
184
205
|
id: ID!
|
|
185
206
|
entryId: String!
|
|
186
|
-
model: CmsModelMeta
|
|
187
|
-
status: String
|
|
188
|
-
title: String
|
|
207
|
+
model: CmsModelMeta!
|
|
208
|
+
status: String!
|
|
209
|
+
title: String!
|
|
210
|
+
description: String
|
|
211
|
+
image: String
|
|
212
|
+
createdBy: CmsIdentity!
|
|
213
|
+
ownedBy: CmsIdentity!
|
|
214
|
+
modifiedBy: CmsIdentity
|
|
189
215
|
published: CmsPublishedContentEntry
|
|
216
|
+
createdOn: DateTime!
|
|
217
|
+
savedOn: DateTime!
|
|
190
218
|
}
|
|
191
219
|
|
|
192
220
|
type CmsContentEntriesResponse {
|
|
193
|
-
data: [CmsContentEntry]
|
|
221
|
+
data: [CmsContentEntry!]
|
|
194
222
|
error: CmsError
|
|
195
223
|
}
|
|
196
224
|
|
|
@@ -211,20 +239,20 @@ const createContentEntriesSchema = context => {
|
|
|
211
239
|
query: String
|
|
212
240
|
fields: [String!]
|
|
213
241
|
limit: Int
|
|
214
|
-
): CmsContentEntriesResponse
|
|
242
|
+
): CmsContentEntriesResponse!
|
|
215
243
|
|
|
216
244
|
# Get content entry meta data
|
|
217
|
-
getContentEntry(entry: CmsModelEntryInput!): CmsContentEntryResponse
|
|
245
|
+
getContentEntry(entry: CmsModelEntryInput!): CmsContentEntryResponse!
|
|
218
246
|
|
|
219
|
-
getLatestContentEntry(entry: CmsModelEntryInput!): CmsContentEntryResponse
|
|
220
|
-
getPublishedContentEntry(entry: CmsModelEntryInput!): CmsContentEntryResponse
|
|
247
|
+
getLatestContentEntry(entry: CmsModelEntryInput!): CmsContentEntryResponse!
|
|
248
|
+
getPublishedContentEntry(entry: CmsModelEntryInput!): CmsContentEntryResponse!
|
|
221
249
|
|
|
222
250
|
# Get content entries meta data
|
|
223
|
-
getContentEntries(entries: [CmsModelEntryInput!]!): CmsContentEntriesResponse
|
|
224
|
-
getLatestContentEntries(entries: [CmsModelEntryInput!]!): CmsContentEntriesResponse
|
|
251
|
+
getContentEntries(entries: [CmsModelEntryInput!]!): CmsContentEntriesResponse!
|
|
252
|
+
getLatestContentEntries(entries: [CmsModelEntryInput!]!): CmsContentEntriesResponse!
|
|
225
253
|
getPublishedContentEntries(
|
|
226
254
|
entries: [CmsModelEntryInput!]!
|
|
227
|
-
): CmsContentEntriesResponse
|
|
255
|
+
): CmsContentEntriesResponse!
|
|
228
256
|
}
|
|
229
257
|
`,
|
|
230
258
|
resolvers: {
|
|
@@ -237,26 +265,22 @@ const createContentEntriesSchema = context => {
|
|
|
237
265
|
}) => {
|
|
238
266
|
return parent.model.modelId === modelId;
|
|
239
267
|
});
|
|
240
|
-
|
|
241
268
|
if (!model) {
|
|
242
269
|
return null;
|
|
243
270
|
}
|
|
244
|
-
|
|
245
271
|
const [entry] = await context.cms.getPublishedEntriesByIds(model, [parent.id]);
|
|
246
|
-
|
|
247
272
|
if (!entry) {
|
|
248
273
|
return null;
|
|
249
274
|
}
|
|
250
|
-
|
|
251
|
-
return {
|
|
252
|
-
id: entry.id,
|
|
253
|
-
entryId: entry.entryId,
|
|
254
|
-
title: (0, _getEntryTitle.getEntryTitle)(model, entry)
|
|
255
|
-
};
|
|
275
|
+
return createCmsEntryRecord(model, entry);
|
|
256
276
|
} catch (ex) {
|
|
257
277
|
return null;
|
|
258
278
|
}
|
|
259
|
-
}
|
|
279
|
+
},
|
|
280
|
+
description: createResolveDescription()
|
|
281
|
+
},
|
|
282
|
+
CmsPublishedContentEntry: {
|
|
283
|
+
description: createResolveDescription()
|
|
260
284
|
},
|
|
261
285
|
Query: {
|
|
262
286
|
async searchContentEntries(_, args, context) {
|
|
@@ -277,24 +301,16 @@ const createContentEntriesSchema = context => {
|
|
|
277
301
|
fields: fields || []
|
|
278
302
|
});
|
|
279
303
|
return items.map(entry => {
|
|
280
|
-
return
|
|
281
|
-
id: entry.id,
|
|
282
|
-
entryId: entry.entryId,
|
|
283
|
-
model: {
|
|
284
|
-
modelId: model.modelId,
|
|
285
|
-
name: model.name
|
|
286
|
-
},
|
|
287
|
-
status: entry.status,
|
|
288
|
-
title: (0, _getEntryTitle.getEntryTitle)(model, entry),
|
|
289
|
-
// We need `savedOn` to sort entries from latest to oldest
|
|
290
|
-
savedOn: entry.savedOn
|
|
291
|
-
};
|
|
304
|
+
return createCmsEntryRecord(model, entry);
|
|
292
305
|
});
|
|
293
306
|
});
|
|
294
|
-
|
|
295
|
-
|
|
307
|
+
try {
|
|
308
|
+
const entries = await Promise.all(getters).then(results => results.reduce((result, item) => result.concat(item), []));
|
|
309
|
+
return new _handlerGraphql.Response(entries.sort((a, b) => b.savedOn.getTime() - a.savedOn.getTime()).slice(0, limit));
|
|
310
|
+
} catch (ex) {
|
|
311
|
+
return new _handlerGraphql.ErrorResponse(ex);
|
|
312
|
+
}
|
|
296
313
|
},
|
|
297
|
-
|
|
298
314
|
async getContentEntry(_, args, context) {
|
|
299
315
|
return getContentEntry({
|
|
300
316
|
args,
|
|
@@ -302,7 +318,6 @@ const createContentEntriesSchema = context => {
|
|
|
302
318
|
type: "exact"
|
|
303
319
|
});
|
|
304
320
|
},
|
|
305
|
-
|
|
306
321
|
async getLatestContentEntry(_, args, context) {
|
|
307
322
|
return getContentEntry({
|
|
308
323
|
args,
|
|
@@ -310,7 +325,6 @@ const createContentEntriesSchema = context => {
|
|
|
310
325
|
type: "latest"
|
|
311
326
|
});
|
|
312
327
|
},
|
|
313
|
-
|
|
314
328
|
async getPublishedContentEntry(_, args, context) {
|
|
315
329
|
return getContentEntry({
|
|
316
330
|
args,
|
|
@@ -318,7 +332,6 @@ const createContentEntriesSchema = context => {
|
|
|
318
332
|
type: "published"
|
|
319
333
|
});
|
|
320
334
|
},
|
|
321
|
-
|
|
322
335
|
async getContentEntries(_, args, context) {
|
|
323
336
|
return getContentEntries({
|
|
324
337
|
args,
|
|
@@ -326,7 +339,6 @@ const createContentEntriesSchema = context => {
|
|
|
326
339
|
type: "exact"
|
|
327
340
|
});
|
|
328
341
|
},
|
|
329
|
-
|
|
330
342
|
async getLatestContentEntries(_, args, context) {
|
|
331
343
|
return getContentEntries({
|
|
332
344
|
args,
|
|
@@ -334,7 +346,6 @@ const createContentEntriesSchema = context => {
|
|
|
334
346
|
type: "latest"
|
|
335
347
|
});
|
|
336
348
|
},
|
|
337
|
-
|
|
338
349
|
async getPublishedContentEntries(_, args, context) {
|
|
339
350
|
return getContentEntries({
|
|
340
351
|
args,
|
|
@@ -342,10 +353,10 @@ const createContentEntriesSchema = context => {
|
|
|
342
353
|
type: "published"
|
|
343
354
|
});
|
|
344
355
|
}
|
|
345
|
-
|
|
346
356
|
}
|
|
347
357
|
}
|
|
348
358
|
});
|
|
359
|
+
plugin.name = `headless-cms.graphql.schema.${context.cms.type}.content-entries`;
|
|
360
|
+
return plugin;
|
|
349
361
|
};
|
|
350
|
-
|
|
351
362
|
exports.createContentEntriesSchema = createContentEntriesSchema;
|