@webiny/api-headless-cms 0.0.0-mt-2 → 0.0.0-unstable.5e7233243f
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 +3 -0
- package/context.js +64 -0
- package/context.js.map +1 -0
- package/crud/contentEntry/afterDelete.d.ts +8 -0
- package/{content/plugins/crud → crud}/contentEntry/afterDelete.js +2 -2
- package/crud/contentEntry/afterDelete.js.map +1 -0
- package/crud/contentEntry/beforeCreate.d.ts +8 -0
- package/{content/plugins/crud → crud}/contentEntry/beforeCreate.js +2 -2
- package/crud/contentEntry/beforeCreate.js.map +1 -0
- package/crud/contentEntry/beforeUpdate.d.ts +8 -0
- package/{content/plugins/crud → crud}/contentEntry/beforeUpdate.js +2 -2
- package/crud/contentEntry/beforeUpdate.js.map +1 -0
- package/crud/contentEntry/entryDataValidation.d.ts +10 -0
- package/{content/plugins/crud → crud}/contentEntry/entryDataValidation.js +26 -10
- package/crud/contentEntry/entryDataValidation.js.map +1 -0
- package/{content/plugins/crud → crud}/contentEntry/markLockedFields.d.ts +3 -2
- package/{content/plugins/crud → crud}/contentEntry/markLockedFields.js +6 -6
- package/crud/contentEntry/markLockedFields.js.map +1 -0
- package/crud/contentEntry/referenceFieldsMapping.d.ts +13 -0
- package/crud/contentEntry/referenceFieldsMapping.js +294 -0
- package/crud/contentEntry/referenceFieldsMapping.js.map +1 -0
- package/{content/plugins/crud → crud}/contentEntry.crud.d.ts +5 -7
- package/{content/plugins/crud → crud}/contentEntry.crud.js +585 -219
- package/crud/contentEntry.crud.js.map +1 -0
- package/crud/contentModel/afterCreate.d.ts +8 -0
- package/{content/plugins/crud → crud}/contentModel/afterCreate.js +2 -2
- package/crud/contentModel/afterCreate.js.map +1 -0
- package/crud/contentModel/afterCreateFrom.d.ts +8 -0
- package/crud/contentModel/afterCreateFrom.js +18 -0
- package/crud/contentModel/afterCreateFrom.js.map +1 -0
- package/crud/contentModel/afterDelete.d.ts +8 -0
- package/{content/plugins/crud → crud}/contentModel/afterDelete.js +2 -2
- package/crud/contentModel/afterDelete.js.map +1 -0
- package/crud/contentModel/afterUpdate.d.ts +8 -0
- package/{content/plugins/crud → crud}/contentModel/afterUpdate.js +2 -2
- package/crud/contentModel/afterUpdate.js.map +1 -0
- package/crud/contentModel/beforeCreate.d.ts +15 -0
- package/{content/plugins/crud → crud}/contentModel/beforeCreate.js +58 -10
- package/crud/contentModel/beforeCreate.js.map +1 -0
- package/{content/plugins/crud → crud}/contentModel/beforeDelete.d.ts +5 -4
- package/{content/plugins/crud → crud}/contentModel/beforeDelete.js +10 -6
- package/crud/contentModel/beforeDelete.js.map +1 -0
- package/{content/plugins/crud → crud}/contentModel/beforeUpdate.d.ts +5 -4
- package/crud/contentModel/beforeUpdate.js +37 -0
- package/crud/contentModel/beforeUpdate.js.map +1 -0
- package/crud/contentModel/contentModelManagerFactory.d.ts +2 -0
- package/{content/plugins/crud → crud}/contentModel/contentModelManagerFactory.js +0 -0
- package/crud/contentModel/contentModelManagerFactory.js.map +1 -0
- package/crud/contentModel/createFieldModels.d.ts +2 -0
- package/{content/plugins/crud → crud}/contentModel/createFieldModels.js +6 -2
- package/crud/contentModel/createFieldModels.js.map +1 -0
- package/crud/contentModel/createFieldStorageId.d.ts +2 -0
- package/crud/contentModel/createFieldStorageId.js +16 -0
- package/crud/contentModel/createFieldStorageId.js.map +1 -0
- package/crud/contentModel/fieldIdValidation.d.ts +1 -0
- package/crud/contentModel/fieldIdValidation.js +25 -0
- package/crud/contentModel/fieldIdValidation.js.map +1 -0
- package/crud/contentModel/idValidation.d.ts +1 -0
- package/{content/plugins/crud → crud}/contentModel/idValidation.js +3 -3
- package/crud/contentModel/idValidation.js.map +1 -0
- package/{content/plugins/crud → crud}/contentModel/models.d.ts +2 -1
- package/{content/plugins/crud → crud}/contentModel/models.js +64 -25
- package/crud/contentModel/models.js.map +1 -0
- package/crud/contentModel/systemFields.d.ts +1 -0
- package/crud/contentModel/systemFields.js +8 -0
- package/crud/contentModel/systemFields.js.map +1 -0
- package/crud/contentModel/validateLayout.d.ts +2 -0
- package/{content/plugins/crud → crud}/contentModel/validateLayout.js +1 -3
- package/crud/contentModel/validateLayout.js.map +1 -0
- package/crud/contentModel/validateModel.d.ts +9 -0
- package/crud/contentModel/validateModel.js +32 -0
- package/crud/contentModel/validateModel.js.map +1 -0
- package/crud/contentModel/validateModelFields.d.ts +9 -0
- package/crud/contentModel/validateModelFields.js +363 -0
- package/crud/contentModel/validateModelFields.js.map +1 -0
- package/{content/plugins/crud → crud}/contentModel.crud.d.ts +3 -3
- package/{content/plugins/crud → crud}/contentModel.crud.js +251 -95
- package/crud/contentModel.crud.js.map +1 -0
- package/{content/plugins/crud → crud}/contentModelGroup/beforeCreate.d.ts +4 -3
- package/{content/plugins/crud → crud}/contentModelGroup/beforeCreate.js +6 -6
- package/crud/contentModelGroup/beforeCreate.js.map +1 -0
- package/{content/plugins/crud → crud}/contentModelGroup/beforeDelete.d.ts +4 -3
- package/{content/plugins/crud → crud}/contentModelGroup/beforeDelete.js +1 -1
- package/crud/contentModelGroup/beforeDelete.js.map +1 -0
- package/crud/contentModelGroup/beforeUpdate.d.ts +9 -0
- package/{content/plugins/crud → crud}/contentModelGroup/beforeUpdate.js +1 -1
- package/crud/contentModelGroup/beforeUpdate.js.map +1 -0
- package/{content/plugins/crud → crud}/contentModelGroup.crud.d.ts +3 -3
- package/{content/plugins/crud → crud}/contentModelGroup.crud.js +54 -59
- package/crud/contentModelGroup.crud.js.map +1 -0
- package/crud/index.d.ts +6 -0
- package/{content/plugins/crud → crud}/index.js +15 -26
- package/crud/index.js.map +1 -0
- package/{plugins/crud → crud}/settings.crud.d.ts +3 -3
- package/crud/settings.crud.js +88 -0
- package/crud/settings.crud.js.map +1 -0
- package/{plugins/crud → crud}/system.crud.d.ts +6 -3
- package/{plugins/crud → crud}/system.crud.js +43 -16
- package/crud/system.crud.js.map +1 -0
- package/fieldConverters/CmsModelDefaultFieldConverterPlugin.d.ts +7 -0
- package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +66 -0
- package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -0
- package/fieldConverters/CmsModelObjectFieldConverterPlugin.d.ts +11 -0
- package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +306 -0
- package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -0
- package/fieldConverters/index.d.ts +3 -0
- package/fieldConverters/index.js +16 -0
- package/fieldConverters/index.js.map +1 -0
- package/{content/plugins → graphql}/buildSchemaPlugins.d.ts +2 -3
- package/graphql/buildSchemaPlugins.js +27 -0
- package/graphql/buildSchemaPlugins.js.map +1 -0
- package/graphql/graphQLHandlerFactory.d.ts +5 -0
- package/graphql/graphQLHandlerFactory.js +158 -0
- package/graphql/graphQLHandlerFactory.js.map +1 -0
- package/graphql/index.d.ts +5 -0
- package/graphql/index.js +57 -0
- package/graphql/index.js.map +1 -0
- package/graphql/schema/baseContentSchema.d.ts +3 -0
- package/{content/plugins/schema/baseSchema.js → graphql/schema/baseContentSchema.js} +10 -28
- package/graphql/schema/baseContentSchema.js.map +1 -0
- package/graphql/schema/contentEntries.d.ts +3 -0
- package/graphql/schema/contentEntries.js +351 -0
- package/graphql/schema/contentEntries.js.map +1 -0
- package/graphql/schema/contentModelGroups.d.ts +3 -0
- package/{content/plugins → graphql}/schema/contentModelGroups.js +34 -15
- package/graphql/schema/contentModelGroups.js.map +1 -0
- package/graphql/schema/contentModels.d.ts +3 -0
- package/{content/plugins → graphql}/schema/contentModels.js +47 -10
- package/graphql/schema/contentModels.js.map +1 -0
- package/graphql/schema/createFieldResolvers.d.ts +20 -0
- package/{content/plugins → graphql}/schema/createFieldResolvers.js +48 -17
- package/graphql/schema/createFieldResolvers.js.map +1 -0
- package/graphql/schema/createManageResolvers.d.ts +12 -0
- package/{content/plugins → graphql}/schema/createManageResolvers.js +35 -19
- package/graphql/schema/createManageResolvers.js.map +1 -0
- package/graphql/schema/createManageSDL.d.ts +10 -0
- package/{content/plugins → graphql}/schema/createManageSDL.js +20 -9
- package/graphql/schema/createManageSDL.js.map +1 -0
- package/graphql/schema/createPreviewResolvers.d.ts +12 -0
- package/{content/plugins → graphql}/schema/createPreviewResolvers.js +16 -9
- package/graphql/schema/createPreviewResolvers.js.map +1 -0
- package/graphql/schema/createReadResolvers.d.ts +12 -0
- package/{content/plugins → graphql}/schema/createReadResolvers.js +16 -9
- package/graphql/schema/createReadResolvers.js.map +1 -0
- package/graphql/schema/createReadSDL.d.ts +10 -0
- package/{content/plugins → graphql}/schema/createReadSDL.js +14 -8
- package/graphql/schema/createReadSDL.js.map +1 -0
- package/graphql/schema/resolvers/commonFieldResolvers.d.ts +6 -0
- package/{content/plugins → graphql}/schema/resolvers/commonFieldResolvers.js +0 -0
- package/graphql/schema/resolvers/commonFieldResolvers.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveCreate.d.ts +7 -0
- package/{content/plugins → graphql}/schema/resolvers/manage/resolveCreate.js +2 -4
- package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveCreateFrom.d.ts +8 -0
- package/{content/plugins → graphql}/schema/resolvers/manage/resolveCreateFrom.js +2 -4
- package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveDelete.d.ts +7 -0
- package/{content/plugins → graphql}/schema/resolvers/manage/resolveDelete.js +10 -8
- package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveGet.d.ts +7 -0
- package/graphql/schema/resolvers/manage/resolveGet.js +83 -0
- package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveGetByIds.d.ts +7 -0
- package/{content/plugins → graphql}/schema/resolvers/manage/resolveGetByIds.js +2 -4
- package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveGetRevisions.d.ts +7 -0
- package/{content/plugins → graphql}/schema/resolvers/manage/resolveGetRevisions.js +2 -4
- package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveList.d.ts +4 -0
- package/{content/plugins/schema/resolvers/read → graphql/schema/resolvers/manage}/resolveList.js +2 -4
- package/graphql/schema/resolvers/manage/resolveList.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolvePublish.d.ts +7 -0
- package/{content/plugins → graphql}/schema/resolvers/manage/resolvePublish.js +0 -0
- package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveRepublish.d.ts +7 -0
- package/{content/plugins/schema/resolvers/manage/resolveGet.js → graphql/schema/resolvers/manage/resolveRepublish.js} +4 -4
- package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -0
- package/{content/plugins → graphql}/schema/resolvers/manage/resolveRequestChanges.d.ts +4 -3
- package/{content/plugins → graphql}/schema/resolvers/manage/resolveRequestChanges.js +2 -4
- package/graphql/schema/resolvers/manage/resolveRequestChanges.js.map +1 -0
- package/{content/plugins → graphql}/schema/resolvers/manage/resolveRequestReview.d.ts +4 -3
- package/{content/plugins → graphql}/schema/resolvers/manage/resolveRequestReview.js +2 -4
- package/graphql/schema/resolvers/manage/resolveRequestReview.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveUnpublish.d.ts +7 -0
- package/{content/plugins → graphql}/schema/resolvers/manage/resolveUnpublish.js +0 -0
- package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveUpdate.d.ts +8 -0
- package/{content/plugins → graphql}/schema/resolvers/manage/resolveUpdate.js +2 -4
- package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -0
- package/graphql/schema/resolvers/preview/resolveGet.d.ts +4 -0
- package/{content/plugins → graphql}/schema/resolvers/preview/resolveGet.js +2 -2
- package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -0
- package/graphql/schema/resolvers/preview/resolveList.d.ts +4 -0
- package/{content/plugins → graphql}/schema/resolvers/preview/resolveList.js +2 -4
- package/graphql/schema/resolvers/preview/resolveList.js.map +1 -0
- package/graphql/schema/resolvers/read/resolveGet.d.ts +4 -0
- package/{content/plugins → graphql}/schema/resolvers/read/resolveGet.js +2 -2
- package/graphql/schema/resolvers/read/resolveGet.js.map +1 -0
- package/graphql/schema/resolvers/read/resolveList.d.ts +4 -0
- package/{content/plugins/schema/resolvers/manage → graphql/schema/resolvers/read}/resolveList.js +2 -4
- package/graphql/schema/resolvers/read/resolveList.js.map +1 -0
- package/{content/plugins → graphql}/schema/schemaPlugins.d.ts +1 -1
- package/{content/plugins → graphql}/schema/schemaPlugins.js +25 -6
- package/graphql/schema/schemaPlugins.js.map +1 -0
- package/graphql/system.d.ts +6 -0
- package/graphql/system.js +119 -0
- package/graphql/system.js.map +1 -0
- package/graphqlFields/boolean.d.ts +2 -0
- package/graphqlFields/boolean.js +69 -0
- package/graphqlFields/boolean.js.map +1 -0
- package/graphqlFields/datetime.d.ts +2 -0
- package/graphqlFields/datetime.js +95 -0
- package/graphqlFields/datetime.js.map +1 -0
- package/graphqlFields/file.d.ts +2 -0
- package/graphqlFields/file.js +50 -0
- package/graphqlFields/file.js.map +1 -0
- package/graphqlFields/helpers.d.ts +6 -0
- package/graphqlFields/helpers.js +49 -0
- package/graphqlFields/helpers.js.map +1 -0
- package/graphqlFields/index.d.ts +2 -0
- package/graphqlFields/index.js +28 -0
- package/graphqlFields/index.js.map +1 -0
- package/graphqlFields/longText.d.ts +2 -0
- package/graphqlFields/longText.js +63 -0
- package/graphqlFields/longText.js.map +1 -0
- package/graphqlFields/number.d.ts +2 -0
- package/graphqlFields/number.js +75 -0
- package/graphqlFields/number.js.map +1 -0
- package/graphqlFields/object.d.ts +2 -0
- package/graphqlFields/object.js +225 -0
- package/graphqlFields/object.js.map +1 -0
- package/graphqlFields/ref.d.ts +2 -0
- package/graphqlFields/ref.js +279 -0
- package/graphqlFields/ref.js.map +1 -0
- package/graphqlFields/richText.d.ts +2 -0
- package/graphqlFields/richText.js +56 -0
- package/graphqlFields/richText.js.map +1 -0
- package/graphqlFields/text.d.ts +2 -0
- package/graphqlFields/text.js +73 -0
- package/graphqlFields/text.js.map +1 -0
- package/index.d.ts +10 -12
- package/index.js +80 -37
- package/index.js.map +1 -0
- package/modelManager/DefaultCmsModelManager.d.ts +14 -0
- package/{content/plugins/modelManager → modelManager}/DefaultCmsModelManager.js +11 -9
- package/modelManager/DefaultCmsModelManager.js.map +1 -0
- package/modelManager/index.d.ts +2 -0
- package/{content/plugins/modelManager → modelManager}/index.js +3 -3
- package/modelManager/index.js.map +1 -0
- package/package.json +37 -36
- package/parameters/context.d.ts +2 -0
- package/parameters/context.js +22 -0
- package/parameters/context.js.map +1 -0
- package/parameters/header.d.ts +2 -0
- package/parameters/header.js +55 -0
- package/parameters/header.js.map +1 -0
- package/parameters/index.d.ts +4 -0
- package/parameters/index.js +57 -0
- package/parameters/index.js.map +1 -0
- package/parameters/manual.d.ts +6 -0
- package/parameters/manual.js +45 -0
- package/parameters/manual.js.map +1 -0
- package/parameters/path.d.ts +2 -0
- package/parameters/path.js +51 -0
- package/parameters/path.js.map +1 -0
- package/plugins/CmsGroupPlugin.d.ts +13 -0
- package/{content/plugins → plugins}/CmsGroupPlugin.js +8 -2
- package/plugins/CmsGroupPlugin.js.map +1 -0
- package/plugins/CmsModelFieldConverterPlugin.d.ts +14 -0
- package/plugins/CmsModelFieldConverterPlugin.js +17 -0
- package/plugins/CmsModelFieldConverterPlugin.js.map +1 -0
- package/plugins/CmsModelPlugin.d.ts +41 -0
- package/plugins/CmsModelPlugin.js +189 -0
- package/plugins/CmsModelPlugin.js.map +1 -0
- package/plugins/CmsParametersPlugin.d.ts +20 -0
- package/plugins/CmsParametersPlugin.js +28 -0
- package/plugins/CmsParametersPlugin.js.map +1 -0
- package/{content/plugins/storage → plugins}/StorageTransformPlugin.d.ts +4 -3
- package/{content/plugins/storage → plugins}/StorageTransformPlugin.js +1 -0
- package/plugins/StorageTransformPlugin.js.map +1 -0
- package/plugins/index.d.ts +5 -0
- package/plugins/index.js +70 -0
- package/plugins/index.js.map +1 -0
- package/storage/default.d.ts +2 -0
- package/storage/default.js +27 -0
- package/storage/default.js.map +1 -0
- package/storage/object.d.ts +2 -0
- package/storage/object.js +128 -0
- package/storage/object.js.map +1 -0
- package/types.d.ts +413 -246
- package/types.js +52 -0
- package/types.js.map +1 -0
- package/upgrades/5.33.0/index.d.ts +3 -0
- package/upgrades/5.33.0/index.js +186 -0
- package/upgrades/5.33.0/index.js.map +1 -0
- package/upgrades/index.d.ts +1 -0
- package/upgrades/index.js +12 -0
- package/upgrades/index.js.map +1 -0
- package/utils/access.d.ts +8 -0
- package/utils/access.js +90 -0
- package/utils/access.js.map +1 -0
- package/utils/converters/Converter.d.ts +27 -0
- package/utils/converters/Converter.js +71 -0
- package/utils/converters/Converter.js.map +1 -0
- package/utils/converters/ConverterCollection.d.ts +24 -0
- package/utils/converters/ConverterCollection.js +115 -0
- package/utils/converters/ConverterCollection.js.map +1 -0
- package/utils/converters/valueKeyStorageConverter.d.ts +18 -0
- package/utils/converters/valueKeyStorageConverter.js +152 -0
- package/utils/converters/valueKeyStorageConverter.js.map +1 -0
- package/{content/plugins/utils → utils}/createTypeName.d.ts +3 -3
- package/{content/plugins/utils → utils}/createTypeName.js +0 -0
- package/utils/createTypeName.js.map +1 -0
- package/{content/plugins/utils → utils}/entryStorage.d.ts +3 -3
- package/{content/plugins/utils → utils}/entryStorage.js +3 -7
- package/utils/entryStorage.js.map +1 -0
- package/utils/filterAsync.d.ts +1 -0
- package/utils/filterAsync.js +23 -0
- package/utils/filterAsync.js.map +1 -0
- package/utils/filterModelFields.d.ts +16 -0
- package/utils/filterModelFields.js +81 -0
- package/utils/filterModelFields.js.map +1 -0
- package/utils/getEntryTitle.d.ts +2 -0
- package/{content/plugins/utils → utils}/getEntryTitle.js +7 -6
- package/utils/getEntryTitle.js.map +1 -0
- package/utils/getSchemaFromFieldPlugins.d.ts +12 -0
- package/utils/getSchemaFromFieldPlugins.js +35 -0
- package/utils/getSchemaFromFieldPlugins.js.map +1 -0
- package/utils/ownership.d.ts +8 -0
- package/utils/ownership.js +41 -0
- package/utils/ownership.js.map +1 -0
- package/utils/permissions.d.ts +7 -0
- package/utils/permissions.js +110 -0
- package/utils/permissions.js.map +1 -0
- package/utils/pluralizedTypeName.d.ts +1 -0
- package/{content/plugins/utils → utils}/pluralizedTypeName.js +0 -0
- package/utils/pluralizedTypeName.js.map +1 -0
- package/utils/renderFields.d.ts +15 -0
- package/{content/plugins/utils → utils}/renderFields.js +4 -2
- package/utils/renderFields.js.map +1 -0
- package/utils/renderGetFilterFields.d.ts +10 -0
- package/{content/plugins/utils → utils}/renderGetFilterFields.js +28 -13
- package/utils/renderGetFilterFields.js.map +1 -0
- package/utils/renderInputFields.d.ts +14 -0
- package/{content/plugins/utils → utils}/renderInputFields.js +1 -1
- package/utils/renderInputFields.js.map +1 -0
- package/utils/renderListFilterFields.d.ts +11 -0
- package/{content/plugins/utils → utils}/renderListFilterFields.js +30 -17
- package/utils/renderListFilterFields.js.map +1 -0
- package/{content/plugins/utils → utils}/renderSortEnum.d.ts +1 -1
- package/utils/renderSortEnum.js +32 -0
- package/utils/renderSortEnum.js.map +1 -0
- package/utils/toSlug.d.ts +1 -0
- package/utils/toSlug.js +20 -0
- package/utils/toSlug.js.map +1 -0
- package/validators/dateGte.d.ts +2 -0
- package/{content/plugins/validators → validators}/dateGte.js +4 -4
- package/validators/dateGte.js.map +1 -0
- package/validators/dateLte.d.ts +2 -0
- package/{content/plugins/validators → validators}/dateLte.js +4 -4
- package/validators/dateLte.js.map +1 -0
- package/validators/gte.d.ts +2 -0
- package/validators/gte.js +36 -0
- package/validators/gte.js.map +1 -0
- package/validators/in.d.ts +2 -0
- package/validators/in.js +36 -0
- package/validators/in.js.map +1 -0
- package/validators/index.d.ts +1 -0
- package/validators/index.js +36 -0
- package/validators/index.js.map +1 -0
- package/validators/lte.d.ts +2 -0
- package/validators/lte.js +36 -0
- package/validators/lte.js.map +1 -0
- package/validators/maxLength.d.ts +2 -0
- package/validators/maxLength.js +36 -0
- package/validators/maxLength.js.map +1 -0
- package/validators/minLength.d.ts +2 -0
- package/validators/minLength.js +36 -0
- package/validators/minLength.js.map +1 -0
- package/validators/pattern.d.ts +2 -0
- package/validators/pattern.js +50 -0
- package/validators/pattern.js.map +1 -0
- package/validators/patternPlugins/email.d.ts +2 -0
- package/validators/patternPlugins/email.js +20 -0
- package/validators/patternPlugins/email.js.map +1 -0
- package/validators/patternPlugins/index.d.ts +2 -0
- package/validators/patternPlugins/index.js +24 -0
- package/validators/patternPlugins/index.js.map +1 -0
- package/validators/patternPlugins/lowerCase.d.ts +2 -0
- package/validators/patternPlugins/lowerCase.js +20 -0
- package/validators/patternPlugins/lowerCase.js.map +1 -0
- package/validators/patternPlugins/lowerCaseSpace.d.ts +2 -0
- package/validators/patternPlugins/lowerCaseSpace.js +20 -0
- package/validators/patternPlugins/lowerCaseSpace.js.map +1 -0
- package/validators/patternPlugins/upperCase.d.ts +2 -0
- package/validators/patternPlugins/upperCase.js +20 -0
- package/validators/patternPlugins/upperCase.js.map +1 -0
- package/validators/patternPlugins/upperCaseSpace.d.ts +2 -0
- package/validators/patternPlugins/upperCaseSpace.js +20 -0
- package/validators/patternPlugins/upperCaseSpace.js.map +1 -0
- package/validators/patternPlugins/url.d.ts +2 -0
- package/validators/patternPlugins/url.js +20 -0
- package/validators/patternPlugins/url.js.map +1 -0
- package/validators/required.d.ts +2 -0
- package/validators/required.js +27 -0
- package/validators/required.js.map +1 -0
- package/validators/timeGte.d.ts +2 -0
- package/{content/plugins/validators → validators}/timeGte.js +6 -4
- package/validators/timeGte.js.map +1 -0
- package/validators/timeLte.d.ts +2 -0
- package/{content/plugins/validators → validators}/timeLte.js +6 -4
- package/validators/timeLte.js.map +1 -0
- package/validators/unique.d.ts +6 -0
- package/validators/unique.js +63 -0
- package/validators/unique.js.map +1 -0
- package/content/contextSetup.d.ts +0 -4
- package/content/contextSetup.js +0 -65
- package/content/graphQLHandlerFactory.d.ts +0 -5
- package/content/graphQLHandlerFactory.js +0 -173
- package/content/plugins/CmsGroupPlugin.d.ts +0 -11
- package/content/plugins/CmsModelPlugin.d.ts +0 -11
- package/content/plugins/CmsModelPlugin.js +0 -24
- package/content/plugins/buildSchemaPlugins.js +0 -29
- package/content/plugins/crud/contentEntry/afterDelete.d.ts +0 -7
- package/content/plugins/crud/contentEntry/beforeCreate.d.ts +0 -7
- package/content/plugins/crud/contentEntry/beforeUpdate.d.ts +0 -7
- package/content/plugins/crud/contentEntry/entryDataValidation.d.ts +0 -4
- package/content/plugins/crud/contentModel/afterCreate.d.ts +0 -7
- package/content/plugins/crud/contentModel/afterDelete.d.ts +0 -7
- package/content/plugins/crud/contentModel/afterUpdate.d.ts +0 -7
- package/content/plugins/crud/contentModel/beforeCreate.d.ts +0 -9
- package/content/plugins/crud/contentModel/beforeUpdate.js +0 -128
- package/content/plugins/crud/contentModel/contentModelManagerFactory.d.ts +0 -2
- package/content/plugins/crud/contentModel/createFieldModels.d.ts +0 -2
- package/content/plugins/crud/contentModel/idValidation.d.ts +0 -2
- package/content/plugins/crud/contentModel/validateLayout.d.ts +0 -2
- package/content/plugins/crud/contentModelGroup/beforeUpdate.d.ts +0 -8
- package/content/plugins/crud/index.d.ts +0 -6
- package/content/plugins/graphqlFields/boolean.d.ts +0 -3
- package/content/plugins/graphqlFields/boolean.js +0 -69
- package/content/plugins/graphqlFields/datetime.d.ts +0 -3
- package/content/plugins/graphqlFields/datetime.js +0 -83
- package/content/plugins/graphqlFields/file.d.ts +0 -3
- package/content/plugins/graphqlFields/file.js +0 -49
- package/content/plugins/graphqlFields/index.d.ts +0 -2
- package/content/plugins/graphqlFields/index.js +0 -30
- package/content/plugins/graphqlFields/longText.d.ts +0 -3
- package/content/plugins/graphqlFields/longText.js +0 -62
- package/content/plugins/graphqlFields/number.d.ts +0 -3
- package/content/plugins/graphqlFields/number.js +0 -75
- package/content/plugins/graphqlFields/object.d.ts +0 -3
- package/content/plugins/graphqlFields/object.js +0 -180
- package/content/plugins/graphqlFields/ref.d.ts +0 -3
- package/content/plugins/graphqlFields/ref.js +0 -205
- package/content/plugins/graphqlFields/richText.d.ts +0 -3
- package/content/plugins/graphqlFields/richText.js +0 -55
- package/content/plugins/graphqlFields/text.d.ts +0 -3
- package/content/plugins/graphqlFields/text.js +0 -72
- package/content/plugins/internalSecurity/InternalAuthenticationPlugin.d.ts +0 -8
- package/content/plugins/internalSecurity/InternalAuthenticationPlugin.js +0 -54
- package/content/plugins/internalSecurity/InternalAuthorizationPlugin.d.ts +0 -7
- package/content/plugins/internalSecurity/InternalAuthorizationPlugin.js +0 -35
- package/content/plugins/modelManager/DefaultCmsModelManager.d.ts +0 -15
- package/content/plugins/modelManager/index.d.ts +0 -3
- package/content/plugins/schema/baseSchema.d.ts +0 -4
- package/content/plugins/schema/contentEntries.d.ts +0 -4
- package/content/plugins/schema/contentEntries.js +0 -166
- package/content/plugins/schema/contentModelGroups.d.ts +0 -4
- package/content/plugins/schema/contentModels.d.ts +0 -4
- package/content/plugins/schema/createFieldResolvers.d.ts +0 -19
- package/content/plugins/schema/createManageResolvers.d.ts +0 -11
- package/content/plugins/schema/createManageSDL.d.ts +0 -9
- package/content/plugins/schema/createPreviewResolvers.d.ts +0 -10
- package/content/plugins/schema/createReadResolvers.d.ts +0 -10
- package/content/plugins/schema/createReadSDL.d.ts +0 -9
- package/content/plugins/schema/resolvers/commonFieldResolvers.d.ts +0 -6
- package/content/plugins/schema/resolvers/manage/resolveCreate.d.ts +0 -6
- package/content/plugins/schema/resolvers/manage/resolveCreateFrom.d.ts +0 -7
- package/content/plugins/schema/resolvers/manage/resolveDelete.d.ts +0 -2
- package/content/plugins/schema/resolvers/manage/resolveGet.d.ts +0 -2
- package/content/plugins/schema/resolvers/manage/resolveGetByIds.d.ts +0 -2
- package/content/plugins/schema/resolvers/manage/resolveGetRevisions.d.ts +0 -2
- package/content/plugins/schema/resolvers/manage/resolveList.d.ts +0 -2
- package/content/plugins/schema/resolvers/manage/resolvePublish.d.ts +0 -2
- package/content/plugins/schema/resolvers/manage/resolveUnpublish.d.ts +0 -2
- package/content/plugins/schema/resolvers/manage/resolveUpdate.d.ts +0 -7
- package/content/plugins/schema/resolvers/preview/resolveGet.d.ts +0 -2
- package/content/plugins/schema/resolvers/preview/resolveList.d.ts +0 -2
- package/content/plugins/schema/resolvers/read/resolveGet.d.ts +0 -2
- package/content/plugins/schema/resolvers/read/resolveList.d.ts +0 -2
- package/content/plugins/storage/default.d.ts +0 -3
- package/content/plugins/storage/default.js +0 -28
- package/content/plugins/storage/object.d.ts +0 -3
- package/content/plugins/storage/object.js +0 -119
- package/content/plugins/utils/getEntryTitle.d.ts +0 -2
- package/content/plugins/utils/getSchemaFromFieldPlugins.d.ts +0 -11
- package/content/plugins/utils/getSchemaFromFieldPlugins.js +0 -30
- package/content/plugins/utils/pluralizedTypeName.d.ts +0 -1
- package/content/plugins/utils/renderFields.d.ts +0 -16
- package/content/plugins/utils/renderGetFilterFields.d.ts +0 -9
- package/content/plugins/utils/renderInputFields.d.ts +0 -14
- package/content/plugins/utils/renderListFilterFields.d.ts +0 -10
- package/content/plugins/utils/renderSortEnum.js +0 -32
- package/content/plugins/validators/dateGte.d.ts +0 -3
- package/content/plugins/validators/dateLte.d.ts +0 -3
- package/content/plugins/validators/gte.d.ts +0 -3
- package/content/plugins/validators/gte.js +0 -32
- package/content/plugins/validators/in.d.ts +0 -3
- package/content/plugins/validators/in.js +0 -32
- package/content/plugins/validators/index.d.ts +0 -2
- package/content/plugins/validators/index.js +0 -36
- package/content/plugins/validators/lte.d.ts +0 -3
- package/content/plugins/validators/lte.js +0 -32
- package/content/plugins/validators/maxLength.d.ts +0 -3
- package/content/plugins/validators/maxLength.js +0 -32
- package/content/plugins/validators/minLength.d.ts +0 -3
- package/content/plugins/validators/minLength.js +0 -32
- package/content/plugins/validators/pattern.d.ts +0 -3
- package/content/plugins/validators/pattern.js +0 -47
- package/content/plugins/validators/patternPlugins/email.d.ts +0 -3
- package/content/plugins/validators/patternPlugins/email.js +0 -17
- package/content/plugins/validators/patternPlugins/index.d.ts +0 -2
- package/content/plugins/validators/patternPlugins/index.js +0 -19
- package/content/plugins/validators/patternPlugins/lowerCase.d.ts +0 -3
- package/content/plugins/validators/patternPlugins/lowerCase.js +0 -17
- package/content/plugins/validators/patternPlugins/upperCase.d.ts +0 -3
- package/content/plugins/validators/patternPlugins/upperCase.js +0 -17
- package/content/plugins/validators/patternPlugins/url.d.ts +0 -3
- package/content/plugins/validators/patternPlugins/url.js +0 -17
- package/content/plugins/validators/required.d.ts +0 -3
- package/content/plugins/validators/required.js +0 -25
- package/content/plugins/validators/timeGte.d.ts +0 -3
- package/content/plugins/validators/timeLte.d.ts +0 -3
- package/migrateCMSPermissions.d.ts +0 -17
- package/migrateCMSPermissions.js +0 -193
- package/plugins/context.d.ts +0 -4
- package/plugins/context.js +0 -34
- package/plugins/crud/index.d.ts +0 -6
- package/plugins/crud/index.js +0 -100
- package/plugins/crud/settings.crud.js +0 -93
- package/plugins/graphql/system.d.ts +0 -17
- package/plugins/graphql/system.js +0 -72
- package/plugins/graphql.d.ts +0 -2
- package/plugins/graphql.js +0 -79
- package/plugins/upgrades/index.d.ts +0 -2
- package/plugins/upgrades/index.js +0 -14
- package/plugins/upgrades/v5.5.0/helpers.d.ts +0 -6
- package/plugins/upgrades/v5.5.0/helpers.js +0 -10
- package/plugins/upgrades/v5.5.0/index.d.ts +0 -4
- package/plugins/upgrades/v5.5.0/index.js +0 -129
- package/transformers.d.ts +0 -2
- package/transformers.js +0 -25
- package/utils.d.ts +0 -25
- package/utils.js +0 -251
|
@@ -13,8 +13,6 @@ var _mdbid = _interopRequireDefault(require("mdbid"));
|
|
|
13
13
|
|
|
14
14
|
var _handlerGraphql = require("@webiny/handler-graphql");
|
|
15
15
|
|
|
16
|
-
var utils = _interopRequireWildcard(require("../../../utils"));
|
|
17
|
-
|
|
18
16
|
var _entryDataValidation = require("./contentEntry/entryDataValidation");
|
|
19
17
|
|
|
20
18
|
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
@@ -25,19 +23,27 @@ var _beforeCreate = require("./contentEntry/beforeCreate");
|
|
|
25
23
|
|
|
26
24
|
var _beforeUpdate = require("./contentEntry/beforeUpdate");
|
|
27
25
|
|
|
28
|
-
var
|
|
29
|
-
|
|
30
|
-
var _entryStorage = require("../utils/entryStorage");
|
|
26
|
+
var _utils = require("@webiny/utils");
|
|
31
27
|
|
|
32
28
|
var _afterDelete = require("./contentEntry/afterDelete");
|
|
33
29
|
|
|
34
|
-
|
|
30
|
+
var _referenceFieldsMapping = require("./contentEntry/referenceFieldsMapping");
|
|
31
|
+
|
|
32
|
+
var _merge = _interopRequireDefault(require("lodash/merge"));
|
|
35
33
|
|
|
36
|
-
|
|
34
|
+
var _permissions = require("../utils/permissions");
|
|
35
|
+
|
|
36
|
+
var _access = require("../utils/access");
|
|
37
|
+
|
|
38
|
+
var _ownership = require("../utils/ownership");
|
|
39
|
+
|
|
40
|
+
var _entryStorage = require("../utils/entryStorage");
|
|
37
41
|
|
|
38
|
-
|
|
42
|
+
var _valueKeyStorageConverter = require("../utils/converters/valueKeyStorageConverter");
|
|
39
43
|
|
|
40
|
-
function
|
|
44
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
45
|
+
|
|
46
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
41
47
|
|
|
42
48
|
const STATUS_DRAFT = "draft";
|
|
43
49
|
exports.STATUS_DRAFT = STATUS_DRAFT;
|
|
@@ -50,30 +56,143 @@ exports.STATUS_CHANGES_REQUESTED = STATUS_CHANGES_REQUESTED;
|
|
|
50
56
|
const STATUS_REVIEW_REQUESTED = "reviewRequested";
|
|
51
57
|
exports.STATUS_REVIEW_REQUESTED = STATUS_REVIEW_REQUESTED;
|
|
52
58
|
|
|
53
|
-
|
|
59
|
+
/**
|
|
60
|
+
* Used for some fields to convert their values.
|
|
61
|
+
*/
|
|
62
|
+
const convertDefaultValue = (field, value) => {
|
|
63
|
+
switch (field.type) {
|
|
64
|
+
case "boolean":
|
|
65
|
+
return Boolean(value);
|
|
66
|
+
|
|
67
|
+
case "number":
|
|
68
|
+
return Number(value);
|
|
69
|
+
|
|
70
|
+
default:
|
|
71
|
+
return value;
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
const getDefaultValue = field => {
|
|
76
|
+
const {
|
|
77
|
+
settings,
|
|
78
|
+
multipleValues
|
|
79
|
+
} = field;
|
|
80
|
+
|
|
81
|
+
if (settings && settings.defaultValue !== undefined) {
|
|
82
|
+
return convertDefaultValue(field, settings.defaultValue);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
const {
|
|
86
|
+
predefinedValues
|
|
87
|
+
} = field;
|
|
88
|
+
|
|
89
|
+
if (!predefinedValues || !predefinedValues.enabled || Array.isArray(predefinedValues.values) === false) {
|
|
90
|
+
return undefined;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
if (!multipleValues) {
|
|
94
|
+
const selectedValue = predefinedValues.values.find(value => {
|
|
95
|
+
return !!value.selected;
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
if (selectedValue) {
|
|
99
|
+
return convertDefaultValue(field, selectedValue.value);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
return undefined;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
return predefinedValues.values.filter(({
|
|
106
|
+
selected
|
|
107
|
+
}) => !!selected).map(({
|
|
108
|
+
value
|
|
109
|
+
}) => {
|
|
110
|
+
return convertDefaultValue(field, value);
|
|
111
|
+
});
|
|
112
|
+
};
|
|
113
|
+
/**
|
|
114
|
+
* Cleans and adds default values to create input data.
|
|
115
|
+
*/
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
const mapAndCleanCreateInputData = (model, input) => {
|
|
54
119
|
return model.fields.reduce((acc, field) => {
|
|
55
|
-
|
|
120
|
+
/**
|
|
121
|
+
* This should never happen, but let's make it sure.
|
|
122
|
+
* The fix would be for the user to add the fieldId on the field definition.
|
|
123
|
+
*/
|
|
124
|
+
if (!field.fieldId) {
|
|
125
|
+
throw new _error.default("Field does not have an fieldId.", "MISSING_FIELD_ID", {
|
|
126
|
+
field
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
const value = input[field.fieldId];
|
|
131
|
+
/**
|
|
132
|
+
* We set the default value on create input if value is not defined.
|
|
133
|
+
*/
|
|
134
|
+
|
|
135
|
+
acc[field.fieldId] = value === undefined ? getDefaultValue(field) : value;
|
|
56
136
|
return acc;
|
|
57
137
|
}, {});
|
|
58
138
|
};
|
|
139
|
+
/**
|
|
140
|
+
* Cleans the update input entry data.
|
|
141
|
+
*/
|
|
59
142
|
|
|
60
|
-
|
|
143
|
+
|
|
144
|
+
const mapAndCleanUpdatedInputData = (model, input) => {
|
|
61
145
|
return model.fields.reduce((acc, field) => {
|
|
62
|
-
|
|
146
|
+
/**
|
|
147
|
+
* This should never happen, but let's make it sure.
|
|
148
|
+
* The fix would be for the user to add the fieldId on the field definition.
|
|
149
|
+
*/
|
|
150
|
+
if (!field.fieldId) {
|
|
151
|
+
throw new _error.default("Field does not have an fieldId.", "MISSING_FIELD_ID", {
|
|
152
|
+
field
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* We cannot set default value here because user might want to update only certain field values.
|
|
157
|
+
*/
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
const value = input[field.fieldId];
|
|
161
|
+
|
|
162
|
+
if (value === undefined) {
|
|
63
163
|
return acc;
|
|
64
164
|
}
|
|
65
165
|
|
|
66
|
-
acc[field.fieldId] =
|
|
166
|
+
acc[field.fieldId] = value;
|
|
67
167
|
return acc;
|
|
68
168
|
}, {});
|
|
69
169
|
};
|
|
170
|
+
/**
|
|
171
|
+
* This method takes original entry meta and new input.
|
|
172
|
+
* When new meta is merged onto the existing one, everything that has undefined or null value is removed.
|
|
173
|
+
*/
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
const createEntryMeta = (input, original) => {
|
|
177
|
+
const meta = (0, _merge.default)(original || {}, input || {});
|
|
178
|
+
|
|
179
|
+
for (const key in meta) {
|
|
180
|
+
if (meta[key] !== undefined || meta[key] !== null) {
|
|
181
|
+
continue;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
delete meta[key];
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
return meta;
|
|
188
|
+
};
|
|
70
189
|
|
|
71
190
|
const createEntryId = version => {
|
|
72
191
|
const entryId = (0, _mdbid.default)();
|
|
73
192
|
return {
|
|
74
193
|
entryId,
|
|
75
194
|
version,
|
|
76
|
-
id: (0,
|
|
195
|
+
id: (0, _utils.createIdentifier)({
|
|
77
196
|
id: entryId,
|
|
78
197
|
version
|
|
79
198
|
})
|
|
@@ -81,71 +200,105 @@ const createEntryId = version => {
|
|
|
81
200
|
};
|
|
82
201
|
|
|
83
202
|
const increaseEntryIdVersion = id => {
|
|
84
|
-
|
|
203
|
+
const {
|
|
204
|
+
id: entryId,
|
|
205
|
+
version
|
|
206
|
+
} = (0, _utils.parseIdentifier)(id);
|
|
207
|
+
|
|
208
|
+
if (!version) {
|
|
85
209
|
throw new _error.default("Cannot increase version on the ID without the version part.", "WRONG_ID", {
|
|
86
210
|
id
|
|
87
211
|
});
|
|
88
212
|
}
|
|
89
213
|
|
|
90
|
-
const [entryId, version] = id.split("#");
|
|
91
|
-
const ver = parseInt(version) + 1;
|
|
92
214
|
return {
|
|
93
215
|
entryId,
|
|
94
|
-
version:
|
|
95
|
-
id: (0,
|
|
216
|
+
version: version + 1,
|
|
217
|
+
id: (0, _utils.createIdentifier)({
|
|
96
218
|
id: entryId,
|
|
97
|
-
version:
|
|
219
|
+
version: version + 1
|
|
98
220
|
})
|
|
99
221
|
};
|
|
100
222
|
};
|
|
101
223
|
|
|
224
|
+
const getSearchableFields = params => {
|
|
225
|
+
const {
|
|
226
|
+
plugins,
|
|
227
|
+
model,
|
|
228
|
+
fields
|
|
229
|
+
} = params;
|
|
230
|
+
const fieldPluginMap = plugins.byType("cms-model-field-to-graphql").reduce((collection, field) => {
|
|
231
|
+
collection[field.fieldType] = field;
|
|
232
|
+
return collection;
|
|
233
|
+
}, {});
|
|
234
|
+
return model.fields.filter(field => {
|
|
235
|
+
if (!field.fieldId) {
|
|
236
|
+
return false;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
const plugin = fieldPluginMap[field.type];
|
|
240
|
+
|
|
241
|
+
if (!plugin) {
|
|
242
|
+
return false;
|
|
243
|
+
} else if (!plugin.fullTextSearch) {
|
|
244
|
+
return false;
|
|
245
|
+
} else if (!fields || fields.length === 0) {
|
|
246
|
+
return true;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
return fields.includes(field.fieldId);
|
|
250
|
+
}).map(field => field.fieldId);
|
|
251
|
+
};
|
|
252
|
+
|
|
102
253
|
const createContentEntryCrud = params => {
|
|
103
254
|
const {
|
|
104
255
|
storageOperations,
|
|
105
256
|
context,
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
getIdentity
|
|
257
|
+
getIdentity,
|
|
258
|
+
getTenant
|
|
109
259
|
} = params;
|
|
110
|
-
const
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
const
|
|
114
|
-
const
|
|
115
|
-
const
|
|
116
|
-
const
|
|
117
|
-
const
|
|
118
|
-
const
|
|
119
|
-
const
|
|
120
|
-
const
|
|
121
|
-
const
|
|
122
|
-
const
|
|
123
|
-
const
|
|
124
|
-
const
|
|
125
|
-
const
|
|
126
|
-
const
|
|
127
|
-
const
|
|
128
|
-
const
|
|
129
|
-
const
|
|
260
|
+
const {
|
|
261
|
+
plugins
|
|
262
|
+
} = context;
|
|
263
|
+
const onBeforeEntryCreate = (0, _pubsub.createTopic)();
|
|
264
|
+
const onAfterEntryCreate = (0, _pubsub.createTopic)();
|
|
265
|
+
const onBeforeEntryCreateRevision = (0, _pubsub.createTopic)();
|
|
266
|
+
const onAfterEntryCreateRevision = (0, _pubsub.createTopic)();
|
|
267
|
+
const onBeforeEntryUpdate = (0, _pubsub.createTopic)();
|
|
268
|
+
const onAfterEntryUpdate = (0, _pubsub.createTopic)();
|
|
269
|
+
const onBeforeEntryPublish = (0, _pubsub.createTopic)();
|
|
270
|
+
const onAfterEntryPublish = (0, _pubsub.createTopic)();
|
|
271
|
+
const onBeforeEntryUnpublish = (0, _pubsub.createTopic)();
|
|
272
|
+
const onAfterEntryUnpublish = (0, _pubsub.createTopic)();
|
|
273
|
+
const onBeforeEntryRequestChanges = (0, _pubsub.createTopic)();
|
|
274
|
+
const onAfterEntryRequestChanges = (0, _pubsub.createTopic)();
|
|
275
|
+
const onBeforeEntryRequestReview = (0, _pubsub.createTopic)();
|
|
276
|
+
const onAfterEntryRequestReview = (0, _pubsub.createTopic)();
|
|
277
|
+
const onBeforeEntryDelete = (0, _pubsub.createTopic)();
|
|
278
|
+
const onAfterEntryDelete = (0, _pubsub.createTopic)();
|
|
279
|
+
const onBeforeEntryDeleteRevision = (0, _pubsub.createTopic)();
|
|
280
|
+
const onAfterEntryDeleteRevision = (0, _pubsub.createTopic)();
|
|
281
|
+
const onBeforeEntryGet = (0, _pubsub.createTopic)();
|
|
282
|
+
const onBeforeEntryList = (0, _pubsub.createTopic)();
|
|
130
283
|
/**
|
|
131
284
|
* We need to assign some default behaviors.
|
|
132
285
|
*/
|
|
133
286
|
|
|
134
287
|
(0, _beforeCreate.assignBeforeEntryCreate)({
|
|
135
288
|
context,
|
|
136
|
-
|
|
289
|
+
onBeforeEntryCreate
|
|
137
290
|
});
|
|
138
291
|
(0, _beforeUpdate.assignBeforeEntryUpdate)({
|
|
139
292
|
context,
|
|
140
|
-
|
|
293
|
+
onBeforeEntryUpdate
|
|
141
294
|
});
|
|
142
295
|
(0, _afterDelete.assignAfterEntryDelete)({
|
|
143
296
|
context,
|
|
144
|
-
|
|
297
|
+
onAfterEntryDelete
|
|
145
298
|
});
|
|
146
299
|
|
|
147
300
|
const checkEntryPermissions = check => {
|
|
148
|
-
return
|
|
301
|
+
return (0, _permissions.checkPermissions)(context, "cms.contentEntry", check);
|
|
149
302
|
};
|
|
150
303
|
/**
|
|
151
304
|
* A helper to delete the entire entry.
|
|
@@ -155,20 +308,18 @@ const createContentEntryCrud = params => {
|
|
|
155
308
|
const deleteEntry = async params => {
|
|
156
309
|
const {
|
|
157
310
|
model,
|
|
158
|
-
entry
|
|
159
|
-
storageEntry
|
|
311
|
+
entry
|
|
160
312
|
} = params;
|
|
161
313
|
|
|
162
314
|
try {
|
|
163
|
-
await
|
|
315
|
+
await onBeforeEntryDelete.publish({
|
|
164
316
|
entry,
|
|
165
317
|
model
|
|
166
318
|
});
|
|
167
319
|
await storageOperations.entries.delete(model, {
|
|
168
|
-
entry
|
|
169
|
-
storageEntry
|
|
320
|
+
entry
|
|
170
321
|
});
|
|
171
|
-
await
|
|
322
|
+
await onAfterEntryDelete.publish({
|
|
172
323
|
entry,
|
|
173
324
|
model
|
|
174
325
|
});
|
|
@@ -183,38 +334,42 @@ const createContentEntryCrud = params => {
|
|
|
183
334
|
*/
|
|
184
335
|
|
|
185
336
|
|
|
186
|
-
const getEntriesByIds = async (
|
|
337
|
+
const getEntriesByIds = async (initialModel, ids) => {
|
|
187
338
|
const permission = await checkEntryPermissions({
|
|
188
339
|
rwd: "r"
|
|
189
340
|
});
|
|
190
|
-
await
|
|
341
|
+
await (0, _access.checkModelAccess)(context, initialModel);
|
|
342
|
+
const model = (0, _valueKeyStorageConverter.attachCmsModelFieldConverters)({
|
|
343
|
+
model: initialModel,
|
|
344
|
+
plugins
|
|
345
|
+
});
|
|
191
346
|
const entries = await storageOperations.entries.getByIds(model, {
|
|
192
347
|
ids
|
|
193
348
|
});
|
|
194
|
-
return entries.filter(entry =>
|
|
349
|
+
return entries.filter(entry => (0, _ownership.validateOwnership)(context, permission, entry));
|
|
195
350
|
};
|
|
196
351
|
|
|
197
352
|
return {
|
|
198
|
-
onBeforeEntryCreate
|
|
199
|
-
onAfterEntryCreate
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
onBeforeEntryUpdate
|
|
203
|
-
onAfterEntryUpdate
|
|
204
|
-
onBeforeEntryDelete
|
|
205
|
-
onAfterEntryDelete
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
onBeforeEntryPublish
|
|
209
|
-
onAfterEntryPublish
|
|
210
|
-
onBeforeEntryUnpublish
|
|
211
|
-
onAfterEntryUnpublish
|
|
212
|
-
onBeforeEntryRequestChanges
|
|
213
|
-
onAfterEntryRequestChanges
|
|
214
|
-
onBeforeEntryRequestReview
|
|
215
|
-
onAfterEntryRequestReview
|
|
216
|
-
onBeforeEntryGet
|
|
217
|
-
onBeforeEntryList
|
|
353
|
+
onBeforeEntryCreate,
|
|
354
|
+
onAfterEntryCreate,
|
|
355
|
+
onBeforeEntryCreateRevision,
|
|
356
|
+
onAfterEntryCreateRevision,
|
|
357
|
+
onBeforeEntryUpdate,
|
|
358
|
+
onAfterEntryUpdate,
|
|
359
|
+
onBeforeEntryDelete,
|
|
360
|
+
onAfterEntryDelete,
|
|
361
|
+
onBeforeEntryDeleteRevision,
|
|
362
|
+
onAfterEntryDeleteRevision,
|
|
363
|
+
onBeforeEntryPublish,
|
|
364
|
+
onAfterEntryPublish,
|
|
365
|
+
onBeforeEntryUnpublish,
|
|
366
|
+
onAfterEntryUnpublish,
|
|
367
|
+
onBeforeEntryRequestChanges,
|
|
368
|
+
onAfterEntryRequestChanges,
|
|
369
|
+
onBeforeEntryRequestReview,
|
|
370
|
+
onAfterEntryRequestReview,
|
|
371
|
+
onBeforeEntryGet,
|
|
372
|
+
onBeforeEntryList,
|
|
218
373
|
|
|
219
374
|
/**
|
|
220
375
|
* Get entries by exact revision IDs from the database.
|
|
@@ -224,15 +379,19 @@ const createContentEntryCrud = params => {
|
|
|
224
379
|
/**
|
|
225
380
|
* Get a single entry by revision ID from the database.
|
|
226
381
|
*/
|
|
227
|
-
getEntryById: async (
|
|
382
|
+
getEntryById: async (initialModel, id) => {
|
|
228
383
|
const where = {
|
|
229
384
|
id
|
|
230
385
|
};
|
|
231
|
-
|
|
386
|
+
const model = (0, _valueKeyStorageConverter.attachCmsModelFieldConverters)({
|
|
387
|
+
model: initialModel,
|
|
388
|
+
plugins
|
|
389
|
+
});
|
|
390
|
+
await onBeforeEntryGet.publish({
|
|
232
391
|
where,
|
|
233
392
|
model
|
|
234
393
|
});
|
|
235
|
-
const [entry] = await getEntriesByIds(model, [
|
|
394
|
+
const [entry] = await getEntriesByIds(model, [id]);
|
|
236
395
|
|
|
237
396
|
if (!entry) {
|
|
238
397
|
throw new _handlerGraphql.NotFoundError(`Entry by ID "${id}" not found.`);
|
|
@@ -244,44 +403,66 @@ const createContentEntryCrud = params => {
|
|
|
244
403
|
/**
|
|
245
404
|
* Get published revisions by entry IDs.
|
|
246
405
|
*/
|
|
247
|
-
getPublishedEntriesByIds: async (
|
|
406
|
+
getPublishedEntriesByIds: async (initialModel, ids) => {
|
|
248
407
|
const permission = await checkEntryPermissions({
|
|
249
408
|
rwd: "r"
|
|
250
409
|
});
|
|
251
|
-
await
|
|
410
|
+
await (0, _access.checkModelAccess)(context, initialModel);
|
|
411
|
+
const model = (0, _valueKeyStorageConverter.attachCmsModelFieldConverters)({
|
|
412
|
+
model: initialModel,
|
|
413
|
+
plugins
|
|
414
|
+
});
|
|
252
415
|
const entries = await storageOperations.entries.getPublishedByIds(model, {
|
|
253
416
|
ids
|
|
254
417
|
});
|
|
255
|
-
return entries.filter(entry =>
|
|
418
|
+
return entries.filter(entry => (0, _ownership.validateOwnership)(context, permission, entry));
|
|
256
419
|
},
|
|
257
420
|
|
|
258
421
|
/**
|
|
259
422
|
* Get latest revisions by entry IDs.
|
|
260
423
|
*/
|
|
261
|
-
getLatestEntriesByIds: async (
|
|
424
|
+
getLatestEntriesByIds: async (initialModel, ids) => {
|
|
262
425
|
const permission = await checkEntryPermissions({
|
|
263
426
|
rwd: "r"
|
|
264
427
|
});
|
|
265
|
-
await
|
|
428
|
+
await (0, _access.checkModelAccess)(context, initialModel);
|
|
429
|
+
const model = (0, _valueKeyStorageConverter.attachCmsModelFieldConverters)({
|
|
430
|
+
model: initialModel,
|
|
431
|
+
plugins
|
|
432
|
+
});
|
|
266
433
|
const entries = await storageOperations.entries.getLatestByIds(model, {
|
|
267
434
|
ids
|
|
268
435
|
});
|
|
269
|
-
return entries.filter(entry =>
|
|
436
|
+
return entries.filter(entry => (0, _ownership.validateOwnership)(context, permission, entry));
|
|
270
437
|
},
|
|
271
|
-
getEntryRevisions: async (
|
|
438
|
+
getEntryRevisions: async (initialModel, entryId) => {
|
|
439
|
+
const model = (0, _valueKeyStorageConverter.attachCmsModelFieldConverters)({
|
|
440
|
+
model: initialModel,
|
|
441
|
+
plugins
|
|
442
|
+
});
|
|
272
443
|
return storageOperations.entries.getRevisions(model, {
|
|
273
444
|
id: entryId
|
|
274
445
|
});
|
|
275
446
|
},
|
|
276
|
-
|
|
447
|
+
|
|
448
|
+
/**
|
|
449
|
+
* TODO determine if this method is required at all.
|
|
450
|
+
*
|
|
451
|
+
* @internal
|
|
452
|
+
*/
|
|
453
|
+
getEntry: async (initialModel, params) => {
|
|
277
454
|
await checkEntryPermissions({
|
|
278
455
|
rwd: "r"
|
|
279
456
|
});
|
|
457
|
+
const model = (0, _valueKeyStorageConverter.attachCmsModelFieldConverters)({
|
|
458
|
+
model: initialModel,
|
|
459
|
+
plugins
|
|
460
|
+
});
|
|
280
461
|
const {
|
|
281
462
|
where,
|
|
282
463
|
sort
|
|
283
464
|
} = params;
|
|
284
|
-
await
|
|
465
|
+
await onBeforeEntryGet.publish({
|
|
285
466
|
where,
|
|
286
467
|
model
|
|
287
468
|
});
|
|
@@ -297,54 +478,98 @@ const createContentEntryCrud = params => {
|
|
|
297
478
|
|
|
298
479
|
return items[0];
|
|
299
480
|
},
|
|
300
|
-
|
|
481
|
+
|
|
482
|
+
/**
|
|
483
|
+
* @description Should not be used directly. Internal use only!
|
|
484
|
+
*
|
|
485
|
+
* @internal
|
|
486
|
+
*/
|
|
487
|
+
listEntries: async (initialModel, params) => {
|
|
301
488
|
const permission = await checkEntryPermissions({
|
|
302
489
|
rwd: "r"
|
|
303
490
|
});
|
|
304
|
-
await
|
|
305
|
-
const
|
|
491
|
+
await (0, _access.checkModelAccess)(context, initialModel);
|
|
492
|
+
const model = (0, _valueKeyStorageConverter.attachCmsModelFieldConverters)({
|
|
493
|
+
model: initialModel,
|
|
494
|
+
plugins
|
|
495
|
+
});
|
|
496
|
+
const {
|
|
497
|
+
where: initialWhere
|
|
498
|
+
} = params;
|
|
499
|
+
/**
|
|
500
|
+
* We always assign tenant and locale because we do not allow one model to have content through multiple tenants.
|
|
501
|
+
*/
|
|
502
|
+
|
|
503
|
+
const where = _objectSpread({}, initialWhere);
|
|
306
504
|
/**
|
|
307
505
|
* Possibly only get records which are owned by current user.
|
|
308
506
|
* Or if searching for the owner set that value - in the case that user can see other entries than their own.
|
|
309
507
|
*/
|
|
310
508
|
|
|
311
|
-
const ownedBy = permission.own ? getIdentity().id : where.ownedBy;
|
|
312
509
|
|
|
313
|
-
const
|
|
314
|
-
tenant: where.tenant || getTenant().id,
|
|
315
|
-
locale: where.locale || getLocale().code
|
|
316
|
-
});
|
|
510
|
+
const ownedBy = permission.own ? getIdentity().id : where.ownedBy;
|
|
317
511
|
|
|
318
512
|
if (ownedBy !== undefined) {
|
|
319
|
-
|
|
513
|
+
where.ownedBy = ownedBy;
|
|
320
514
|
}
|
|
515
|
+
/**
|
|
516
|
+
* Where must contain either latest or published keys.
|
|
517
|
+
* We cannot list entries without one of those
|
|
518
|
+
*/
|
|
321
519
|
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
520
|
+
|
|
521
|
+
if (where.latest && where.published) {
|
|
522
|
+
throw new _error.default("Cannot list entries that are both published and latest.", "LIST_ENTRIES_ERROR", {
|
|
523
|
+
where
|
|
524
|
+
});
|
|
525
|
+
} else if (!where.latest && !where.published) {
|
|
526
|
+
throw new _error.default("Cannot list entries if we do not have latest or published defined.", "LIST_ENTRIES_ERROR", {
|
|
527
|
+
where
|
|
528
|
+
});
|
|
529
|
+
}
|
|
530
|
+
|
|
531
|
+
const fields = getSearchableFields({
|
|
532
|
+
model,
|
|
533
|
+
plugins: context.plugins,
|
|
534
|
+
fields: params.fields || []
|
|
325
535
|
});
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
536
|
+
|
|
537
|
+
try {
|
|
538
|
+
await onBeforeEntryList.publish({
|
|
539
|
+
where,
|
|
540
|
+
model
|
|
541
|
+
});
|
|
542
|
+
const {
|
|
543
|
+
hasMoreItems,
|
|
544
|
+
totalCount,
|
|
545
|
+
cursor,
|
|
546
|
+
items
|
|
547
|
+
} = await storageOperations.entries.list(model, _objectSpread(_objectSpread({}, params), {}, {
|
|
548
|
+
where,
|
|
549
|
+
fields
|
|
550
|
+
}));
|
|
551
|
+
const meta = {
|
|
552
|
+
hasMoreItems,
|
|
553
|
+
totalCount,
|
|
554
|
+
|
|
555
|
+
/**
|
|
556
|
+
* Cursor should be null if there are no more items to load.
|
|
557
|
+
* Just make sure of that, disregarding what is returned from the storageOperations.entries.list method.
|
|
558
|
+
*/
|
|
559
|
+
cursor: hasMoreItems ? cursor : null
|
|
560
|
+
};
|
|
561
|
+
return [items, meta];
|
|
562
|
+
} catch (ex) {
|
|
563
|
+
throw new _error.default("Error while fetching entries from storage.", "LIST_ENTRIES_ERROR", {
|
|
564
|
+
params,
|
|
565
|
+
error: ex,
|
|
566
|
+
model,
|
|
567
|
+
fields
|
|
568
|
+
});
|
|
569
|
+
}
|
|
345
570
|
},
|
|
346
571
|
listLatestEntries: async function (model, params) {
|
|
347
|
-
const where = params ? params.where
|
|
572
|
+
const where = (params === null || params === void 0 ? void 0 : params.where) || {};
|
|
348
573
|
return context.cms.listEntries(model, _objectSpread(_objectSpread({
|
|
349
574
|
sort: ["createdOn_DESC"]
|
|
350
575
|
}, params || {}), {}, {
|
|
@@ -354,7 +579,7 @@ const createContentEntryCrud = params => {
|
|
|
354
579
|
}));
|
|
355
580
|
},
|
|
356
581
|
listPublishedEntries: async function (model, params) {
|
|
357
|
-
const where = params ? params.where
|
|
582
|
+
const where = (params === null || params === void 0 ? void 0 : params.where) || {};
|
|
358
583
|
return context.cms.listEntries(model, _objectSpread(_objectSpread({
|
|
359
584
|
sort: ["createdOn_DESC"]
|
|
360
585
|
}, params || {}), {}, {
|
|
@@ -363,17 +588,31 @@ const createContentEntryCrud = params => {
|
|
|
363
588
|
})
|
|
364
589
|
}));
|
|
365
590
|
},
|
|
366
|
-
createEntry: async (
|
|
591
|
+
createEntry: async (initialModel, inputData) => {
|
|
367
592
|
await checkEntryPermissions({
|
|
368
593
|
rwd: "w"
|
|
369
594
|
});
|
|
370
|
-
await
|
|
595
|
+
await (0, _access.checkModelAccess)(context, initialModel);
|
|
596
|
+
const model = (0, _valueKeyStorageConverter.attachCmsModelFieldConverters)({
|
|
597
|
+
model: initialModel,
|
|
598
|
+
plugins
|
|
599
|
+
});
|
|
371
600
|
/**
|
|
372
601
|
* Make sure we only work with fields that are defined in the model.
|
|
373
602
|
*/
|
|
374
603
|
|
|
375
|
-
const
|
|
376
|
-
await (0, _entryDataValidation.validateModelEntryData)(
|
|
604
|
+
const initialInput = mapAndCleanCreateInputData(model, inputData);
|
|
605
|
+
await (0, _entryDataValidation.validateModelEntryData)({
|
|
606
|
+
context,
|
|
607
|
+
model,
|
|
608
|
+
data: initialInput
|
|
609
|
+
});
|
|
610
|
+
const input = await (0, _referenceFieldsMapping.referenceFieldsMapping)({
|
|
611
|
+
context,
|
|
612
|
+
model,
|
|
613
|
+
input: initialInput,
|
|
614
|
+
validateEntries: true
|
|
615
|
+
});
|
|
377
616
|
const identity = context.security.getIdentity();
|
|
378
617
|
const locale = context.cms.getLocale();
|
|
379
618
|
const owner = {
|
|
@@ -388,7 +627,7 @@ const createContentEntryCrud = params => {
|
|
|
388
627
|
} = createEntryId(1);
|
|
389
628
|
const entry = {
|
|
390
629
|
webinyVersion: context.WEBINY_VERSION,
|
|
391
|
-
tenant:
|
|
630
|
+
tenant: getTenant().id,
|
|
392
631
|
entryId,
|
|
393
632
|
id,
|
|
394
633
|
modelId: model.modelId,
|
|
@@ -405,18 +644,17 @@ const createContentEntryCrud = params => {
|
|
|
405
644
|
let storageEntry = null;
|
|
406
645
|
|
|
407
646
|
try {
|
|
408
|
-
await
|
|
647
|
+
await onBeforeEntryCreate.publish({
|
|
409
648
|
entry,
|
|
410
649
|
input,
|
|
411
650
|
model
|
|
412
651
|
});
|
|
413
652
|
storageEntry = await (0, _entryStorage.entryToStorageTransform)(context, model, entry);
|
|
414
653
|
const result = await storageOperations.entries.create(model, {
|
|
415
|
-
input,
|
|
416
654
|
entry,
|
|
417
655
|
storageEntry
|
|
418
656
|
});
|
|
419
|
-
await
|
|
657
|
+
await onAfterEntryCreate.publish({
|
|
420
658
|
entry,
|
|
421
659
|
storageEntry: result,
|
|
422
660
|
model,
|
|
@@ -432,21 +670,27 @@ const createContentEntryCrud = params => {
|
|
|
432
670
|
});
|
|
433
671
|
}
|
|
434
672
|
},
|
|
435
|
-
createEntryRevisionFrom: async (
|
|
673
|
+
createEntryRevisionFrom: async (initialModel, sourceId, inputData) => {
|
|
436
674
|
const permission = await checkEntryPermissions({
|
|
437
675
|
rwd: "w"
|
|
438
676
|
});
|
|
439
|
-
await
|
|
677
|
+
await (0, _access.checkModelAccess)(context, initialModel);
|
|
678
|
+
const model = (0, _valueKeyStorageConverter.attachCmsModelFieldConverters)({
|
|
679
|
+
model: initialModel,
|
|
680
|
+
plugins
|
|
681
|
+
});
|
|
440
682
|
/**
|
|
441
683
|
* Make sure we only work with fields that are defined in the model.
|
|
442
684
|
*/
|
|
443
685
|
|
|
444
|
-
const input =
|
|
686
|
+
const input = mapAndCleanUpdatedInputData(model, inputData);
|
|
445
687
|
/**
|
|
446
688
|
* Entries are identified by a common parent ID + Revision number.
|
|
447
689
|
*/
|
|
448
690
|
|
|
449
|
-
const
|
|
691
|
+
const {
|
|
692
|
+
id: uniqueId
|
|
693
|
+
} = (0, _utils.parseIdentifier)(sourceId);
|
|
450
694
|
const originalStorageEntry = await storageOperations.entries.getRevisionById(model, {
|
|
451
695
|
id: sourceId
|
|
452
696
|
});
|
|
@@ -464,11 +708,21 @@ const createContentEntryCrud = params => {
|
|
|
464
708
|
|
|
465
709
|
const originalEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
|
|
466
710
|
|
|
467
|
-
const
|
|
711
|
+
const initialValues = _objectSpread(_objectSpread({}, originalEntry.values), input);
|
|
468
712
|
|
|
469
|
-
await (0, _entryDataValidation.validateModelEntryData)(
|
|
470
|
-
|
|
471
|
-
|
|
713
|
+
await (0, _entryDataValidation.validateModelEntryData)({
|
|
714
|
+
context,
|
|
715
|
+
model,
|
|
716
|
+
data: initialValues,
|
|
717
|
+
entry: originalEntry
|
|
718
|
+
});
|
|
719
|
+
const values = await (0, _referenceFieldsMapping.referenceFieldsMapping)({
|
|
720
|
+
context,
|
|
721
|
+
model,
|
|
722
|
+
input: initialValues,
|
|
723
|
+
validateEntries: false
|
|
724
|
+
});
|
|
725
|
+
(0, _ownership.checkOwnership)(context, permission, originalEntry);
|
|
472
726
|
const identity = context.security.getIdentity();
|
|
473
727
|
const latestId = latestStorageEntry ? latestStorageEntry.id : sourceId;
|
|
474
728
|
const {
|
|
@@ -487,30 +741,30 @@ const createContentEntryCrud = params => {
|
|
|
487
741
|
type: identity.type
|
|
488
742
|
},
|
|
489
743
|
locked: false,
|
|
490
|
-
publishedOn:
|
|
744
|
+
publishedOn: undefined,
|
|
491
745
|
status: STATUS_DRAFT,
|
|
492
746
|
values
|
|
493
747
|
});
|
|
494
748
|
|
|
495
|
-
let storageEntry =
|
|
749
|
+
let storageEntry = null;
|
|
496
750
|
|
|
497
751
|
try {
|
|
498
|
-
await
|
|
752
|
+
await onBeforeEntryCreateRevision.publish({
|
|
753
|
+
input,
|
|
499
754
|
entry,
|
|
755
|
+
original: originalEntry,
|
|
500
756
|
model
|
|
501
757
|
});
|
|
502
758
|
storageEntry = await (0, _entryStorage.entryToStorageTransform)(context, model, entry);
|
|
503
759
|
const result = await storageOperations.entries.createRevisionFrom(model, {
|
|
504
760
|
entry,
|
|
505
|
-
storageEntry
|
|
506
|
-
originalEntry,
|
|
507
|
-
originalStorageEntry,
|
|
508
|
-
latestEntry,
|
|
509
|
-
latestStorageEntry
|
|
761
|
+
storageEntry
|
|
510
762
|
});
|
|
511
|
-
await
|
|
763
|
+
await onAfterEntryCreateRevision.publish({
|
|
764
|
+
input,
|
|
512
765
|
entry,
|
|
513
766
|
model,
|
|
767
|
+
original: originalEntry,
|
|
514
768
|
storageEntry: result
|
|
515
769
|
});
|
|
516
770
|
return result;
|
|
@@ -524,21 +778,20 @@ const createContentEntryCrud = params => {
|
|
|
524
778
|
});
|
|
525
779
|
}
|
|
526
780
|
},
|
|
527
|
-
updateEntry: async (
|
|
781
|
+
updateEntry: async (initialModel, id, inputData, metaInput) => {
|
|
528
782
|
const permission = await checkEntryPermissions({
|
|
529
783
|
rwd: "w"
|
|
530
784
|
});
|
|
531
|
-
await
|
|
785
|
+
await (0, _access.checkModelAccess)(context, initialModel);
|
|
786
|
+
const model = (0, _valueKeyStorageConverter.attachCmsModelFieldConverters)({
|
|
787
|
+
model: initialModel,
|
|
788
|
+
plugins
|
|
789
|
+
});
|
|
532
790
|
/**
|
|
533
791
|
* Make sure we only work with fields that are defined in the model.
|
|
534
792
|
*/
|
|
535
793
|
|
|
536
|
-
const input =
|
|
537
|
-
/**
|
|
538
|
-
* Validate data early. We don't want to query DB if input data is invalid.
|
|
539
|
-
*/
|
|
540
|
-
|
|
541
|
-
await (0, _entryDataValidation.validateModelEntryData)(context, model, input);
|
|
794
|
+
const input = mapAndCleanUpdatedInputData(model, inputData);
|
|
542
795
|
/**
|
|
543
796
|
* The entry we are going to update.
|
|
544
797
|
*/
|
|
@@ -556,20 +809,41 @@ const createContentEntryCrud = params => {
|
|
|
556
809
|
}
|
|
557
810
|
|
|
558
811
|
const originalEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
|
|
559
|
-
|
|
812
|
+
await (0, _entryDataValidation.validateModelEntryData)({
|
|
813
|
+
context,
|
|
814
|
+
model,
|
|
815
|
+
data: input,
|
|
816
|
+
entry: originalEntry
|
|
817
|
+
});
|
|
818
|
+
(0, _ownership.checkOwnership)(context, permission, originalEntry);
|
|
819
|
+
|
|
820
|
+
const initialValues = _objectSpread(_objectSpread({}, originalEntry.values), input);
|
|
821
|
+
|
|
822
|
+
const values = await (0, _referenceFieldsMapping.referenceFieldsMapping)({
|
|
823
|
+
context,
|
|
824
|
+
model,
|
|
825
|
+
input: initialValues,
|
|
826
|
+
validateEntries: false
|
|
827
|
+
});
|
|
828
|
+
/**
|
|
829
|
+
* If users wants to remove a key from meta values, they need to send meta key with the null value.
|
|
830
|
+
*/
|
|
831
|
+
|
|
832
|
+
const meta = createEntryMeta(metaInput, originalEntry.meta);
|
|
560
833
|
/**
|
|
561
834
|
* We always send the full entry to the hooks and storage operations update.
|
|
562
835
|
*/
|
|
563
836
|
|
|
564
837
|
const entry = _objectSpread(_objectSpread({}, originalEntry), {}, {
|
|
565
838
|
savedOn: new Date().toISOString(),
|
|
566
|
-
values
|
|
839
|
+
values,
|
|
840
|
+
meta
|
|
567
841
|
});
|
|
568
842
|
|
|
569
|
-
let storageEntry =
|
|
843
|
+
let storageEntry = null;
|
|
570
844
|
|
|
571
845
|
try {
|
|
572
|
-
await
|
|
846
|
+
await onBeforeEntryUpdate.publish({
|
|
573
847
|
entry,
|
|
574
848
|
model,
|
|
575
849
|
input,
|
|
@@ -577,13 +851,10 @@ const createContentEntryCrud = params => {
|
|
|
577
851
|
});
|
|
578
852
|
storageEntry = await (0, _entryStorage.entryToStorageTransform)(context, model, entry);
|
|
579
853
|
const result = await storageOperations.entries.update(model, {
|
|
580
|
-
originalEntry,
|
|
581
|
-
originalStorageEntry,
|
|
582
854
|
entry,
|
|
583
|
-
storageEntry
|
|
584
|
-
input
|
|
855
|
+
storageEntry
|
|
585
856
|
});
|
|
586
|
-
await
|
|
857
|
+
await onAfterEntryUpdate.publish({
|
|
587
858
|
entry,
|
|
588
859
|
storageEntry: result,
|
|
589
860
|
model,
|
|
@@ -601,15 +872,96 @@ const createContentEntryCrud = params => {
|
|
|
601
872
|
});
|
|
602
873
|
}
|
|
603
874
|
},
|
|
604
|
-
|
|
875
|
+
republishEntry: async (initialModel, id) => {
|
|
876
|
+
await checkEntryPermissions({
|
|
877
|
+
rwd: "w"
|
|
878
|
+
});
|
|
879
|
+
await (0, _access.checkModelAccess)(context, initialModel);
|
|
880
|
+
const model = (0, _valueKeyStorageConverter.attachCmsModelFieldConverters)({
|
|
881
|
+
model: initialModel,
|
|
882
|
+
plugins
|
|
883
|
+
});
|
|
884
|
+
/**
|
|
885
|
+
* Fetch the entry from the storage.
|
|
886
|
+
*/
|
|
887
|
+
|
|
888
|
+
const originalStorageEntry = await storageOperations.entries.getRevisionById(model, {
|
|
889
|
+
id
|
|
890
|
+
});
|
|
891
|
+
|
|
892
|
+
if (!originalStorageEntry) {
|
|
893
|
+
throw new _handlerGraphql.NotFoundError(`Entry "${id}" was not found!`);
|
|
894
|
+
}
|
|
895
|
+
|
|
896
|
+
const originalEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
|
|
897
|
+
/**
|
|
898
|
+
* We can only process published entries.
|
|
899
|
+
*/
|
|
900
|
+
|
|
901
|
+
if (originalEntry.status !== "published") {
|
|
902
|
+
throw new _error.default("Entry with given ID is not published!", "NOT_PUBLISHED_ERROR", {
|
|
903
|
+
id,
|
|
904
|
+
original: originalEntry
|
|
905
|
+
});
|
|
906
|
+
}
|
|
907
|
+
|
|
908
|
+
const values = await (0, _referenceFieldsMapping.referenceFieldsMapping)({
|
|
909
|
+
context,
|
|
910
|
+
model,
|
|
911
|
+
input: originalEntry.values,
|
|
912
|
+
validateEntries: false
|
|
913
|
+
});
|
|
914
|
+
|
|
915
|
+
const entry = _objectSpread(_objectSpread({}, originalEntry), {}, {
|
|
916
|
+
savedOn: new Date().toISOString(),
|
|
917
|
+
webinyVersion: context.WEBINY_VERSION,
|
|
918
|
+
values
|
|
919
|
+
});
|
|
920
|
+
|
|
921
|
+
const storageEntry = await (0, _entryStorage.entryToStorageTransform)(context, model, entry);
|
|
922
|
+
/**
|
|
923
|
+
* First we need to update existing entry.
|
|
924
|
+
*/
|
|
925
|
+
|
|
926
|
+
try {
|
|
927
|
+
await storageOperations.entries.update(model, {
|
|
928
|
+
entry,
|
|
929
|
+
storageEntry
|
|
930
|
+
});
|
|
931
|
+
} catch (ex) {
|
|
932
|
+
throw new _error.default("Could not update existing entry with new data while re-publishing.", "REPUBLISH_UPDATE_ERROR", {
|
|
933
|
+
entry
|
|
934
|
+
});
|
|
935
|
+
}
|
|
936
|
+
/**
|
|
937
|
+
* Then we move onto publishing it again.
|
|
938
|
+
*/
|
|
939
|
+
|
|
940
|
+
|
|
941
|
+
try {
|
|
942
|
+
return await storageOperations.entries.publish(model, {
|
|
943
|
+
entry,
|
|
944
|
+
storageEntry
|
|
945
|
+
});
|
|
946
|
+
} catch (ex) {
|
|
947
|
+
throw new _error.default("Could not publish existing entry while re-publishing.", "REPUBLISH_PUBLISH_ERROR", {
|
|
948
|
+
entry
|
|
949
|
+
});
|
|
950
|
+
}
|
|
951
|
+
},
|
|
952
|
+
deleteEntryRevision: async (initialModel, revisionId) => {
|
|
605
953
|
const permission = await checkEntryPermissions({
|
|
606
954
|
rwd: "d"
|
|
607
955
|
});
|
|
608
|
-
await
|
|
956
|
+
await (0, _access.checkModelAccess)(context, initialModel);
|
|
957
|
+
const model = (0, _valueKeyStorageConverter.attachCmsModelFieldConverters)({
|
|
958
|
+
model: initialModel,
|
|
959
|
+
plugins
|
|
960
|
+
});
|
|
609
961
|
const {
|
|
610
962
|
id: entryId,
|
|
611
963
|
version
|
|
612
|
-
} = (0,
|
|
964
|
+
} = (0, _utils.parseIdentifier)(revisionId);
|
|
613
965
|
const storageEntryToDelete = await storageOperations.entries.getRevisionById(model, {
|
|
614
966
|
id: revisionId
|
|
615
967
|
});
|
|
@@ -618,14 +970,14 @@ const createContentEntryCrud = params => {
|
|
|
618
970
|
});
|
|
619
971
|
const previousStorageEntry = await storageOperations.entries.getPreviousRevision(model, {
|
|
620
972
|
entryId,
|
|
621
|
-
version
|
|
973
|
+
version: version
|
|
622
974
|
});
|
|
623
975
|
|
|
624
976
|
if (!storageEntryToDelete) {
|
|
625
977
|
throw new _handlerGraphql.NotFoundError(`Entry "${revisionId}" was not found!`);
|
|
626
978
|
}
|
|
627
979
|
|
|
628
|
-
|
|
980
|
+
(0, _ownership.checkOwnership)(context, permission, storageEntryToDelete);
|
|
629
981
|
const latestEntryRevisionId = latestStorageEntry ? latestStorageEntry.id : null;
|
|
630
982
|
const entryToDelete = await (0, _entryStorage.entryFromStorageTransform)(context, model, storageEntryToDelete);
|
|
631
983
|
/**
|
|
@@ -636,8 +988,7 @@ const createContentEntryCrud = params => {
|
|
|
636
988
|
if (entryToDelete.id === latestEntryRevisionId && !previousStorageEntry) {
|
|
637
989
|
return await deleteEntry({
|
|
638
990
|
model,
|
|
639
|
-
entry: entryToDelete
|
|
640
|
-
storageEntry: storageEntryToDelete
|
|
991
|
+
entry: entryToDelete
|
|
641
992
|
});
|
|
642
993
|
}
|
|
643
994
|
/**
|
|
@@ -648,41 +999,45 @@ const createContentEntryCrud = params => {
|
|
|
648
999
|
let entryToSetAsLatest = null;
|
|
649
1000
|
let storageEntryToSetAsLatest = null;
|
|
650
1001
|
|
|
651
|
-
if (entryToDelete.id === latestEntryRevisionId) {
|
|
1002
|
+
if (entryToDelete.id === latestEntryRevisionId && previousStorageEntry) {
|
|
652
1003
|
entryToSetAsLatest = await (0, _entryStorage.entryFromStorageTransform)(context, model, previousStorageEntry);
|
|
653
1004
|
storageEntryToSetAsLatest = previousStorageEntry;
|
|
654
1005
|
}
|
|
655
1006
|
|
|
656
1007
|
try {
|
|
657
|
-
await
|
|
1008
|
+
await onBeforeEntryDeleteRevision.publish({
|
|
658
1009
|
entry: entryToDelete,
|
|
659
1010
|
model
|
|
660
1011
|
});
|
|
661
1012
|
await storageOperations.entries.deleteRevision(model, {
|
|
662
|
-
entryToDelete,
|
|
663
|
-
storageEntryToDelete,
|
|
664
|
-
entryToSetAsLatest,
|
|
665
|
-
storageEntryToSetAsLatest
|
|
1013
|
+
entry: entryToDelete,
|
|
1014
|
+
storageEntry: storageEntryToDelete,
|
|
1015
|
+
latestEntry: entryToSetAsLatest,
|
|
1016
|
+
latestStorageEntry: storageEntryToSetAsLatest
|
|
666
1017
|
});
|
|
667
|
-
await
|
|
1018
|
+
await onAfterEntryDeleteRevision.publish({
|
|
668
1019
|
entry: entryToDelete,
|
|
669
1020
|
model
|
|
670
1021
|
});
|
|
671
1022
|
} catch (ex) {
|
|
672
1023
|
throw new _error.default(ex.message, ex.code || "DELETE_REVISION_ERROR", {
|
|
673
1024
|
error: ex,
|
|
674
|
-
entryToDelete,
|
|
675
|
-
storageEntryToDelete,
|
|
676
|
-
entryToSetAsLatest,
|
|
677
|
-
storageEntryToSetAsLatest
|
|
1025
|
+
entry: entryToDelete,
|
|
1026
|
+
storageEntry: storageEntryToDelete,
|
|
1027
|
+
latestEntry: entryToSetAsLatest,
|
|
1028
|
+
latestStorageEntry: storageEntryToSetAsLatest
|
|
678
1029
|
});
|
|
679
1030
|
}
|
|
680
1031
|
},
|
|
681
|
-
deleteEntry: async (
|
|
1032
|
+
deleteEntry: async (initialModel, entryId) => {
|
|
682
1033
|
const permission = await checkEntryPermissions({
|
|
683
1034
|
rwd: "d"
|
|
684
1035
|
});
|
|
685
|
-
await
|
|
1036
|
+
await (0, _access.checkModelAccess)(context, initialModel);
|
|
1037
|
+
const model = (0, _valueKeyStorageConverter.attachCmsModelFieldConverters)({
|
|
1038
|
+
model: initialModel,
|
|
1039
|
+
plugins
|
|
1040
|
+
});
|
|
686
1041
|
const storageEntry = await storageOperations.entries.getLatestRevisionByEntryId(model, {
|
|
687
1042
|
id: entryId
|
|
688
1043
|
});
|
|
@@ -691,19 +1046,22 @@ const createContentEntryCrud = params => {
|
|
|
691
1046
|
throw new _handlerGraphql.NotFoundError(`Entry "${entryId}" was not found!`);
|
|
692
1047
|
}
|
|
693
1048
|
|
|
694
|
-
|
|
1049
|
+
(0, _ownership.checkOwnership)(context, permission, storageEntry);
|
|
695
1050
|
const entry = await (0, _entryStorage.entryFromStorageTransform)(context, model, storageEntry);
|
|
696
1051
|
return await deleteEntry({
|
|
697
1052
|
model,
|
|
698
|
-
entry
|
|
699
|
-
storageEntry
|
|
1053
|
+
entry
|
|
700
1054
|
});
|
|
701
1055
|
},
|
|
702
|
-
publishEntry: async (
|
|
1056
|
+
publishEntry: async (initialModel, id) => {
|
|
703
1057
|
const permission = await checkEntryPermissions({
|
|
704
1058
|
pw: "p"
|
|
705
1059
|
});
|
|
706
|
-
await
|
|
1060
|
+
await (0, _access.checkModelAccess)(context, initialModel);
|
|
1061
|
+
const model = (0, _valueKeyStorageConverter.attachCmsModelFieldConverters)({
|
|
1062
|
+
model: initialModel,
|
|
1063
|
+
plugins
|
|
1064
|
+
});
|
|
707
1065
|
const originalStorageEntry = await storageOperations.entries.getRevisionById(model, {
|
|
708
1066
|
id
|
|
709
1067
|
});
|
|
@@ -712,7 +1070,7 @@ const createContentEntryCrud = params => {
|
|
|
712
1070
|
throw new _handlerGraphql.NotFoundError(`Entry "${id}" in the model "${model.modelId}" was not found.`);
|
|
713
1071
|
}
|
|
714
1072
|
|
|
715
|
-
|
|
1073
|
+
(0, _ownership.checkOwnership)(context, permission, originalStorageEntry);
|
|
716
1074
|
const originalEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
|
|
717
1075
|
const currentDate = new Date().toISOString();
|
|
718
1076
|
|
|
@@ -723,21 +1081,19 @@ const createContentEntryCrud = params => {
|
|
|
723
1081
|
publishedOn: currentDate
|
|
724
1082
|
});
|
|
725
1083
|
|
|
726
|
-
let storageEntry =
|
|
1084
|
+
let storageEntry = null;
|
|
727
1085
|
|
|
728
1086
|
try {
|
|
729
|
-
await
|
|
1087
|
+
await onBeforeEntryPublish.publish({
|
|
730
1088
|
entry,
|
|
731
1089
|
model
|
|
732
1090
|
});
|
|
733
1091
|
storageEntry = await (0, _entryStorage.entryToStorageTransform)(context, model, entry);
|
|
734
1092
|
const result = await storageOperations.entries.publish(model, {
|
|
735
1093
|
entry,
|
|
736
|
-
storageEntry
|
|
737
|
-
originalEntry,
|
|
738
|
-
originalStorageEntry
|
|
1094
|
+
storageEntry
|
|
739
1095
|
});
|
|
740
|
-
await
|
|
1096
|
+
await onAfterEntryPublish.publish({
|
|
741
1097
|
entry,
|
|
742
1098
|
storageEntry: result,
|
|
743
1099
|
model
|
|
@@ -753,10 +1109,14 @@ const createContentEntryCrud = params => {
|
|
|
753
1109
|
});
|
|
754
1110
|
}
|
|
755
1111
|
},
|
|
756
|
-
requestEntryChanges: async (
|
|
1112
|
+
requestEntryChanges: async (initialModel, id) => {
|
|
757
1113
|
const permission = await checkEntryPermissions({
|
|
758
1114
|
pw: "c"
|
|
759
1115
|
});
|
|
1116
|
+
const model = (0, _valueKeyStorageConverter.attachCmsModelFieldConverters)({
|
|
1117
|
+
model: initialModel,
|
|
1118
|
+
plugins
|
|
1119
|
+
});
|
|
760
1120
|
const originalStorageEntry = await storageOperations.entries.getRevisionById(model, {
|
|
761
1121
|
id
|
|
762
1122
|
});
|
|
@@ -777,27 +1137,25 @@ const createContentEntryCrud = params => {
|
|
|
777
1137
|
throw new _error.default("You cannot request changes on your own entry.", "CANNOT_REQUEST_CHANGES_ON_OWN_ENTRY");
|
|
778
1138
|
}
|
|
779
1139
|
|
|
780
|
-
|
|
1140
|
+
(0, _ownership.checkOwnership)(context, permission, originalEntry);
|
|
781
1141
|
|
|
782
1142
|
const entry = _objectSpread(_objectSpread({}, originalEntry), {}, {
|
|
783
1143
|
status: STATUS_CHANGES_REQUESTED
|
|
784
1144
|
});
|
|
785
1145
|
|
|
786
|
-
let storageEntry =
|
|
1146
|
+
let storageEntry = null;
|
|
787
1147
|
|
|
788
1148
|
try {
|
|
789
|
-
await
|
|
1149
|
+
await onBeforeEntryRequestChanges.publish({
|
|
790
1150
|
entry,
|
|
791
1151
|
model
|
|
792
1152
|
});
|
|
793
1153
|
storageEntry = await (0, _entryStorage.entryToStorageTransform)(context, model, entry);
|
|
794
1154
|
const result = await storageOperations.entries.requestChanges(model, {
|
|
795
|
-
originalEntry,
|
|
796
|
-
originalStorageEntry,
|
|
797
1155
|
entry,
|
|
798
1156
|
storageEntry
|
|
799
1157
|
});
|
|
800
|
-
await
|
|
1158
|
+
await onAfterEntryRequestChanges.publish({
|
|
801
1159
|
entry,
|
|
802
1160
|
storageEntry: result,
|
|
803
1161
|
model
|
|
@@ -810,11 +1168,17 @@ const createContentEntryCrud = params => {
|
|
|
810
1168
|
});
|
|
811
1169
|
}
|
|
812
1170
|
},
|
|
813
|
-
requestEntryReview: async (
|
|
1171
|
+
requestEntryReview: async (initialModel, id) => {
|
|
814
1172
|
const permission = await checkEntryPermissions({
|
|
815
1173
|
pw: "r"
|
|
816
1174
|
});
|
|
817
|
-
const
|
|
1175
|
+
const {
|
|
1176
|
+
id: entryId
|
|
1177
|
+
} = (0, _utils.parseIdentifier)(id);
|
|
1178
|
+
const model = (0, _valueKeyStorageConverter.attachCmsModelFieldConverters)({
|
|
1179
|
+
model: initialModel,
|
|
1180
|
+
plugins
|
|
1181
|
+
});
|
|
818
1182
|
const originalStorageEntry = await storageOperations.entries.getRevisionById(model, {
|
|
819
1183
|
id
|
|
820
1184
|
});
|
|
@@ -837,27 +1201,25 @@ const createContentEntryCrud = params => {
|
|
|
837
1201
|
});
|
|
838
1202
|
}
|
|
839
1203
|
|
|
840
|
-
|
|
1204
|
+
(0, _ownership.checkOwnership)(context, permission, originalEntry);
|
|
841
1205
|
|
|
842
1206
|
const entry = _objectSpread(_objectSpread({}, originalEntry), {}, {
|
|
843
1207
|
status: STATUS_REVIEW_REQUESTED
|
|
844
1208
|
});
|
|
845
1209
|
|
|
846
|
-
let storageEntry =
|
|
1210
|
+
let storageEntry = null;
|
|
847
1211
|
|
|
848
1212
|
try {
|
|
849
|
-
await
|
|
1213
|
+
await onBeforeEntryRequestReview.publish({
|
|
850
1214
|
entry,
|
|
851
1215
|
model
|
|
852
1216
|
});
|
|
853
1217
|
storageEntry = await (0, _entryStorage.entryToStorageTransform)(context, model, entry);
|
|
854
1218
|
const result = await storageOperations.entries.requestReview(model, {
|
|
855
|
-
originalEntry,
|
|
856
|
-
originalStorageEntry,
|
|
857
1219
|
entry,
|
|
858
1220
|
storageEntry
|
|
859
1221
|
});
|
|
860
|
-
await
|
|
1222
|
+
await onAfterEntryRequestReview.publish({
|
|
861
1223
|
entry,
|
|
862
1224
|
storageEntry: result,
|
|
863
1225
|
model
|
|
@@ -870,11 +1232,17 @@ const createContentEntryCrud = params => {
|
|
|
870
1232
|
});
|
|
871
1233
|
}
|
|
872
1234
|
},
|
|
873
|
-
unpublishEntry: async (
|
|
1235
|
+
unpublishEntry: async (initialModel, id) => {
|
|
874
1236
|
const permission = await checkEntryPermissions({
|
|
875
1237
|
pw: "u"
|
|
876
1238
|
});
|
|
877
|
-
const
|
|
1239
|
+
const model = (0, _valueKeyStorageConverter.attachCmsModelFieldConverters)({
|
|
1240
|
+
model: initialModel,
|
|
1241
|
+
plugins
|
|
1242
|
+
});
|
|
1243
|
+
const {
|
|
1244
|
+
id: entryId
|
|
1245
|
+
} = (0, _utils.parseIdentifier)(id);
|
|
878
1246
|
const originalStorageEntry = await storageOperations.entries.getPublishedRevisionByEntryId(model, {
|
|
879
1247
|
id: entryId
|
|
880
1248
|
});
|
|
@@ -889,28 +1257,26 @@ const createContentEntryCrud = params => {
|
|
|
889
1257
|
});
|
|
890
1258
|
}
|
|
891
1259
|
|
|
892
|
-
|
|
1260
|
+
(0, _ownership.checkOwnership)(context, permission, originalStorageEntry);
|
|
893
1261
|
const originalEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
|
|
894
1262
|
|
|
895
1263
|
const entry = _objectSpread(_objectSpread({}, originalEntry), {}, {
|
|
896
1264
|
status: STATUS_UNPUBLISHED
|
|
897
1265
|
});
|
|
898
1266
|
|
|
899
|
-
let storageEntry =
|
|
1267
|
+
let storageEntry = null;
|
|
900
1268
|
|
|
901
1269
|
try {
|
|
902
|
-
await
|
|
1270
|
+
await onBeforeEntryUnpublish.publish({
|
|
903
1271
|
entry,
|
|
904
1272
|
model
|
|
905
1273
|
});
|
|
906
1274
|
storageEntry = await (0, _entryStorage.entryToStorageTransform)(context, model, entry);
|
|
907
1275
|
const result = await storageOperations.entries.unpublish(model, {
|
|
908
|
-
originalEntry,
|
|
909
|
-
originalStorageEntry,
|
|
910
1276
|
entry,
|
|
911
1277
|
storageEntry
|
|
912
1278
|
});
|
|
913
|
-
await
|
|
1279
|
+
await onAfterEntryUnpublish.publish({
|
|
914
1280
|
entry,
|
|
915
1281
|
storageEntry: result,
|
|
916
1282
|
model
|