@webiny/api-headless-cms 0.0.0-unstable.40876133bb → 0.0.0-unstable.496cf268ac
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 +53 -19
- 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 +19 -29
- package/crud/contentEntry/markLockedFields.js.map +1 -1
- package/crud/contentEntry/referenceFieldsMapping.js +12 -64
- package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
- package/crud/contentEntry/searchableFields.d.ts +9 -0
- package/crud/contentEntry/searchableFields.js +72 -0
- package/crud/contentEntry/searchableFields.js.map +1 -0
- package/crud/contentEntry.crud.d.ts +2 -1
- package/crud/contentEntry.crud.js +140 -193
- 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 +11 -36
- package/crud/contentModel/beforeCreate.js.map +1 -1
- package/crud/contentModel/beforeDelete.js +0 -10
- package/crud/contentModel/beforeDelete.js.map +1 -1
- package/crud/contentModel/beforeUpdate.d.ts +2 -4
- package/crud/contentModel/beforeUpdate.js +6 -7
- 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 +4 -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/models.js +12 -0
- package/crud/contentModel/models.js.map +1 -1
- 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 +131 -147
- package/crud/contentModel/validateModelFields.js.map +1 -1
- package/crud/contentModel/validation.d.ts +519 -0
- package/crud/contentModel/validation.js +145 -0
- package/crud/contentModel/validation.js.map +1 -0
- package/crud/contentModel.crud.js +245 -272
- 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 +53 -95
- package/crud/contentModelGroup.crud.js.map +1 -1
- package/crud/settings.crud.js +0 -12
- 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.d.ts +11 -0
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +203 -0
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -0
- package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +0 -53
- package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -1
- package/fieldConverters/index.d.ts +2 -1
- package/fieldConverters/index.js +2 -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/createExecutableSchema.d.ts +7 -0
- package/graphql/createExecutableSchema.js +29 -0
- package/graphql/createExecutableSchema.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/graphQLHandlerFactory.js +95 -74
- package/graphql/graphQLHandlerFactory.js.map +1 -1
- 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 +10 -23
- package/graphql/schema/contentModelGroups.js.map +1 -1
- package/graphql/schema/contentModels.d.ts +6 -2
- package/graphql/schema/contentModels.js +62 -26
- package/graphql/schema/contentModels.js.map +1 -1
- package/graphql/schema/createFieldResolvers.d.ts +1 -1
- package/graphql/schema/createFieldResolvers.js +20 -27
- 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 +64 -67
- 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 +33 -35
- 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 +2 -0
- package/graphqlFields/dynamicZone/dynamicZoneField.js +216 -0
- package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -0
- package/graphqlFields/dynamicZone/dynamicZoneStorage.d.ts +3 -0
- package/graphqlFields/dynamicZone/dynamicZoneStorage.js +63 -0
- package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +1 -0
- package/graphqlFields/dynamicZone/index.d.ts +2 -0
- package/graphqlFields/dynamicZone/index.js +19 -0
- package/graphqlFields/dynamicZone/index.js.map +1 -0
- 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.d.ts +1 -1
- package/graphqlFields/index.js +2 -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 +4 -12
- package/graphqlFields/number.js.map +1 -1
- package/graphqlFields/object.js +118 -98
- package/graphqlFields/object.js.map +1 -1
- package/graphqlFields/ref.js +86 -106
- 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 +3 -3
- package/index.js +3 -27
- 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 +27 -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.d.ts +2 -2
- package/plugins/CmsModelFieldConverterPlugin.js +0 -5
- package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
- package/plugins/CmsModelPlugin.d.ts +11 -1
- package/plugins/CmsModelPlugin.js +15 -40
- package/plugins/CmsModelPlugin.js.map +1 -1
- package/plugins/CmsParametersPlugin.js +0 -7
- package/plugins/CmsParametersPlugin.js.map +1 -1
- package/plugins/StorageTransformPlugin.d.ts +11 -11
- package/plugins/StorageTransformPlugin.js +0 -9
- package/plugins/StorageTransformPlugin.js.map +1 -1
- package/plugins/index.d.ts +2 -0
- package/plugins/index.js +22 -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 +4 -20
- package/storage/object.js.map +1 -1
- package/types.d.ts +315 -77
- package/types.js +63 -70
- 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 +14 -34
- package/utils/converters/ConverterCollection.js.map +1 -1
- package/utils/converters/valueKeyStorageConverter.js +2 -27
- package/utils/converters/valueKeyStorageConverter.js.map +1 -1
- package/utils/createTypeFromFields.d.ts +16 -0
- package/utils/createTypeFromFields.js +67 -0
- package/utils/createTypeFromFields.js.map +1 -0
- package/utils/createTypeName.js +2 -9
- package/utils/createTypeName.js.map +1 -1
- package/utils/entryStorage.js +22 -35
- package/utils/entryStorage.js.map +1 -1
- package/utils/filterAsync.js +0 -5
- package/utils/filterAsync.js.map +1 -1
- package/utils/getBaseFieldType.d.ts +4 -0
- package/utils/getBaseFieldType.js +10 -0
- package/utils/getBaseFieldType.js.map +1 -0
- 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/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/removeNullValues.d.ts +1 -0
- package/utils/removeNullValues.js +17 -0
- package/utils/removeNullValues.js.map +1 -0
- package/utils/removeUndefinedValues.d.ts +1 -0
- package/utils/removeUndefinedValues.js +17 -0
- package/utils/removeUndefinedValues.js.map +1 -0
- package/utils/renderFields.d.ts +2 -1
- package/utils/renderFields.js +10 -10
- package/utils/renderFields.js.map +1 -1
- package/utils/renderGetFilterFields.js +6 -14
- package/utils/renderGetFilterFields.js.map +1 -1
- package/utils/renderInputFields.d.ts +2 -1
- package/utils/renderInputFields.js +6 -9
- package/utils/renderInputFields.js.map +1 -1
- package/utils/renderListFilterFields.js +4 -10
- package/utils/renderListFilterFields.js.map +1 -1
- package/utils/renderSortEnum.d.ts +7 -4
- package/utils/renderSortEnum.js +21 -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.d.ts +2 -0
- package/validators/dynamicZone.js +20 -0
- package/validators/dynamicZone.js.map +1 -0
- 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 +2 -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/graphql/schema/resolvers/manage/resolveRequestChanges.d.ts +0 -7
- package/graphql/schema/resolvers/manage/resolveRequestChanges.js +0 -21
- package/graphql/schema/resolvers/manage/resolveRequestChanges.js.map +0 -1
- package/graphql/schema/resolvers/manage/resolveRequestReview.d.ts +0 -7
- package/graphql/schema/resolvers/manage/resolveRequestReview.js +0 -21
- package/graphql/schema/resolvers/manage/resolveRequestReview.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,57 +1,41 @@
|
|
|
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.createContentEntryCrud = exports.STATUS_UNPUBLISHED = exports.STATUS_PUBLISHED = exports.STATUS_DRAFT = void 0;
|
|
9
|
-
|
|
10
8
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
11
|
-
|
|
12
9
|
var _mdbid = _interopRequireDefault(require("mdbid"));
|
|
13
|
-
|
|
14
10
|
var _handlerGraphql = require("@webiny/handler-graphql");
|
|
15
|
-
|
|
16
11
|
var _entryDataValidation = require("./contentEntry/entryDataValidation");
|
|
17
|
-
|
|
18
12
|
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
19
|
-
|
|
20
13
|
var _pubsub = require("@webiny/pubsub");
|
|
21
|
-
|
|
22
14
|
var _beforeCreate = require("./contentEntry/beforeCreate");
|
|
23
|
-
|
|
24
15
|
var _beforeUpdate = require("./contentEntry/beforeUpdate");
|
|
25
|
-
|
|
26
16
|
var _utils = require("@webiny/utils");
|
|
27
|
-
|
|
28
17
|
var _afterDelete = require("./contentEntry/afterDelete");
|
|
29
|
-
|
|
30
18
|
var _referenceFieldsMapping = require("./contentEntry/referenceFieldsMapping");
|
|
31
|
-
|
|
32
19
|
var _merge = _interopRequireDefault(require("lodash/merge"));
|
|
33
|
-
|
|
34
20
|
var _permissions = require("../utils/permissions");
|
|
35
|
-
|
|
36
21
|
var _access = require("../utils/access");
|
|
37
|
-
|
|
38
22
|
var _ownership = require("../utils/ownership");
|
|
39
|
-
|
|
40
23
|
var _entryStorage = require("../utils/entryStorage");
|
|
41
|
-
|
|
42
24
|
var _valueKeyStorageConverter = require("../utils/converters/valueKeyStorageConverter");
|
|
43
|
-
|
|
25
|
+
var _searchableFields = require("./contentEntry/searchableFields");
|
|
26
|
+
var _removeUndefinedValues = require("../utils/removeUndefinedValues");
|
|
27
|
+
var _removeNullValues = require("../utils/removeNullValues");
|
|
44
28
|
/**
|
|
45
29
|
* Package mdbid does not have types.
|
|
46
30
|
*/
|
|
47
31
|
// @ts-ignore
|
|
32
|
+
|
|
48
33
|
const STATUS_DRAFT = "draft";
|
|
49
34
|
exports.STATUS_DRAFT = STATUS_DRAFT;
|
|
50
35
|
const STATUS_PUBLISHED = "published";
|
|
51
36
|
exports.STATUS_PUBLISHED = STATUS_PUBLISHED;
|
|
52
37
|
const STATUS_UNPUBLISHED = "unpublished";
|
|
53
38
|
exports.STATUS_UNPUBLISHED = STATUS_UNPUBLISHED;
|
|
54
|
-
|
|
55
39
|
/**
|
|
56
40
|
* Used for some fields to convert their values.
|
|
57
41
|
*/
|
|
@@ -59,45 +43,35 @@ const convertDefaultValue = (field, value) => {
|
|
|
59
43
|
switch (field.type) {
|
|
60
44
|
case "boolean":
|
|
61
45
|
return Boolean(value);
|
|
62
|
-
|
|
63
46
|
case "number":
|
|
64
47
|
return Number(value);
|
|
65
|
-
|
|
66
48
|
default:
|
|
67
49
|
return value;
|
|
68
50
|
}
|
|
69
51
|
};
|
|
70
|
-
|
|
71
52
|
const getDefaultValue = field => {
|
|
72
53
|
const {
|
|
73
54
|
settings,
|
|
74
55
|
multipleValues
|
|
75
56
|
} = field;
|
|
76
|
-
|
|
77
57
|
if (settings && settings.defaultValue !== undefined) {
|
|
78
58
|
return convertDefaultValue(field, settings.defaultValue);
|
|
79
59
|
}
|
|
80
|
-
|
|
81
60
|
const {
|
|
82
61
|
predefinedValues
|
|
83
62
|
} = field;
|
|
84
|
-
|
|
85
63
|
if (!predefinedValues || !predefinedValues.enabled || Array.isArray(predefinedValues.values) === false) {
|
|
86
64
|
return undefined;
|
|
87
65
|
}
|
|
88
|
-
|
|
89
66
|
if (!multipleValues) {
|
|
90
67
|
const selectedValue = predefinedValues.values.find(value => {
|
|
91
68
|
return !!value.selected;
|
|
92
69
|
});
|
|
93
|
-
|
|
94
70
|
if (selectedValue) {
|
|
95
71
|
return convertDefaultValue(field, selectedValue.value);
|
|
96
72
|
}
|
|
97
|
-
|
|
98
73
|
return undefined;
|
|
99
74
|
}
|
|
100
|
-
|
|
101
75
|
return predefinedValues.values.filter(({
|
|
102
76
|
selected
|
|
103
77
|
}) => !!selected).map(({
|
|
@@ -109,8 +83,6 @@ const getDefaultValue = field => {
|
|
|
109
83
|
/**
|
|
110
84
|
* Cleans and adds default values to create input data.
|
|
111
85
|
*/
|
|
112
|
-
|
|
113
|
-
|
|
114
86
|
const mapAndCleanCreateInputData = (model, input) => {
|
|
115
87
|
return model.fields.reduce((acc, field) => {
|
|
116
88
|
/**
|
|
@@ -122,12 +94,10 @@ const mapAndCleanCreateInputData = (model, input) => {
|
|
|
122
94
|
field
|
|
123
95
|
});
|
|
124
96
|
}
|
|
125
|
-
|
|
126
97
|
const value = input[field.fieldId];
|
|
127
98
|
/**
|
|
128
99
|
* We set the default value on create input if value is not defined.
|
|
129
100
|
*/
|
|
130
|
-
|
|
131
101
|
acc[field.fieldId] = value === undefined ? getDefaultValue(field) : value;
|
|
132
102
|
return acc;
|
|
133
103
|
}, {});
|
|
@@ -135,8 +105,6 @@ const mapAndCleanCreateInputData = (model, input) => {
|
|
|
135
105
|
/**
|
|
136
106
|
* Cleans the update input entry data.
|
|
137
107
|
*/
|
|
138
|
-
|
|
139
|
-
|
|
140
108
|
const mapAndCleanUpdatedInputData = (model, input) => {
|
|
141
109
|
return model.fields.reduce((acc, field) => {
|
|
142
110
|
/**
|
|
@@ -151,14 +119,10 @@ const mapAndCleanUpdatedInputData = (model, input) => {
|
|
|
151
119
|
/**
|
|
152
120
|
* We cannot set default value here because user might want to update only certain field values.
|
|
153
121
|
*/
|
|
154
|
-
|
|
155
|
-
|
|
156
122
|
const value = input[field.fieldId];
|
|
157
|
-
|
|
158
123
|
if (value === undefined) {
|
|
159
124
|
return acc;
|
|
160
125
|
}
|
|
161
|
-
|
|
162
126
|
acc[field.fieldId] = value;
|
|
163
127
|
return acc;
|
|
164
128
|
}, {});
|
|
@@ -167,24 +131,21 @@ const mapAndCleanUpdatedInputData = (model, input) => {
|
|
|
167
131
|
* This method takes original entry meta and new input.
|
|
168
132
|
* When new meta is merged onto the existing one, everything that has undefined or null value is removed.
|
|
169
133
|
*/
|
|
170
|
-
|
|
171
|
-
|
|
172
134
|
const createEntryMeta = (input, original) => {
|
|
173
135
|
const meta = (0, _merge.default)(original || {}, input || {});
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
136
|
+
return (0, _removeUndefinedValues.removeUndefinedValues)((0, _removeNullValues.removeNullValues)(meta));
|
|
137
|
+
};
|
|
138
|
+
const createEntryId = input => {
|
|
139
|
+
let entryId = (0, _mdbid.default)();
|
|
140
|
+
if (input.id) {
|
|
141
|
+
if (input.id.match(/^([a-zA-Z0-9])([a-zA-Z0-9\-]+)([a-zA-Z0-9])$/) === null) {
|
|
142
|
+
throw new _error.default("The provided ID is not valid. It must be a string which can be A-Z, a-z, 0-9, - and it cannot start or end with a -.", "INVALID_ID", {
|
|
143
|
+
id: input.id
|
|
144
|
+
});
|
|
178
145
|
}
|
|
179
|
-
|
|
180
|
-
delete meta[key];
|
|
146
|
+
entryId = input.id;
|
|
181
147
|
}
|
|
182
|
-
|
|
183
|
-
return meta;
|
|
184
|
-
};
|
|
185
|
-
|
|
186
|
-
const createEntryId = version => {
|
|
187
|
-
const entryId = (0, _mdbid.default)();
|
|
148
|
+
const version = 1;
|
|
188
149
|
return {
|
|
189
150
|
entryId,
|
|
190
151
|
version,
|
|
@@ -194,19 +155,16 @@ const createEntryId = version => {
|
|
|
194
155
|
})
|
|
195
156
|
};
|
|
196
157
|
};
|
|
197
|
-
|
|
198
158
|
const increaseEntryIdVersion = id => {
|
|
199
159
|
const {
|
|
200
160
|
id: entryId,
|
|
201
161
|
version
|
|
202
162
|
} = (0, _utils.parseIdentifier)(id);
|
|
203
|
-
|
|
204
163
|
if (!version) {
|
|
205
164
|
throw new _error.default("Cannot increase version on the ID without the version part.", "WRONG_ID", {
|
|
206
165
|
id
|
|
207
166
|
});
|
|
208
167
|
}
|
|
209
|
-
|
|
210
168
|
return {
|
|
211
169
|
entryId,
|
|
212
170
|
version: version + 1,
|
|
@@ -216,42 +174,10 @@ const increaseEntryIdVersion = id => {
|
|
|
216
174
|
})
|
|
217
175
|
};
|
|
218
176
|
};
|
|
219
|
-
|
|
220
|
-
const getSearchableFields = params => {
|
|
221
|
-
const {
|
|
222
|
-
plugins,
|
|
223
|
-
model,
|
|
224
|
-
fields
|
|
225
|
-
} = params;
|
|
226
|
-
const fieldPluginMap = plugins.byType("cms-model-field-to-graphql").reduce((collection, field) => {
|
|
227
|
-
collection[field.fieldType] = field;
|
|
228
|
-
return collection;
|
|
229
|
-
}, {});
|
|
230
|
-
return model.fields.filter(field => {
|
|
231
|
-
if (!field.fieldId) {
|
|
232
|
-
return false;
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
const plugin = fieldPluginMap[field.type];
|
|
236
|
-
|
|
237
|
-
if (!plugin) {
|
|
238
|
-
return false;
|
|
239
|
-
} else if (!plugin.fullTextSearch) {
|
|
240
|
-
return false;
|
|
241
|
-
} else if (!fields || fields.length === 0) {
|
|
242
|
-
return true;
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
return fields.includes(field.fieldId);
|
|
246
|
-
}).map(field => field.fieldId);
|
|
247
|
-
};
|
|
248
|
-
|
|
249
177
|
const allowedEntryStatus = ["draft", "published", "unpublished"];
|
|
250
|
-
|
|
251
178
|
const transformEntryStatus = status => {
|
|
252
179
|
return allowedEntryStatus.includes(status) ? status : "draft";
|
|
253
180
|
};
|
|
254
|
-
|
|
255
181
|
const createContentEntryCrud = params => {
|
|
256
182
|
const {
|
|
257
183
|
storageOperations,
|
|
@@ -261,43 +187,85 @@ const createContentEntryCrud = params => {
|
|
|
261
187
|
} = params;
|
|
262
188
|
const {
|
|
263
189
|
plugins
|
|
264
|
-
} = context;
|
|
190
|
+
} = context;
|
|
191
|
+
const getCreatedBy = () => {
|
|
192
|
+
const identity = getIdentity();
|
|
193
|
+
return {
|
|
194
|
+
id: identity.id,
|
|
195
|
+
displayName: identity.displayName,
|
|
196
|
+
type: identity.type
|
|
197
|
+
};
|
|
198
|
+
};
|
|
265
199
|
|
|
200
|
+
/**
|
|
201
|
+
* Create
|
|
202
|
+
*/
|
|
266
203
|
const onEntryBeforeCreate = (0, _pubsub.createTopic)("cms.onEntryBeforeCreate");
|
|
267
204
|
const onEntryAfterCreate = (0, _pubsub.createTopic)("cms.onEntryAfterCreate");
|
|
268
|
-
const onEntryCreateError = (0, _pubsub.createTopic)("cms.onEntryCreateError");
|
|
205
|
+
const onEntryCreateError = (0, _pubsub.createTopic)("cms.onEntryCreateError");
|
|
269
206
|
|
|
207
|
+
/**
|
|
208
|
+
* Create new revision
|
|
209
|
+
*/
|
|
270
210
|
const onEntryBeforeCreateRevision = (0, _pubsub.createTopic)("cms.onEntryBeforeCreateRevision");
|
|
271
211
|
const onEntryRevisionAfterCreate = (0, _pubsub.createTopic)("cms.onEntryRevisionAfterCreate");
|
|
272
|
-
const onEntryCreateRevisionError = (0, _pubsub.createTopic)("cms.onEntryCreateRevisionError");
|
|
212
|
+
const onEntryCreateRevisionError = (0, _pubsub.createTopic)("cms.onEntryCreateRevisionError");
|
|
273
213
|
|
|
214
|
+
/**
|
|
215
|
+
* Update
|
|
216
|
+
*/
|
|
274
217
|
const onEntryBeforeUpdate = (0, _pubsub.createTopic)("cms.onEntryBeforeUpdate");
|
|
275
218
|
const onEntryAfterUpdate = (0, _pubsub.createTopic)("cms.onEntryAfterUpdate");
|
|
276
|
-
const onEntryUpdateError = (0, _pubsub.createTopic)("cms.onEntryUpdateError");
|
|
219
|
+
const onEntryUpdateError = (0, _pubsub.createTopic)("cms.onEntryUpdateError");
|
|
277
220
|
|
|
221
|
+
/**
|
|
222
|
+
* Publish
|
|
223
|
+
*/
|
|
278
224
|
const onEntryBeforePublish = (0, _pubsub.createTopic)("cms.onEntryBeforePublish");
|
|
279
|
-
const onEntryAfterPublish = (0, _pubsub.createTopic)("cms.
|
|
280
|
-
const onEntryPublishError = (0, _pubsub.createTopic)("cms.onEntryPublishError");
|
|
225
|
+
const onEntryAfterPublish = (0, _pubsub.createTopic)("cms.onEntryAfterPublish");
|
|
226
|
+
const onEntryPublishError = (0, _pubsub.createTopic)("cms.onEntryPublishError");
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* Republish
|
|
230
|
+
*/
|
|
231
|
+
const onEntryBeforeRepublish = (0, _pubsub.createTopic)("cms.onEntryBeforeRepublish");
|
|
232
|
+
const onEntryAfterRepublish = (0, _pubsub.createTopic)("cms.onEntryAfterRepublish");
|
|
233
|
+
const onEntryRepublishError = (0, _pubsub.createTopic)("cms.onEntryRepublishError");
|
|
281
234
|
|
|
235
|
+
/**
|
|
236
|
+
* Unpublish
|
|
237
|
+
*/
|
|
282
238
|
const onEntryBeforeUnpublish = (0, _pubsub.createTopic)("cms.onEntryBeforeUnpublish");
|
|
283
239
|
const onEntryAfterUnpublish = (0, _pubsub.createTopic)("cms.onEntryAfterUnpublish");
|
|
284
|
-
const onEntryUnpublishError = (0, _pubsub.createTopic)("cms.onEntryUnpublishError");
|
|
240
|
+
const onEntryUnpublishError = (0, _pubsub.createTopic)("cms.onEntryUnpublishError");
|
|
285
241
|
|
|
242
|
+
/**
|
|
243
|
+
* Delete
|
|
244
|
+
*/
|
|
286
245
|
const onEntryBeforeDelete = (0, _pubsub.createTopic)("cms.onEntryBeforeDelete");
|
|
287
246
|
const onEntryAfterDelete = (0, _pubsub.createTopic)("cms.onEntryAfterDelete");
|
|
288
|
-
const onEntryDeleteError = (0, _pubsub.createTopic)("cms.onEntryDeleteError");
|
|
247
|
+
const onEntryDeleteError = (0, _pubsub.createTopic)("cms.onEntryDeleteError");
|
|
289
248
|
|
|
249
|
+
/**
|
|
250
|
+
* Delete revision
|
|
251
|
+
*/
|
|
290
252
|
const onEntryRevisionBeforeDelete = (0, _pubsub.createTopic)("cms.onEntryRevisionBeforeDelete");
|
|
291
253
|
const onEntryRevisionAfterDelete = (0, _pubsub.createTopic)("cms.onEntryRevisionAfterDelete");
|
|
292
|
-
const onEntryRevisionDeleteError = (0, _pubsub.createTopic)("cms.onEntryRevisionDeleteError");
|
|
254
|
+
const onEntryRevisionDeleteError = (0, _pubsub.createTopic)("cms.onEntryRevisionDeleteError");
|
|
293
255
|
|
|
294
|
-
|
|
256
|
+
/**
|
|
257
|
+
* Get entry
|
|
258
|
+
*/
|
|
259
|
+
const onEntryBeforeGet = (0, _pubsub.createTopic)("cms.onEntryBeforeGet");
|
|
295
260
|
|
|
261
|
+
/**
|
|
262
|
+
* List entries
|
|
263
|
+
*/
|
|
296
264
|
const onEntryBeforeList = (0, _pubsub.createTopic)("cms.onEntryBeforeList");
|
|
265
|
+
|
|
297
266
|
/**
|
|
298
267
|
* We need to assign some default behaviors.
|
|
299
268
|
*/
|
|
300
|
-
|
|
301
269
|
(0, _beforeCreate.assignBeforeEntryCreate)({
|
|
302
270
|
context,
|
|
303
271
|
onEntryBeforeCreate
|
|
@@ -310,21 +278,18 @@ const createContentEntryCrud = params => {
|
|
|
310
278
|
context,
|
|
311
279
|
onEntryAfterDelete
|
|
312
280
|
});
|
|
313
|
-
|
|
314
281
|
const checkEntryPermissions = check => {
|
|
315
282
|
return (0, _permissions.checkPermissions)(context, "cms.contentEntry", check);
|
|
316
283
|
};
|
|
284
|
+
|
|
317
285
|
/**
|
|
318
286
|
* A helper to delete the entire entry.
|
|
319
287
|
*/
|
|
320
|
-
|
|
321
|
-
|
|
322
288
|
const deleteEntry = async params => {
|
|
323
289
|
const {
|
|
324
290
|
model,
|
|
325
291
|
entry
|
|
326
292
|
} = params;
|
|
327
|
-
|
|
328
293
|
try {
|
|
329
294
|
await onEntryBeforeDelete.publish({
|
|
330
295
|
entry,
|
|
@@ -351,8 +316,6 @@ const createContentEntryCrud = params => {
|
|
|
351
316
|
/**
|
|
352
317
|
* A helper to get entries by revision IDs
|
|
353
318
|
*/
|
|
354
|
-
|
|
355
|
-
|
|
356
319
|
const getEntriesByIds = async (initialModel, ids) => {
|
|
357
320
|
const permission = await checkEntryPermissions({
|
|
358
321
|
rwd: "r"
|
|
@@ -367,7 +330,6 @@ const createContentEntryCrud = params => {
|
|
|
367
330
|
});
|
|
368
331
|
return entries.filter(entry => (0, _ownership.validateOwnership)(context, permission, entry));
|
|
369
332
|
};
|
|
370
|
-
|
|
371
333
|
return {
|
|
372
334
|
/**
|
|
373
335
|
* Deprecated - will be removed in 5.35.0
|
|
@@ -388,39 +350,62 @@ const createContentEntryCrud = params => {
|
|
|
388
350
|
onAfterEntryUnpublish: onEntryAfterUnpublish,
|
|
389
351
|
onBeforeEntryGet: onEntryBeforeGet,
|
|
390
352
|
onBeforeEntryList: onEntryBeforeList,
|
|
391
|
-
|
|
392
353
|
/**
|
|
393
354
|
* Released in 5.34.0
|
|
355
|
+
*
|
|
356
|
+
* Create
|
|
394
357
|
*/
|
|
395
358
|
onEntryBeforeCreate,
|
|
396
359
|
onEntryAfterCreate,
|
|
397
360
|
onEntryCreateError,
|
|
361
|
+
/**
|
|
362
|
+
* Create revision
|
|
363
|
+
*/
|
|
398
364
|
onEntryRevisionBeforeCreate: onEntryBeforeCreateRevision,
|
|
399
365
|
onEntryRevisionAfterCreate,
|
|
400
366
|
onEntryRevisionCreateError: onEntryCreateRevisionError,
|
|
367
|
+
/**
|
|
368
|
+
* Update
|
|
369
|
+
*/
|
|
401
370
|
onEntryBeforeUpdate,
|
|
402
371
|
onEntryAfterUpdate,
|
|
403
372
|
onEntryUpdateError,
|
|
373
|
+
/**
|
|
374
|
+
* Delete whole entry
|
|
375
|
+
*/
|
|
404
376
|
onEntryBeforeDelete,
|
|
405
377
|
onEntryAfterDelete,
|
|
406
378
|
onEntryDeleteError,
|
|
379
|
+
/**
|
|
380
|
+
* Delete entry revision
|
|
381
|
+
*/
|
|
407
382
|
onEntryRevisionBeforeDelete,
|
|
408
383
|
onEntryRevisionAfterDelete,
|
|
409
384
|
onEntryRevisionDeleteError,
|
|
385
|
+
/**
|
|
386
|
+
* Publish
|
|
387
|
+
*/
|
|
410
388
|
onEntryBeforePublish,
|
|
411
389
|
onEntryAfterPublish,
|
|
412
390
|
onEntryPublishError,
|
|
391
|
+
/**
|
|
392
|
+
* Republish
|
|
393
|
+
*/
|
|
394
|
+
onEntryBeforeRepublish,
|
|
395
|
+
onEntryAfterRepublish,
|
|
396
|
+
onEntryRepublishError,
|
|
397
|
+
/**
|
|
398
|
+
* Unpublish
|
|
399
|
+
*/
|
|
413
400
|
onEntryBeforeUnpublish,
|
|
414
401
|
onEntryAfterUnpublish,
|
|
415
402
|
onEntryUnpublishError,
|
|
416
403
|
onEntryBeforeGet,
|
|
417
404
|
onEntryBeforeList,
|
|
418
|
-
|
|
419
405
|
/**
|
|
420
406
|
* Get entries by exact revision IDs from the database.
|
|
421
407
|
*/
|
|
422
408
|
getEntriesByIds: getEntriesByIds,
|
|
423
|
-
|
|
424
409
|
/**
|
|
425
410
|
* Get a single entry by revision ID from the database.
|
|
426
411
|
*/
|
|
@@ -437,14 +422,11 @@ const createContentEntryCrud = params => {
|
|
|
437
422
|
model
|
|
438
423
|
});
|
|
439
424
|
const [entry] = await getEntriesByIds(model, [id]);
|
|
440
|
-
|
|
441
425
|
if (!entry) {
|
|
442
426
|
throw new _handlerGraphql.NotFoundError(`Entry by ID "${id}" not found.`);
|
|
443
427
|
}
|
|
444
|
-
|
|
445
428
|
return entry;
|
|
446
429
|
},
|
|
447
|
-
|
|
448
430
|
/**
|
|
449
431
|
* Get published revisions by entry IDs.
|
|
450
432
|
*/
|
|
@@ -462,9 +444,8 @@ const createContentEntryCrud = params => {
|
|
|
462
444
|
});
|
|
463
445
|
return entries.filter(entry => (0, _ownership.validateOwnership)(context, permission, entry));
|
|
464
446
|
},
|
|
465
|
-
|
|
466
447
|
/**
|
|
467
|
-
* Get latest revisions by entry IDs.
|
|
448
|
+
* Get the latest revisions by entry IDs.
|
|
468
449
|
*/
|
|
469
450
|
async getLatestEntriesByIds(initialModel, ids) {
|
|
470
451
|
const permission = await checkEntryPermissions({
|
|
@@ -480,7 +461,6 @@ const createContentEntryCrud = params => {
|
|
|
480
461
|
});
|
|
481
462
|
return entries.filter(entry => (0, _ownership.validateOwnership)(context, permission, entry));
|
|
482
463
|
},
|
|
483
|
-
|
|
484
464
|
async getEntryRevisions(initialModel, entryId) {
|
|
485
465
|
const model = (0, _valueKeyStorageConverter.attachCmsModelFieldConverters)({
|
|
486
466
|
model: initialModel,
|
|
@@ -490,7 +470,6 @@ const createContentEntryCrud = params => {
|
|
|
490
470
|
id: entryId
|
|
491
471
|
});
|
|
492
472
|
},
|
|
493
|
-
|
|
494
473
|
/**
|
|
495
474
|
* TODO determine if this method is required at all.
|
|
496
475
|
*
|
|
@@ -517,14 +496,11 @@ const createContentEntryCrud = params => {
|
|
|
517
496
|
sort,
|
|
518
497
|
limit: 1
|
|
519
498
|
});
|
|
520
|
-
|
|
521
499
|
if (items.length === 0) {
|
|
522
500
|
throw new _handlerGraphql.NotFoundError(`Entry not found!`);
|
|
523
501
|
}
|
|
524
|
-
|
|
525
502
|
return items[0];
|
|
526
503
|
},
|
|
527
|
-
|
|
528
504
|
/**
|
|
529
505
|
* @description Should not be used directly. Internal use only!
|
|
530
506
|
*
|
|
@@ -540,20 +516,19 @@ const createContentEntryCrud = params => {
|
|
|
540
516
|
plugins
|
|
541
517
|
});
|
|
542
518
|
const {
|
|
543
|
-
where: initialWhere
|
|
519
|
+
where: initialWhere,
|
|
520
|
+
limit: initialLimit
|
|
544
521
|
} = params;
|
|
522
|
+
const limit = initialLimit && initialLimit > 0 ? initialLimit : 50;
|
|
545
523
|
/**
|
|
546
524
|
* We always assign tenant and locale because we do not allow one model to have content through multiple tenants.
|
|
547
525
|
*/
|
|
548
|
-
|
|
549
526
|
const where = (0, _objectSpread2.default)({}, initialWhere);
|
|
550
527
|
/**
|
|
551
528
|
* Possibly only get records which are owned by current user.
|
|
552
529
|
* Or if searching for the owner set that value - in the case that user can see other entries than their own.
|
|
553
530
|
*/
|
|
554
|
-
|
|
555
531
|
const ownedBy = permission.own ? getIdentity().id : where.ownedBy;
|
|
556
|
-
|
|
557
532
|
if (ownedBy !== undefined) {
|
|
558
533
|
where.ownedBy = ownedBy;
|
|
559
534
|
}
|
|
@@ -561,8 +536,6 @@ const createContentEntryCrud = params => {
|
|
|
561
536
|
* Where must contain either latest or published keys.
|
|
562
537
|
* We cannot list entries without one of those
|
|
563
538
|
*/
|
|
564
|
-
|
|
565
|
-
|
|
566
539
|
if (where.latest && where.published) {
|
|
567
540
|
throw new _error.default("Cannot list entries that are both published and latest.", "LIST_ENTRIES_ERROR", {
|
|
568
541
|
where
|
|
@@ -572,13 +545,11 @@ const createContentEntryCrud = params => {
|
|
|
572
545
|
where
|
|
573
546
|
});
|
|
574
547
|
}
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
model,
|
|
548
|
+
const fields = (0, _searchableFields.getSearchableFields)({
|
|
549
|
+
fields: model.fields,
|
|
578
550
|
plugins: context.plugins,
|
|
579
|
-
|
|
551
|
+
input: params.fields || []
|
|
580
552
|
});
|
|
581
|
-
|
|
582
553
|
try {
|
|
583
554
|
await onEntryBeforeList.publish({
|
|
584
555
|
where,
|
|
@@ -590,13 +561,13 @@ const createContentEntryCrud = params => {
|
|
|
590
561
|
cursor,
|
|
591
562
|
items
|
|
592
563
|
} = await storageOperations.entries.list(model, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, params), {}, {
|
|
564
|
+
limit,
|
|
593
565
|
where,
|
|
594
566
|
fields
|
|
595
567
|
}));
|
|
596
568
|
const meta = {
|
|
597
569
|
hasMoreItems,
|
|
598
570
|
totalCount,
|
|
599
|
-
|
|
600
571
|
/**
|
|
601
572
|
* Cursor should be null if there are no more items to load.
|
|
602
573
|
* Just make sure of that, disregarding what is returned from the storageOperations.entries.list method.
|
|
@@ -617,7 +588,6 @@ const createContentEntryCrud = params => {
|
|
|
617
588
|
});
|
|
618
589
|
}
|
|
619
590
|
},
|
|
620
|
-
|
|
621
591
|
async listLatestEntries(model, params) {
|
|
622
592
|
const where = (params === null || params === void 0 ? void 0 : params.where) || {};
|
|
623
593
|
return this.listEntries(model, (0, _objectSpread2.default)((0, _objectSpread2.default)({
|
|
@@ -628,7 +598,6 @@ const createContentEntryCrud = params => {
|
|
|
628
598
|
})
|
|
629
599
|
}));
|
|
630
600
|
},
|
|
631
|
-
|
|
632
601
|
async listPublishedEntries(model, params) {
|
|
633
602
|
const where = (params === null || params === void 0 ? void 0 : params.where) || {};
|
|
634
603
|
return this.listEntries(model, (0, _objectSpread2.default)((0, _objectSpread2.default)({
|
|
@@ -639,7 +608,6 @@ const createContentEntryCrud = params => {
|
|
|
639
608
|
})
|
|
640
609
|
}));
|
|
641
610
|
},
|
|
642
|
-
|
|
643
611
|
async createEntry(initialModel, inputData) {
|
|
644
612
|
await checkEntryPermissions({
|
|
645
613
|
rwd: "w"
|
|
@@ -649,10 +617,10 @@ const createContentEntryCrud = params => {
|
|
|
649
617
|
model: initialModel,
|
|
650
618
|
plugins
|
|
651
619
|
});
|
|
620
|
+
|
|
652
621
|
/**
|
|
653
622
|
* Make sure we only work with fields that are defined in the model.
|
|
654
623
|
*/
|
|
655
|
-
|
|
656
624
|
const initialInput = mapAndCleanCreateInputData(model, inputData);
|
|
657
625
|
await (0, _entryDataValidation.validateModelEntryData)({
|
|
658
626
|
context,
|
|
@@ -665,18 +633,17 @@ const createContentEntryCrud = params => {
|
|
|
665
633
|
input: initialInput,
|
|
666
634
|
validateEntries: true
|
|
667
635
|
});
|
|
668
|
-
const identity = context.security.getIdentity();
|
|
669
636
|
const locale = this.getLocale();
|
|
670
|
-
const owner =
|
|
671
|
-
id: identity.id,
|
|
672
|
-
displayName: identity.displayName,
|
|
673
|
-
type: identity.type
|
|
674
|
-
};
|
|
637
|
+
const owner = getCreatedBy();
|
|
675
638
|
const {
|
|
676
639
|
id,
|
|
677
640
|
entryId,
|
|
678
641
|
version
|
|
679
|
-
} = createEntryId(
|
|
642
|
+
} = createEntryId(inputData);
|
|
643
|
+
/**
|
|
644
|
+
* There is a possibility that user sends an ID in the input, so we will use that one.
|
|
645
|
+
* There is no check if the ID is unique or not, that is up to the user.
|
|
646
|
+
*/
|
|
680
647
|
const entry = {
|
|
681
648
|
webinyVersion: context.WEBINY_VERSION,
|
|
682
649
|
tenant: getTenant().id,
|
|
@@ -688,13 +655,13 @@ const createContentEntryCrud = params => {
|
|
|
688
655
|
savedOn: new Date().toISOString(),
|
|
689
656
|
createdBy: owner,
|
|
690
657
|
ownedBy: owner,
|
|
658
|
+
modifiedBy: null,
|
|
691
659
|
version,
|
|
692
660
|
locked: false,
|
|
693
661
|
status: STATUS_DRAFT,
|
|
694
662
|
values: input
|
|
695
663
|
};
|
|
696
664
|
let storageEntry = null;
|
|
697
|
-
|
|
698
665
|
try {
|
|
699
666
|
await onEntryBeforeCreate.publish({
|
|
700
667
|
entry,
|
|
@@ -728,7 +695,6 @@ const createContentEntryCrud = params => {
|
|
|
728
695
|
});
|
|
729
696
|
}
|
|
730
697
|
},
|
|
731
|
-
|
|
732
698
|
async createEntryRevisionFrom(initialModel, sourceId, inputData) {
|
|
733
699
|
const permission = await checkEntryPermissions({
|
|
734
700
|
rwd: "w"
|
|
@@ -738,15 +704,15 @@ const createContentEntryCrud = params => {
|
|
|
738
704
|
model: initialModel,
|
|
739
705
|
plugins
|
|
740
706
|
});
|
|
707
|
+
|
|
741
708
|
/**
|
|
742
709
|
* Make sure we only work with fields that are defined in the model.
|
|
743
710
|
*/
|
|
744
|
-
|
|
745
711
|
const input = mapAndCleanUpdatedInputData(model, inputData);
|
|
712
|
+
|
|
746
713
|
/**
|
|
747
714
|
* Entries are identified by a common parent ID + Revision number.
|
|
748
715
|
*/
|
|
749
|
-
|
|
750
716
|
const {
|
|
751
717
|
id: uniqueId
|
|
752
718
|
} = (0, _utils.parseIdentifier)(sourceId);
|
|
@@ -756,15 +722,13 @@ const createContentEntryCrud = params => {
|
|
|
756
722
|
const latestStorageEntry = await storageOperations.entries.getLatestRevisionByEntryId(model, {
|
|
757
723
|
id: uniqueId
|
|
758
724
|
});
|
|
759
|
-
|
|
760
725
|
if (!originalStorageEntry) {
|
|
761
726
|
throw new _handlerGraphql.NotFoundError(`Entry "${sourceId}" of model "${model.modelId}" was not found.`);
|
|
762
727
|
}
|
|
728
|
+
|
|
763
729
|
/**
|
|
764
730
|
* We need to convert data from DB to its original form before using it further.
|
|
765
731
|
*/
|
|
766
|
-
|
|
767
|
-
|
|
768
732
|
const originalEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
|
|
769
733
|
const initialValues = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, originalEntry.values), input);
|
|
770
734
|
await (0, _entryDataValidation.validateModelEntryData)({
|
|
@@ -780,7 +744,7 @@ const createContentEntryCrud = params => {
|
|
|
780
744
|
validateEntries: false
|
|
781
745
|
});
|
|
782
746
|
(0, _ownership.checkOwnership)(context, permission, originalEntry);
|
|
783
|
-
const identity =
|
|
747
|
+
const identity = getIdentity();
|
|
784
748
|
const latestId = latestStorageEntry ? latestStorageEntry.id : sourceId;
|
|
785
749
|
const {
|
|
786
750
|
id,
|
|
@@ -796,13 +760,13 @@ const createContentEntryCrud = params => {
|
|
|
796
760
|
displayName: identity.displayName,
|
|
797
761
|
type: identity.type
|
|
798
762
|
},
|
|
763
|
+
modifiedBy: null,
|
|
799
764
|
locked: false,
|
|
800
765
|
publishedOn: undefined,
|
|
801
766
|
status: STATUS_DRAFT,
|
|
802
767
|
values
|
|
803
768
|
});
|
|
804
769
|
let storageEntry = null;
|
|
805
|
-
|
|
806
770
|
try {
|
|
807
771
|
await onEntryBeforeCreateRevision.publish({
|
|
808
772
|
input,
|
|
@@ -826,6 +790,7 @@ const createContentEntryCrud = params => {
|
|
|
826
790
|
} catch (ex) {
|
|
827
791
|
await onEntryCreateRevisionError.publish({
|
|
828
792
|
entry,
|
|
793
|
+
original: originalEntry,
|
|
829
794
|
model,
|
|
830
795
|
input,
|
|
831
796
|
error: ex
|
|
@@ -839,7 +804,6 @@ const createContentEntryCrud = params => {
|
|
|
839
804
|
});
|
|
840
805
|
}
|
|
841
806
|
},
|
|
842
|
-
|
|
843
807
|
async updateEntry(initialModel, id, inputData, metaInput) {
|
|
844
808
|
const permission = await checkEntryPermissions({
|
|
845
809
|
rwd: "w"
|
|
@@ -849,27 +813,24 @@ const createContentEntryCrud = params => {
|
|
|
849
813
|
model: initialModel,
|
|
850
814
|
plugins
|
|
851
815
|
});
|
|
816
|
+
|
|
852
817
|
/**
|
|
853
818
|
* Make sure we only work with fields that are defined in the model.
|
|
854
819
|
*/
|
|
855
|
-
|
|
856
820
|
const input = mapAndCleanUpdatedInputData(model, inputData);
|
|
821
|
+
|
|
857
822
|
/**
|
|
858
823
|
* The entry we are going to update.
|
|
859
824
|
*/
|
|
860
|
-
|
|
861
825
|
const originalStorageEntry = await storageOperations.entries.getRevisionById(model, {
|
|
862
826
|
id
|
|
863
827
|
});
|
|
864
|
-
|
|
865
828
|
if (!originalStorageEntry) {
|
|
866
829
|
throw new _handlerGraphql.NotFoundError(`Entry "${id}" of model "${model.modelId}" was not found.`);
|
|
867
830
|
}
|
|
868
|
-
|
|
869
831
|
if (originalStorageEntry.locked) {
|
|
870
832
|
throw new _error.default(`Cannot update entry because it's locked.`, "CONTENT_ENTRY_UPDATE_ERROR");
|
|
871
833
|
}
|
|
872
|
-
|
|
873
834
|
const originalEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
|
|
874
835
|
await (0, _entryDataValidation.validateModelEntryData)({
|
|
875
836
|
context,
|
|
@@ -888,20 +849,18 @@ const createContentEntryCrud = params => {
|
|
|
888
849
|
/**
|
|
889
850
|
* If users wants to remove a key from meta values, they need to send meta key with the null value.
|
|
890
851
|
*/
|
|
891
|
-
|
|
892
852
|
const meta = createEntryMeta(metaInput, originalEntry.meta);
|
|
893
853
|
/**
|
|
894
854
|
* We always send the full entry to the hooks and storage operations update.
|
|
895
855
|
*/
|
|
896
|
-
|
|
897
856
|
const entry = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, originalEntry), {}, {
|
|
898
857
|
savedOn: new Date().toISOString(),
|
|
858
|
+
modifiedBy: getCreatedBy(),
|
|
899
859
|
values,
|
|
900
860
|
meta,
|
|
901
861
|
status: transformEntryStatus(originalEntry.status)
|
|
902
862
|
});
|
|
903
863
|
let storageEntry = null;
|
|
904
|
-
|
|
905
864
|
try {
|
|
906
865
|
await onEntryBeforeUpdate.publish({
|
|
907
866
|
entry,
|
|
@@ -938,7 +897,10 @@ const createContentEntryCrud = params => {
|
|
|
938
897
|
});
|
|
939
898
|
}
|
|
940
899
|
},
|
|
941
|
-
|
|
900
|
+
/**
|
|
901
|
+
* Method used internally. Not documented and should not be used in users systems.
|
|
902
|
+
* @internal
|
|
903
|
+
*/
|
|
942
904
|
async republishEntry(initialModel, id) {
|
|
943
905
|
await checkEntryPermissions({
|
|
944
906
|
rwd: "w"
|
|
@@ -951,27 +913,22 @@ const createContentEntryCrud = params => {
|
|
|
951
913
|
/**
|
|
952
914
|
* Fetch the entry from the storage.
|
|
953
915
|
*/
|
|
954
|
-
|
|
955
916
|
const originalStorageEntry = await storageOperations.entries.getRevisionById(model, {
|
|
956
917
|
id
|
|
957
918
|
});
|
|
958
|
-
|
|
959
919
|
if (!originalStorageEntry) {
|
|
960
920
|
throw new _handlerGraphql.NotFoundError(`Entry "${id}" was not found!`);
|
|
961
921
|
}
|
|
962
|
-
|
|
963
922
|
const originalEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
|
|
964
923
|
/**
|
|
965
924
|
* We can only process published entries.
|
|
966
925
|
*/
|
|
967
|
-
|
|
968
926
|
if (originalEntry.status !== "published") {
|
|
969
927
|
throw new _error.default("Entry with given ID is not published!", "NOT_PUBLISHED_ERROR", {
|
|
970
928
|
id,
|
|
971
929
|
original: originalEntry
|
|
972
930
|
});
|
|
973
931
|
}
|
|
974
|
-
|
|
975
932
|
const values = await (0, _referenceFieldsMapping.referenceFieldsMapping)({
|
|
976
933
|
context,
|
|
977
934
|
model,
|
|
@@ -987,7 +944,6 @@ const createContentEntryCrud = params => {
|
|
|
987
944
|
/**
|
|
988
945
|
* First we need to update existing entry.
|
|
989
946
|
*/
|
|
990
|
-
|
|
991
947
|
try {
|
|
992
948
|
await storageOperations.entries.update(model, {
|
|
993
949
|
entry,
|
|
@@ -1001,20 +957,32 @@ const createContentEntryCrud = params => {
|
|
|
1001
957
|
/**
|
|
1002
958
|
* Then we move onto publishing it again.
|
|
1003
959
|
*/
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
960
|
try {
|
|
1007
|
-
|
|
961
|
+
await onEntryBeforeRepublish.publish({
|
|
1008
962
|
entry,
|
|
963
|
+
model
|
|
964
|
+
});
|
|
965
|
+
const result = await storageOperations.entries.publish(model, {
|
|
966
|
+
entry,
|
|
967
|
+
storageEntry
|
|
968
|
+
});
|
|
969
|
+
await onEntryAfterRepublish.publish({
|
|
970
|
+
entry,
|
|
971
|
+
model,
|
|
1009
972
|
storageEntry
|
|
1010
973
|
});
|
|
974
|
+
return result;
|
|
1011
975
|
} catch (ex) {
|
|
976
|
+
await onEntryRepublishError.publish({
|
|
977
|
+
entry,
|
|
978
|
+
model,
|
|
979
|
+
error: ex
|
|
980
|
+
});
|
|
1012
981
|
throw new _error.default("Could not publish existing entry while re-publishing.", "REPUBLISH_PUBLISH_ERROR", {
|
|
1013
982
|
entry
|
|
1014
983
|
});
|
|
1015
984
|
}
|
|
1016
985
|
},
|
|
1017
|
-
|
|
1018
986
|
async deleteEntryRevision(initialModel, revisionId) {
|
|
1019
987
|
const permission = await checkEntryPermissions({
|
|
1020
988
|
rwd: "d"
|
|
@@ -1038,11 +1006,9 @@ const createContentEntryCrud = params => {
|
|
|
1038
1006
|
entryId,
|
|
1039
1007
|
version: version
|
|
1040
1008
|
});
|
|
1041
|
-
|
|
1042
1009
|
if (!storageEntryToDelete) {
|
|
1043
1010
|
throw new _handlerGraphql.NotFoundError(`Entry "${revisionId}" was not found!`);
|
|
1044
1011
|
}
|
|
1045
|
-
|
|
1046
1012
|
(0, _ownership.checkOwnership)(context, permission, storageEntryToDelete);
|
|
1047
1013
|
const latestEntryRevisionId = latestStorageEntry ? latestStorageEntry.id : null;
|
|
1048
1014
|
const entryToDelete = await (0, _entryStorage.entryFromStorageTransform)(context, model, storageEntryToDelete);
|
|
@@ -1050,7 +1016,6 @@ const createContentEntryCrud = params => {
|
|
|
1050
1016
|
* If targeted record is the latest entry record and there is no previous one, we need to run full delete with hooks.
|
|
1051
1017
|
* At this point deleteRevision hooks are not fired.
|
|
1052
1018
|
*/
|
|
1053
|
-
|
|
1054
1019
|
if (entryToDelete.id === latestEntryRevisionId && !previousStorageEntry) {
|
|
1055
1020
|
return await deleteEntry({
|
|
1056
1021
|
model,
|
|
@@ -1060,16 +1025,12 @@ const createContentEntryCrud = params => {
|
|
|
1060
1025
|
/**
|
|
1061
1026
|
* If targeted record is latest entry revision, set the previous one as the new latest
|
|
1062
1027
|
*/
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
1028
|
let entryToSetAsLatest = null;
|
|
1066
1029
|
let storageEntryToSetAsLatest = null;
|
|
1067
|
-
|
|
1068
1030
|
if (entryToDelete.id === latestEntryRevisionId && previousStorageEntry) {
|
|
1069
1031
|
entryToSetAsLatest = await (0, _entryStorage.entryFromStorageTransform)(context, model, previousStorageEntry);
|
|
1070
1032
|
storageEntryToSetAsLatest = previousStorageEntry;
|
|
1071
1033
|
}
|
|
1072
|
-
|
|
1073
1034
|
try {
|
|
1074
1035
|
await onEntryRevisionBeforeDelete.publish({
|
|
1075
1036
|
entry: entryToDelete,
|
|
@@ -1100,7 +1061,6 @@ const createContentEntryCrud = params => {
|
|
|
1100
1061
|
});
|
|
1101
1062
|
}
|
|
1102
1063
|
},
|
|
1103
|
-
|
|
1104
1064
|
async deleteEntry(initialModel, entryId) {
|
|
1105
1065
|
const permission = await checkEntryPermissions({
|
|
1106
1066
|
rwd: "d"
|
|
@@ -1113,11 +1073,9 @@ const createContentEntryCrud = params => {
|
|
|
1113
1073
|
const storageEntry = await storageOperations.entries.getLatestRevisionByEntryId(model, {
|
|
1114
1074
|
id: entryId
|
|
1115
1075
|
});
|
|
1116
|
-
|
|
1117
1076
|
if (!storageEntry) {
|
|
1118
1077
|
throw new _handlerGraphql.NotFoundError(`Entry "${entryId}" was not found!`);
|
|
1119
1078
|
}
|
|
1120
|
-
|
|
1121
1079
|
(0, _ownership.checkOwnership)(context, permission, storageEntry);
|
|
1122
1080
|
const entry = await (0, _entryStorage.entryFromStorageTransform)(context, model, storageEntry);
|
|
1123
1081
|
return await deleteEntry({
|
|
@@ -1125,7 +1083,6 @@ const createContentEntryCrud = params => {
|
|
|
1125
1083
|
entry
|
|
1126
1084
|
});
|
|
1127
1085
|
},
|
|
1128
|
-
|
|
1129
1086
|
async publishEntry(initialModel, id) {
|
|
1130
1087
|
const permission = await checkEntryPermissions({
|
|
1131
1088
|
pw: "p"
|
|
@@ -1138,11 +1095,9 @@ const createContentEntryCrud = params => {
|
|
|
1138
1095
|
const originalStorageEntry = await storageOperations.entries.getRevisionById(model, {
|
|
1139
1096
|
id
|
|
1140
1097
|
});
|
|
1141
|
-
|
|
1142
1098
|
if (!originalStorageEntry) {
|
|
1143
1099
|
throw new _handlerGraphql.NotFoundError(`Entry "${id}" in the model "${model.modelId}" was not found.`);
|
|
1144
1100
|
}
|
|
1145
|
-
|
|
1146
1101
|
(0, _ownership.checkOwnership)(context, permission, originalStorageEntry);
|
|
1147
1102
|
const originalEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
|
|
1148
1103
|
const currentDate = new Date().toISOString();
|
|
@@ -1153,7 +1108,6 @@ const createContentEntryCrud = params => {
|
|
|
1153
1108
|
publishedOn: currentDate
|
|
1154
1109
|
});
|
|
1155
1110
|
let storageEntry = null;
|
|
1156
|
-
|
|
1157
1111
|
try {
|
|
1158
1112
|
await onEntryBeforePublish.publish({
|
|
1159
1113
|
entry,
|
|
@@ -1185,7 +1139,6 @@ const createContentEntryCrud = params => {
|
|
|
1185
1139
|
});
|
|
1186
1140
|
}
|
|
1187
1141
|
},
|
|
1188
|
-
|
|
1189
1142
|
async unpublishEntry(initialModel, id) {
|
|
1190
1143
|
const permission = await checkEntryPermissions({
|
|
1191
1144
|
pw: "u"
|
|
@@ -1200,24 +1153,20 @@ const createContentEntryCrud = params => {
|
|
|
1200
1153
|
const originalStorageEntry = await storageOperations.entries.getPublishedRevisionByEntryId(model, {
|
|
1201
1154
|
id: entryId
|
|
1202
1155
|
});
|
|
1203
|
-
|
|
1204
1156
|
if (!originalStorageEntry) {
|
|
1205
1157
|
throw new _handlerGraphql.NotFoundError(`Entry "${id}" of model "${model.modelId}" was not found.`);
|
|
1206
1158
|
}
|
|
1207
|
-
|
|
1208
1159
|
if (originalStorageEntry.id !== id) {
|
|
1209
1160
|
throw new _error.default(`Entry is not published.`, "UNPUBLISH_ERROR", {
|
|
1210
1161
|
entry: originalStorageEntry
|
|
1211
1162
|
});
|
|
1212
1163
|
}
|
|
1213
|
-
|
|
1214
1164
|
(0, _ownership.checkOwnership)(context, permission, originalStorageEntry);
|
|
1215
1165
|
const originalEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
|
|
1216
1166
|
const entry = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, originalEntry), {}, {
|
|
1217
1167
|
status: STATUS_UNPUBLISHED
|
|
1218
1168
|
});
|
|
1219
1169
|
let storageEntry = null;
|
|
1220
|
-
|
|
1221
1170
|
try {
|
|
1222
1171
|
await onEntryBeforeUnpublish.publish({
|
|
1223
1172
|
entry,
|
|
@@ -1248,8 +1197,6 @@ const createContentEntryCrud = params => {
|
|
|
1248
1197
|
});
|
|
1249
1198
|
}
|
|
1250
1199
|
}
|
|
1251
|
-
|
|
1252
1200
|
};
|
|
1253
1201
|
};
|
|
1254
|
-
|
|
1255
1202
|
exports.createContentEntryCrud = createContentEntryCrud;
|