@webiny/api-headless-cms 5.33.5 → 5.34.0-beta.1
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.js +3 -7
- package/context.js.map +1 -1
- package/crud/contentEntry/afterDelete.d.ts +2 -2
- package/crud/contentEntry/afterDelete.js +2 -2
- package/crud/contentEntry/afterDelete.js.map +1 -1
- package/crud/contentEntry/beforeCreate.d.ts +2 -2
- package/crud/contentEntry/beforeCreate.js +2 -2
- package/crud/contentEntry/beforeCreate.js.map +1 -1
- package/crud/contentEntry/beforeUpdate.d.ts +2 -2
- package/crud/contentEntry/beforeUpdate.js +2 -2
- package/crud/contentEntry/beforeUpdate.js.map +1 -1
- package/crud/contentEntry/entryDataValidation.js +3 -7
- package/crud/contentEntry/entryDataValidation.js.map +1 -1
- package/crud/contentEntry/markLockedFields.js +10 -11
- package/crud/contentEntry/markLockedFields.js.map +1 -1
- package/crud/contentEntry/referenceFieldsMapping.js +11 -13
- package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
- package/crud/contentEntry/searchableFields.d.ts +9 -0
- package/crud/contentEntry/searchableFields.js +83 -0
- package/crud/contentEntry/searchableFields.js.map +1 -0
- package/crud/contentEntry.crud.d.ts +0 -2
- package/crud/contentEntry.crud.js +249 -269
- package/crud/contentEntry.crud.js.map +1 -1
- package/crud/contentModel/afterCreate.d.ts +3 -3
- package/crud/contentModel/afterCreate.js +5 -5
- package/crud/contentModel/afterCreate.js.map +1 -1
- package/crud/contentModel/afterCreateFrom.d.ts +3 -3
- package/crud/contentModel/afterCreateFrom.js +5 -5
- package/crud/contentModel/afterCreateFrom.js.map +1 -1
- package/crud/contentModel/afterDelete.d.ts +3 -3
- package/crud/contentModel/afterDelete.js +5 -5
- package/crud/contentModel/afterDelete.js.map +1 -1
- package/crud/contentModel/afterUpdate.d.ts +3 -3
- package/crud/contentModel/afterUpdate.js +5 -5
- package/crud/contentModel/afterUpdate.js.map +1 -1
- package/crud/contentModel/beforeCreate.d.ts +4 -4
- package/crud/contentModel/beforeCreate.js +10 -10
- package/crud/contentModel/beforeCreate.js.map +1 -1
- package/crud/contentModel/beforeDelete.d.ts +3 -3
- package/crud/contentModel/beforeDelete.js +6 -6
- package/crud/contentModel/beforeDelete.js.map +1 -1
- package/crud/contentModel/beforeUpdate.d.ts +3 -3
- package/crud/contentModel/beforeUpdate.js +5 -5
- package/crud/contentModel/beforeUpdate.js.map +1 -1
- package/crud/contentModel/createFieldStorageId.js +5 -1
- package/crud/contentModel/createFieldStorageId.js.map +1 -1
- package/crud/contentModel/models.js +12 -0
- package/crud/contentModel/models.js.map +1 -1
- package/crud/contentModel/validateModel.js +1 -1
- package/crud/contentModel/validateModelFields.js +42 -34
- package/crud/contentModel/validateModelFields.js.map +1 -1
- package/crud/contentModel.crud.js +222 -169
- package/crud/contentModel.crud.js.map +1 -1
- package/crud/contentModelGroup/beforeCreate.d.ts +2 -2
- package/crud/contentModelGroup/beforeCreate.js +3 -3
- package/crud/contentModelGroup/beforeCreate.js.map +1 -1
- package/crud/contentModelGroup/beforeDelete.d.ts +2 -2
- package/crud/contentModelGroup/beforeDelete.js +3 -3
- package/crud/contentModelGroup/beforeDelete.js.map +1 -1
- package/crud/contentModelGroup/beforeUpdate.d.ts +2 -2
- package/crud/contentModelGroup/beforeUpdate.js +2 -2
- package/crud/contentModelGroup/beforeUpdate.js.map +1 -1
- package/crud/contentModelGroup.crud.js +87 -37
- package/crud/contentModelGroup.crud.js.map +1 -1
- package/crud/index.js +3 -7
- package/crud/index.js.map +1 -1
- package/crud/settings.crud.js +3 -8
- package/crud/settings.crud.js.map +1 -1
- package/crud/system.crud.js +63 -51
- package/crud/system.crud.js.map +1 -1
- package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +1 -1
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.d.ts +11 -0
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +239 -0
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -0
- package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +17 -19
- package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -1
- package/fieldConverters/index.d.ts +2 -1
- package/fieldConverters/index.js +3 -1
- package/fieldConverters/index.js.map +1 -1
- package/graphql/graphQLHandlerFactory.js +27 -17
- package/graphql/graphQLHandlerFactory.js.map +1 -1
- package/graphql/schema/baseContentSchema.js +4 -8
- package/graphql/schema/baseContentSchema.js.map +1 -1
- package/graphql/schema/contentEntries.js +1 -1
- package/graphql/schema/contentModels.js +18 -1
- package/graphql/schema/contentModels.js.map +1 -1
- package/graphql/schema/createFieldResolvers.d.ts +1 -1
- package/graphql/schema/createFieldResolvers.js +12 -14
- package/graphql/schema/createFieldResolvers.js.map +1 -1
- package/graphql/schema/createManageResolvers.js +4 -18
- package/graphql/schema/createManageResolvers.js.map +1 -1
- package/graphql/schema/createManageSDL.js +7 -10
- package/graphql/schema/createManageSDL.js.map +1 -1
- package/graphql/schema/createPreviewResolvers.js +3 -7
- package/graphql/schema/createPreviewResolvers.js.map +1 -1
- package/graphql/schema/createReadResolvers.js +3 -7
- package/graphql/schema/createReadResolvers.js.map +1 -1
- package/graphql/schema/createReadSDL.js +5 -3
- package/graphql/schema/createReadSDL.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveGet.js +5 -9
- package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
- package/graphql/schema/resolvers/preview/resolveGet.js +3 -7
- package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
- package/graphql/schema/resolvers/read/resolveGet.js +3 -7
- package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
- package/graphqlFields/dynamicZone/dynamicZoneField.d.ts +2 -0
- package/graphqlFields/dynamicZone/dynamicZoneField.js +234 -0
- package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -0
- package/graphqlFields/dynamicZone/dynamicZoneStorage.d.ts +3 -0
- package/graphqlFields/dynamicZone/dynamicZoneStorage.js +79 -0
- package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +1 -0
- package/graphqlFields/dynamicZone/index.d.ts +2 -0
- package/graphqlFields/dynamicZone/index.js +21 -0
- package/graphqlFields/dynamicZone/index.js.map +1 -0
- package/graphqlFields/index.d.ts +1 -1
- package/graphqlFields/index.js +3 -1
- package/graphqlFields/index.js.map +1 -1
- package/graphqlFields/number.js +4 -0
- package/graphqlFields/number.js.map +1 -1
- package/graphqlFields/object.js +123 -73
- package/graphqlFields/object.js.map +1 -1
- package/graphqlFields/ref.js +23 -23
- package/graphqlFields/ref.js.map +1 -1
- package/index.d.ts +1 -1
- package/index.js +3 -1
- package/index.js.map +1 -1
- package/modelManager/DefaultCmsModelManager.d.ts +7 -7
- package/modelManager/DefaultCmsModelManager.js +1 -1
- package/package.json +27 -28
- package/parameters/header.js +1 -1
- package/parameters/manual.js +7 -8
- package/parameters/manual.js.map +1 -1
- package/parameters/path.js +1 -1
- package/plugins/CmsGroupPlugin.js +1 -1
- package/plugins/CmsModelFieldConverterPlugin.d.ts +2 -2
- package/plugins/CmsModelFieldConverterPlugin.js +1 -1
- package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
- package/plugins/CmsModelPlugin.d.ts +6 -2
- package/plugins/CmsModelPlugin.js +18 -13
- package/plugins/CmsModelPlugin.js.map +1 -1
- package/plugins/CmsParametersPlugin.js +1 -1
- package/plugins/StorageTransformPlugin.d.ts +11 -11
- package/plugins/StorageTransformPlugin.js +1 -1
- package/plugins/StorageTransformPlugin.js.map +1 -1
- package/storage/object.js +7 -8
- package/storage/object.js.map +1 -1
- package/types.d.ts +436 -164
- package/types.js +50 -9
- package/types.js.map +1 -1
- package/upgrades/5.33.0/index.js +5 -9
- package/upgrades/5.33.0/index.js.map +1 -1
- package/utils/converters/Converter.js +1 -1
- package/utils/converters/ConverterCollection.js +10 -8
- package/utils/converters/ConverterCollection.js.map +1 -1
- package/utils/converters/valueKeyStorageConverter.js +3 -7
- package/utils/converters/valueKeyStorageConverter.js.map +1 -1
- package/utils/createTypeFromFields.d.ts +15 -0
- package/utils/createTypeFromFields.js +75 -0
- package/utils/createTypeFromFields.js.map +1 -0
- package/utils/createTypeName.js +4 -2
- package/utils/createTypeName.js.map +1 -1
- package/utils/entryStorage.js +17 -18
- package/utils/entryStorage.js.map +1 -1
- package/utils/filterModelFields.js +5 -9
- package/utils/filterModelFields.js.map +1 -1
- package/utils/getBaseFieldType.d.ts +4 -0
- package/utils/getBaseFieldType.js +12 -0
- package/utils/getBaseFieldType.js.map +1 -0
- package/utils/permissions.js +1 -5
- package/utils/permissions.js.map +1 -1
- package/utils/pluralizedTypeName.js +1 -1
- package/utils/renderFields.js +3 -1
- package/utils/renderFields.js.map +1 -1
- package/utils/renderGetFilterFields.js +8 -3
- package/utils/renderGetFilterFields.js.map +1 -1
- package/utils/renderInputFields.js +3 -1
- package/utils/renderInputFields.js.map +1 -1
- package/utils/renderListFilterFields.js +12 -2
- package/utils/renderListFilterFields.js.map +1 -1
- package/utils/renderSortEnum.js +3 -1
- package/utils/renderSortEnum.js.map +1 -1
- package/utils/toSlug.js +1 -1
- package/validators/dynamicZone.d.ts +2 -0
- package/validators/dynamicZone.js +24 -0
- package/validators/dynamicZone.js.map +1 -0
- package/validators/index.js +3 -1
- package/validators/index.js.map +1 -1
- package/validators/unique.js +1 -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
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
4
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports.createModelsCrud = void 0;
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
11
11
|
|
|
12
12
|
var _dataloader = _interopRequireDefault(require("dataloader"));
|
|
13
13
|
|
|
@@ -49,60 +49,19 @@ var _access = require("../utils/access");
|
|
|
49
49
|
|
|
50
50
|
var _validateModelFields = require("./contentModel/validateModelFields");
|
|
51
51
|
|
|
52
|
-
var _semver = _interopRequireDefault(require("semver"));
|
|
53
|
-
|
|
54
|
-
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; }
|
|
55
|
-
|
|
56
|
-
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; }
|
|
57
|
-
|
|
58
52
|
/**
|
|
59
|
-
*
|
|
60
|
-
* Required because of the 5.33.0 upgrade.
|
|
61
|
-
* Until the upgrade is done, API will break because there is no storageId assigned.
|
|
53
|
+
* Given a model, return an array of tags ensuring the `type` tag is set.
|
|
62
54
|
*/
|
|
63
|
-
const
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
var _field$settings;
|
|
68
|
-
|
|
69
|
-
if ((_field$settings = field.settings) !== null && _field$settings !== void 0 && _field$settings.fields) {
|
|
70
|
-
field.settings.fields = attachStorageIdToFields(field.settings.fields);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
if (!field.storageId) {
|
|
74
|
-
field.storageId = field.fieldId;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
return field;
|
|
78
|
-
});
|
|
79
|
-
};
|
|
80
|
-
|
|
81
|
-
const attachStorageIdToModelFields = model => {
|
|
82
|
-
if (!model.webinyVersion) {
|
|
83
|
-
return model.fields;
|
|
84
|
-
}
|
|
55
|
+
const ensureTypeTag = model => {
|
|
56
|
+
// Let's make sure we have a `type` tag assigned.
|
|
57
|
+
// If `type` tag is not set, set it to a default one (`model`).
|
|
58
|
+
const tags = model.tags || [];
|
|
85
59
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
if (!version) {
|
|
89
|
-
return model.fields;
|
|
60
|
+
if (!tags.some(tag => tag.startsWith("type:"))) {
|
|
61
|
+
tags.push("type:model");
|
|
90
62
|
}
|
|
91
|
-
/**
|
|
92
|
-
* Unfortunately we need to check for beta and next.
|
|
93
|
-
* TODO remove after 5.33.0
|
|
94
|
-
*/
|
|
95
|
-
|
|
96
63
|
|
|
97
|
-
|
|
98
|
-
return attachStorageIdToFields(model.fields);
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
if (_semver.default.compare(version, featureVersion) >= 0) {
|
|
102
|
-
return model.fields;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
return attachStorageIdToFields(model.fields);
|
|
64
|
+
return tags;
|
|
106
65
|
};
|
|
107
66
|
|
|
108
67
|
const createModelsCrud = params => {
|
|
@@ -122,8 +81,8 @@ const createModelsCrud = params => {
|
|
|
122
81
|
}
|
|
123
82
|
});
|
|
124
83
|
return [models.map(model => {
|
|
125
|
-
return
|
|
126
|
-
|
|
84
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, model), {}, {
|
|
85
|
+
tags: ensureTypeTag(model),
|
|
127
86
|
tenant: model.tenant || getTenant().id,
|
|
128
87
|
locale: model.locale || getLocale().code
|
|
129
88
|
});
|
|
@@ -161,19 +120,20 @@ const createModelsCrud = params => {
|
|
|
161
120
|
*/
|
|
162
121
|
.filter(plugin => {
|
|
163
122
|
const {
|
|
164
|
-
tenant:
|
|
165
|
-
locale:
|
|
123
|
+
tenant: modelTenant,
|
|
124
|
+
locale: modelLocale
|
|
166
125
|
} = plugin.contentModel;
|
|
167
126
|
|
|
168
|
-
if (
|
|
127
|
+
if (modelTenant && modelTenant !== tenant) {
|
|
169
128
|
return false;
|
|
170
|
-
} else if (
|
|
129
|
+
} else if (modelLocale && modelLocale !== locale) {
|
|
171
130
|
return false;
|
|
172
131
|
}
|
|
173
132
|
|
|
174
133
|
return true;
|
|
175
134
|
}).map(plugin => {
|
|
176
|
-
return
|
|
135
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, plugin.contentModel), {}, {
|
|
136
|
+
tags: ensureTypeTag(plugin.contentModel),
|
|
177
137
|
tenant,
|
|
178
138
|
locale,
|
|
179
139
|
webinyVersion: context.WEBINY_VERSION
|
|
@@ -210,7 +170,8 @@ const createModelsCrud = params => {
|
|
|
210
170
|
throw new _handlerGraphql.NotFoundError(`Content model "${modelId}" was not found!`);
|
|
211
171
|
}
|
|
212
172
|
|
|
213
|
-
return
|
|
173
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, model), {}, {
|
|
174
|
+
tags: ensureTypeTag(model),
|
|
214
175
|
tenant: model.tenant || getTenant().id,
|
|
215
176
|
locale: model.locale || getLocale().code
|
|
216
177
|
});
|
|
@@ -258,61 +219,104 @@ const createModelsCrud = params => {
|
|
|
258
219
|
|
|
259
220
|
return await updateManager(context, model);
|
|
260
221
|
};
|
|
222
|
+
/**
|
|
223
|
+
* Create
|
|
224
|
+
*/
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
const onModelBeforeCreate = (0, _pubsub.createTopic)("cms.onModelBeforeCreate");
|
|
228
|
+
const onModelAfterCreate = (0, _pubsub.createTopic)("cms.onModelAfterCreate");
|
|
229
|
+
const onModelCreateError = (0, _pubsub.createTopic)("cms.onModelCreateError");
|
|
230
|
+
/**
|
|
231
|
+
* Create from / clone
|
|
232
|
+
*/
|
|
233
|
+
|
|
234
|
+
const onModelBeforeCreateFrom = (0, _pubsub.createTopic)("cms.onModelBeforeCreateFrom");
|
|
235
|
+
const onModelAfterCreateFrom = (0, _pubsub.createTopic)("cms.onModelAfterCreateFrom");
|
|
236
|
+
const onModelCreateFromError = (0, _pubsub.createTopic)("cms.onModelCreateFromError");
|
|
237
|
+
/**
|
|
238
|
+
* Update
|
|
239
|
+
*/
|
|
240
|
+
|
|
241
|
+
const onModelBeforeUpdate = (0, _pubsub.createTopic)("cms.onModelBeforeUpdate");
|
|
242
|
+
const onModelAfterUpdate = (0, _pubsub.createTopic)("cms.onModelAfterUpdate");
|
|
243
|
+
const onModelUpdateError = (0, _pubsub.createTopic)("cms.onModelUpdateError");
|
|
244
|
+
/**
|
|
245
|
+
* Delete
|
|
246
|
+
*/
|
|
247
|
+
|
|
248
|
+
const onModelBeforeDelete = (0, _pubsub.createTopic)("cms.onModelBeforeDelete");
|
|
249
|
+
const onModelAfterDelete = (0, _pubsub.createTopic)("cms.onModelAfterDelete");
|
|
250
|
+
const onModelDeleteError = (0, _pubsub.createTopic)("cms.onModelDeleteError");
|
|
251
|
+
/**
|
|
252
|
+
* Initialize
|
|
253
|
+
*/
|
|
261
254
|
|
|
262
|
-
const onBeforeModelCreate = (0, _pubsub.createTopic)();
|
|
263
|
-
const onAfterModelCreate = (0, _pubsub.createTopic)();
|
|
264
|
-
const onBeforeModelCreateFrom = (0, _pubsub.createTopic)();
|
|
265
|
-
const onAfterModelCreateFrom = (0, _pubsub.createTopic)();
|
|
266
|
-
const onBeforeModelUpdate = (0, _pubsub.createTopic)();
|
|
267
|
-
const onAfterModelUpdate = (0, _pubsub.createTopic)();
|
|
268
|
-
const onBeforeModelDelete = (0, _pubsub.createTopic)();
|
|
269
|
-
const onAfterModelDelete = (0, _pubsub.createTopic)();
|
|
270
255
|
const onModelInitialize = (0, _pubsub.createTopic)("cms.onModelInitialize");
|
|
271
256
|
/**
|
|
272
257
|
* We need to assign some default behaviors.
|
|
273
258
|
*/
|
|
274
259
|
|
|
275
|
-
(0, _beforeCreate.
|
|
276
|
-
|
|
277
|
-
|
|
260
|
+
(0, _beforeCreate.assignModelBeforeCreate)({
|
|
261
|
+
onModelBeforeCreate,
|
|
262
|
+
onModelBeforeCreateFrom,
|
|
278
263
|
plugins: context.plugins,
|
|
279
264
|
storageOperations
|
|
280
265
|
});
|
|
281
|
-
(0, _afterCreate.
|
|
266
|
+
(0, _afterCreate.assignModelAfterCreate)({
|
|
282
267
|
context,
|
|
283
|
-
|
|
268
|
+
onModelAfterCreate
|
|
284
269
|
});
|
|
285
|
-
(0, _beforeUpdate.
|
|
286
|
-
|
|
270
|
+
(0, _beforeUpdate.assignModelBeforeUpdate)({
|
|
271
|
+
onModelBeforeUpdate,
|
|
287
272
|
plugins: context.plugins,
|
|
288
273
|
storageOperations
|
|
289
274
|
});
|
|
290
|
-
(0, _afterUpdate.
|
|
275
|
+
(0, _afterUpdate.assignModelAfterUpdate)({
|
|
291
276
|
context,
|
|
292
|
-
|
|
277
|
+
onModelAfterUpdate
|
|
293
278
|
});
|
|
294
|
-
(0, _afterCreateFrom.
|
|
279
|
+
(0, _afterCreateFrom.assignModelAfterCreateFrom)({
|
|
295
280
|
context,
|
|
296
|
-
|
|
281
|
+
onModelAfterCreateFrom
|
|
297
282
|
});
|
|
298
|
-
(0, _beforeDelete.
|
|
299
|
-
|
|
283
|
+
(0, _beforeDelete.assignModelBeforeDelete)({
|
|
284
|
+
onModelBeforeDelete,
|
|
300
285
|
plugins: context.plugins,
|
|
301
286
|
storageOperations
|
|
302
287
|
});
|
|
303
|
-
(0, _afterDelete.
|
|
288
|
+
(0, _afterDelete.assignModelAfterDelete)({
|
|
304
289
|
context,
|
|
305
|
-
|
|
290
|
+
onModelAfterDelete
|
|
306
291
|
});
|
|
307
292
|
return {
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
293
|
+
/**
|
|
294
|
+
* Deprecated - will be removed in 5.36.0
|
|
295
|
+
*/
|
|
296
|
+
onBeforeModelCreate: onModelBeforeCreate,
|
|
297
|
+
onAfterModelCreate: onModelAfterCreate,
|
|
298
|
+
onBeforeModelCreateFrom: onModelBeforeCreateFrom,
|
|
299
|
+
onAfterModelCreateFrom: onModelAfterCreateFrom,
|
|
300
|
+
onBeforeModelUpdate: onModelBeforeUpdate,
|
|
301
|
+
onAfterModelUpdate: onModelAfterUpdate,
|
|
302
|
+
onBeforeModelDelete: onModelBeforeDelete,
|
|
303
|
+
onAfterModelDelete: onModelAfterDelete,
|
|
304
|
+
|
|
305
|
+
/**
|
|
306
|
+
* Released in 5.34.0
|
|
307
|
+
*/
|
|
308
|
+
onModelBeforeCreate,
|
|
309
|
+
onModelAfterCreate,
|
|
310
|
+
onModelCreateError,
|
|
311
|
+
onModelBeforeCreateFrom,
|
|
312
|
+
onModelAfterCreateFrom,
|
|
313
|
+
onModelCreateFromError,
|
|
314
|
+
onModelBeforeUpdate,
|
|
315
|
+
onModelAfterUpdate,
|
|
316
|
+
onModelUpdateError,
|
|
317
|
+
onModelBeforeDelete,
|
|
318
|
+
onModelAfterDelete,
|
|
319
|
+
onModelDeleteError,
|
|
316
320
|
onModelInitialize,
|
|
317
321
|
clearModelsCache,
|
|
318
322
|
getModel,
|
|
@@ -354,22 +358,34 @@ const createModelsCrud = params => {
|
|
|
354
358
|
fields,
|
|
355
359
|
lockedFields: [],
|
|
356
360
|
layout: input.layout || [],
|
|
361
|
+
tags: [...(input.tags || [])],
|
|
357
362
|
webinyVersion: context.WEBINY_VERSION
|
|
358
363
|
};
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
model
|
|
371
|
-
|
|
372
|
-
|
|
364
|
+
model.tags = ensureTypeTag(model);
|
|
365
|
+
|
|
366
|
+
try {
|
|
367
|
+
await onModelBeforeCreate.publish({
|
|
368
|
+
input,
|
|
369
|
+
model
|
|
370
|
+
});
|
|
371
|
+
const createdModel = await storageOperations.models.create({
|
|
372
|
+
model
|
|
373
|
+
});
|
|
374
|
+
loaders.listModels.clearAll();
|
|
375
|
+
await updateManager(context, model);
|
|
376
|
+
await onModelAfterCreate.publish({
|
|
377
|
+
input,
|
|
378
|
+
model: createdModel
|
|
379
|
+
});
|
|
380
|
+
return createdModel;
|
|
381
|
+
} catch (ex) {
|
|
382
|
+
await onModelCreateError.publish({
|
|
383
|
+
input,
|
|
384
|
+
model,
|
|
385
|
+
error: ex
|
|
386
|
+
});
|
|
387
|
+
throw ex;
|
|
388
|
+
}
|
|
373
389
|
},
|
|
374
390
|
|
|
375
391
|
/**
|
|
@@ -381,29 +397,38 @@ const createModelsCrud = params => {
|
|
|
381
397
|
model: initialModel,
|
|
382
398
|
original
|
|
383
399
|
} = params;
|
|
384
|
-
|
|
385
|
-
const model = _objectSpread(_objectSpread({}, initialModel), {}, {
|
|
400
|
+
const model = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, initialModel), {}, {
|
|
386
401
|
tenant: initialModel.tenant || getTenant().id,
|
|
387
402
|
locale: initialModel.locale || getLocale().code,
|
|
388
403
|
webinyVersion: context.WEBINY_VERSION
|
|
389
404
|
});
|
|
390
405
|
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
406
|
+
try {
|
|
407
|
+
await onModelBeforeUpdate.publish({
|
|
408
|
+
input: {},
|
|
409
|
+
original,
|
|
410
|
+
model
|
|
411
|
+
});
|
|
412
|
+
const resultModel = await storageOperations.models.update({
|
|
413
|
+
model
|
|
414
|
+
});
|
|
415
|
+
await updateManager(context, resultModel);
|
|
416
|
+
loaders.listModels.clearAll();
|
|
417
|
+
await onModelAfterUpdate.publish({
|
|
418
|
+
input: {},
|
|
419
|
+
original,
|
|
420
|
+
model: resultModel
|
|
421
|
+
});
|
|
422
|
+
return resultModel;
|
|
423
|
+
} catch (ex) {
|
|
424
|
+
await onModelUpdateError.publish({
|
|
425
|
+
input: {},
|
|
426
|
+
original,
|
|
427
|
+
model,
|
|
428
|
+
error: ex
|
|
429
|
+
});
|
|
430
|
+
throw ex;
|
|
431
|
+
}
|
|
407
432
|
},
|
|
408
433
|
|
|
409
434
|
async createModelFrom(modelId, data) {
|
|
@@ -443,8 +468,7 @@ const createModelsCrud = params => {
|
|
|
443
468
|
}
|
|
444
469
|
|
|
445
470
|
const identity = getIdentity();
|
|
446
|
-
|
|
447
|
-
const model = _objectSpread(_objectSpread({}, original), {}, {
|
|
471
|
+
const model = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, original), {}, {
|
|
448
472
|
locale: locale.code,
|
|
449
473
|
group: {
|
|
450
474
|
id: group.id,
|
|
@@ -464,22 +488,32 @@ const createModelsCrud = params => {
|
|
|
464
488
|
webinyVersion: context.WEBINY_VERSION
|
|
465
489
|
});
|
|
466
490
|
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
491
|
+
try {
|
|
492
|
+
await onModelBeforeCreateFrom.publish({
|
|
493
|
+
input,
|
|
494
|
+
model,
|
|
495
|
+
original
|
|
496
|
+
});
|
|
497
|
+
const createdModel = await storageOperations.models.create({
|
|
498
|
+
model
|
|
499
|
+
});
|
|
500
|
+
loaders.listModels.clearAll();
|
|
501
|
+
await updateManager(context, model);
|
|
502
|
+
await onModelAfterCreateFrom.publish({
|
|
503
|
+
input,
|
|
504
|
+
original,
|
|
505
|
+
model: createdModel
|
|
506
|
+
});
|
|
507
|
+
return createdModel;
|
|
508
|
+
} catch (ex) {
|
|
509
|
+
await onModelCreateFromError.publish({
|
|
510
|
+
input,
|
|
511
|
+
original,
|
|
512
|
+
model,
|
|
513
|
+
error: ex
|
|
514
|
+
});
|
|
515
|
+
throw ex;
|
|
516
|
+
}
|
|
483
517
|
},
|
|
484
518
|
|
|
485
519
|
async updateModel(modelId, inputData) {
|
|
@@ -520,8 +554,7 @@ const createModelsCrud = params => {
|
|
|
520
554
|
}
|
|
521
555
|
|
|
522
556
|
const fields = await (0, _createFieldModels.createFieldModels)(inputData.fields);
|
|
523
|
-
|
|
524
|
-
const model = _objectSpread(_objectSpread(_objectSpread({}, original), input), {}, {
|
|
557
|
+
const model = (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, original), input), {}, {
|
|
525
558
|
group,
|
|
526
559
|
tenant: original.tenant || getTenant().id,
|
|
527
560
|
locale: original.locale || getLocale().code,
|
|
@@ -529,46 +562,66 @@ const createModelsCrud = params => {
|
|
|
529
562
|
fields,
|
|
530
563
|
savedOn: new Date().toISOString()
|
|
531
564
|
});
|
|
565
|
+
model.tags = ensureTypeTag(model);
|
|
532
566
|
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
567
|
+
try {
|
|
568
|
+
await onModelBeforeUpdate.publish({
|
|
569
|
+
input,
|
|
570
|
+
original,
|
|
571
|
+
model
|
|
572
|
+
});
|
|
573
|
+
const resultModel = await storageOperations.models.update({
|
|
574
|
+
model
|
|
575
|
+
});
|
|
576
|
+
await updateManager(context, resultModel);
|
|
577
|
+
await onModelAfterUpdate.publish({
|
|
578
|
+
input,
|
|
579
|
+
original,
|
|
580
|
+
model: resultModel
|
|
581
|
+
});
|
|
582
|
+
return resultModel;
|
|
583
|
+
} catch (ex) {
|
|
584
|
+
await onModelUpdateError.publish({
|
|
585
|
+
input,
|
|
586
|
+
model,
|
|
587
|
+
original,
|
|
588
|
+
error: ex
|
|
589
|
+
});
|
|
590
|
+
throw ex;
|
|
591
|
+
}
|
|
548
592
|
},
|
|
549
593
|
|
|
550
594
|
async deleteModel(modelId) {
|
|
551
595
|
await checkModelPermissions("d");
|
|
552
596
|
const model = await getModel(modelId);
|
|
553
|
-
await onBeforeModelDelete.publish({
|
|
554
|
-
model
|
|
555
|
-
});
|
|
556
597
|
|
|
557
598
|
try {
|
|
558
|
-
await
|
|
599
|
+
await onModelBeforeDelete.publish({
|
|
600
|
+
model
|
|
601
|
+
});
|
|
602
|
+
|
|
603
|
+
try {
|
|
604
|
+
await storageOperations.models.delete({
|
|
605
|
+
model
|
|
606
|
+
});
|
|
607
|
+
} catch (ex) {
|
|
608
|
+
throw new _error.default(ex.message || "Could not delete the content model", ex.code || "CONTENT_MODEL_DELETE_ERROR", {
|
|
609
|
+
error: ex,
|
|
610
|
+
modelId: model.modelId
|
|
611
|
+
});
|
|
612
|
+
}
|
|
613
|
+
|
|
614
|
+
await onModelAfterDelete.publish({
|
|
559
615
|
model
|
|
560
616
|
});
|
|
617
|
+
managers.delete(model.modelId);
|
|
561
618
|
} catch (ex) {
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
619
|
+
await onModelDeleteError.publish({
|
|
620
|
+
model,
|
|
621
|
+
error: ex
|
|
565
622
|
});
|
|
623
|
+
throw ex;
|
|
566
624
|
}
|
|
567
|
-
|
|
568
|
-
await onAfterModelDelete.publish({
|
|
569
|
-
model
|
|
570
|
-
});
|
|
571
|
-
managers.delete(model.modelId);
|
|
572
625
|
},
|
|
573
626
|
|
|
574
627
|
async initializeModel(modelId, data) {
|