@webiny/api-headless-cms 0.0.0-unstable.97a151f74d → 0.0.0-unstable.aad28a72ae
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/crud/contentEntry.crud.js +56 -7
- package/crud/contentEntry.crud.js.map +1 -1
- package/crud/contentModel/validateModelFields.js +26 -22
- package/crud/contentModel/validateModelFields.js.map +1 -1
- package/crud/contentModel.crud.js +162 -139
- package/crud/contentModel.crud.js.map +1 -1
- package/crud/contentModelGroup.crud.js +33 -3
- package/crud/contentModelGroup.crud.js.map +1 -1
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.d.ts +11 -0
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +239 -0
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -0
- package/fieldConverters/index.d.ts +2 -1
- package/fieldConverters/index.js +3 -1
- package/fieldConverters/index.js.map +1 -1
- package/graphql/schema/contentModels.js +5 -3
- package/graphql/schema/contentModels.js.map +1 -1
- package/graphqlFields/dynamicZone/dynamicZoneField.js +26 -1
- package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -1
- package/graphqlFields/object.js +26 -13
- package/graphqlFields/object.js.map +1 -1
- package/index.d.ts +1 -1
- package/package.json +23 -23
- package/plugins/CmsModelFieldConverterPlugin.d.ts +2 -2
- package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
- package/types.d.ts +100 -2
- package/types.js +39 -0
- package/types.js.map +1 -1
- package/utils/entryStorage.js +7 -8
- package/utils/entryStorage.js.map +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
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.CmsModelDynamicZoneFieldConverterPlugin = void 0;
|
|
9
|
+
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
+
|
|
12
|
+
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
13
|
+
|
|
14
|
+
var _CmsModelFieldConverterPlugin = require("../plugins/CmsModelFieldConverterPlugin");
|
|
15
|
+
|
|
16
|
+
class CmsModelDynamicZoneFieldConverterPlugin extends _CmsModelFieldConverterPlugin.CmsModelFieldConverterPlugin {
|
|
17
|
+
constructor(...args) {
|
|
18
|
+
super(...args);
|
|
19
|
+
(0, _defineProperty2.default)(this, "name", "cms.field.converter.dynamicZone");
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
getFieldType() {
|
|
23
|
+
return "dynamicZone";
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
getTemplates(field) {
|
|
27
|
+
var _field$settings;
|
|
28
|
+
|
|
29
|
+
return ((_field$settings = field.settings) === null || _field$settings === void 0 ? void 0 : _field$settings.templates) || [];
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
convertToStorage(params) {
|
|
33
|
+
const {
|
|
34
|
+
field,
|
|
35
|
+
value,
|
|
36
|
+
converterCollection
|
|
37
|
+
} = params;
|
|
38
|
+
const templates = this.getTemplates(field);
|
|
39
|
+
|
|
40
|
+
if (templates.length === 0) {
|
|
41
|
+
return {};
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
if (field.multipleValues) {
|
|
45
|
+
if (!Array.isArray(value)) {
|
|
46
|
+
throw new _error.default(`Dynamic zone field "${field.fieldId}" is expecting an array value.`, "DYNAMIC_ZONE_EXPECTING_ARRAY_VALUE", {
|
|
47
|
+
field,
|
|
48
|
+
value
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
return {
|
|
53
|
+
[field.storageId]: value.map(item => {
|
|
54
|
+
return this.processToStorage({
|
|
55
|
+
templates,
|
|
56
|
+
converterCollection,
|
|
57
|
+
value: item
|
|
58
|
+
});
|
|
59
|
+
})
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
if (Array.isArray(value)) {
|
|
64
|
+
throw new _error.default(`Dynamic zone field "${field.fieldId}" is expecting a non-array value.`, "DYNAMIC_ZONE_EXPECTING_NON_ARRAY_VALUE", {
|
|
65
|
+
field,
|
|
66
|
+
value
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
const processedValue = this.processToStorage({
|
|
71
|
+
templates,
|
|
72
|
+
converterCollection,
|
|
73
|
+
value
|
|
74
|
+
});
|
|
75
|
+
return {
|
|
76
|
+
[field.storageId]: processedValue
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
processToStorage(params) {
|
|
81
|
+
const {
|
|
82
|
+
templates,
|
|
83
|
+
converterCollection
|
|
84
|
+
} = params;
|
|
85
|
+
let {
|
|
86
|
+
value
|
|
87
|
+
} = params;
|
|
88
|
+
|
|
89
|
+
if (value === null || value === undefined) {
|
|
90
|
+
return undefined;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* There are two ways converter needs to work:
|
|
94
|
+
* 1. when there is a _templateId
|
|
95
|
+
* 2. when there is a key which identifies which template is the data for
|
|
96
|
+
*/
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* When we have a template key, everything is simple.
|
|
100
|
+
*/
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
const templateId = value._templateId;
|
|
104
|
+
let graphQlName = undefined;
|
|
105
|
+
let template = undefined;
|
|
106
|
+
|
|
107
|
+
if (templateId) {
|
|
108
|
+
template = templates.find(t => {
|
|
109
|
+
return templateId === t.id;
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* When we do not have a templateId, then the template identifier is the key of the value object.
|
|
114
|
+
* But at that point, values under that key become the value we are working with later on.
|
|
115
|
+
*/
|
|
116
|
+
//
|
|
117
|
+
else {
|
|
118
|
+
const keys = Object.keys(value);
|
|
119
|
+
|
|
120
|
+
if (keys.length === 0) {
|
|
121
|
+
return undefined;
|
|
122
|
+
} else if (keys.length > 1) {
|
|
123
|
+
throw new _error.default("There cannot be more than one dynamic zone template in a single dynamic zone field.", "DYNAMIC_ZONE_TOO_MANY_TEMPLATES", {
|
|
124
|
+
templates: keys
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
graphQlName = keys[0];
|
|
129
|
+
template = templates.find(t => t.gqlTypeName === graphQlName);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
if (!template) {
|
|
133
|
+
throw new _error.default("Unknown template - converting to storage.", "UNKNOWN_TEMPLATE", {
|
|
134
|
+
templateId,
|
|
135
|
+
graphQlName
|
|
136
|
+
});
|
|
137
|
+
} else if (graphQlName) {
|
|
138
|
+
value = value[graphQlName];
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
return template.fields.reduce((values, field) => {
|
|
142
|
+
const converter = converterCollection.getConverter(field.type);
|
|
143
|
+
const converted = converter.convertToStorage({
|
|
144
|
+
field,
|
|
145
|
+
value: value ? value[field.fieldId] : undefined
|
|
146
|
+
});
|
|
147
|
+
Object.assign(values, converted);
|
|
148
|
+
return values;
|
|
149
|
+
}, {
|
|
150
|
+
_templateId: template.id
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
convertFromStorage(params) {
|
|
155
|
+
const {
|
|
156
|
+
field,
|
|
157
|
+
value,
|
|
158
|
+
converterCollection
|
|
159
|
+
} = params;
|
|
160
|
+
const templates = this.getTemplates(field);
|
|
161
|
+
|
|
162
|
+
if (templates.length === 0) {
|
|
163
|
+
return {};
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
if (field.multipleValues) {
|
|
167
|
+
if (!Array.isArray(value)) {
|
|
168
|
+
throw new _error.default(`Dynamic zone field "${field.fieldId}" is expecting an array value.`, "DYNAMIC_ZONE_EXPECTING_ARRAY_VALUE", {
|
|
169
|
+
field,
|
|
170
|
+
value
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
return {
|
|
175
|
+
[field.fieldId]: value.map(item => {
|
|
176
|
+
return this.processFromStorage({
|
|
177
|
+
templates,
|
|
178
|
+
converterCollection,
|
|
179
|
+
value: item
|
|
180
|
+
});
|
|
181
|
+
})
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
if (Array.isArray(value)) {
|
|
186
|
+
throw new _error.default(`Dynamic zone field "${field.fieldId}" is expecting a non-array value.`, "DYNAMIC_ZONE_EXPECTING_NON_ARRAY_VALUE", {
|
|
187
|
+
field,
|
|
188
|
+
value
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
const processedValue = this.processFromStorage({
|
|
193
|
+
templates,
|
|
194
|
+
converterCollection,
|
|
195
|
+
value
|
|
196
|
+
});
|
|
197
|
+
return {
|
|
198
|
+
[field.fieldId]: processedValue
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
processFromStorage(params) {
|
|
203
|
+
const {
|
|
204
|
+
templates,
|
|
205
|
+
value,
|
|
206
|
+
converterCollection
|
|
207
|
+
} = params;
|
|
208
|
+
|
|
209
|
+
if (value === null || value === undefined) {
|
|
210
|
+
return undefined;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
const {
|
|
214
|
+
_templateId
|
|
215
|
+
} = value;
|
|
216
|
+
const template = templates.find(t => t.id === _templateId);
|
|
217
|
+
|
|
218
|
+
if (!template) {
|
|
219
|
+
throw new _error.default("Unknown template - converting from storage.", "UNKNOWN_TEMPLATE", {
|
|
220
|
+
templateId: _templateId
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
return template.fields.reduce((values, field) => {
|
|
225
|
+
const converter = converterCollection.getConverter(field.type);
|
|
226
|
+
const converted = converter.convertFromStorage({
|
|
227
|
+
field,
|
|
228
|
+
value: value[field.storageId]
|
|
229
|
+
});
|
|
230
|
+
Object.assign(values, converted);
|
|
231
|
+
return values;
|
|
232
|
+
}, {
|
|
233
|
+
_templateId: template.id
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
exports.CmsModelDynamicZoneFieldConverterPlugin = CmsModelDynamicZoneFieldConverterPlugin;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CmsModelDynamicZoneFieldConverterPlugin","CmsModelFieldConverterPlugin","getFieldType","getTemplates","field","settings","templates","convertToStorage","params","value","converterCollection","length","multipleValues","Array","isArray","WebinyError","fieldId","storageId","map","item","processToStorage","processedValue","undefined","templateId","_templateId","graphQlName","template","find","t","id","keys","Object","gqlTypeName","fields","reduce","values","converter","getConverter","type","converted","assign","convertFromStorage","processFromStorage"],"sources":["CmsModelDynamicZoneFieldConverterPlugin.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport {\n CmsModelFieldConverterPlugin,\n ConvertParams\n} from \"~/plugins/CmsModelFieldConverterPlugin\";\nimport { CmsDynamicZoneTemplate, CmsEntryValues, CmsModelDynamicZoneField } from \"~/types\";\nimport { ConverterCollection } from \"~/utils/converters/ConverterCollection\";\n\ninterface DynamicZoneValue {\n [key: string]: any;\n}\n\ninterface ProcessValue {\n templates: CmsDynamicZoneTemplate[];\n value: DynamicZoneValue | null;\n converterCollection: ConverterCollection;\n}\n\nexport class CmsModelDynamicZoneFieldConverterPlugin extends CmsModelFieldConverterPlugin {\n public override name = \"cms.field.converter.dynamicZone\";\n\n public override getFieldType(): string {\n return \"dynamicZone\";\n }\n\n private getTemplates(field: CmsModelDynamicZoneField): CmsDynamicZoneTemplate[] {\n return field.settings?.templates || [];\n }\n\n public override convertToStorage(\n params: ConvertParams<CmsModelDynamicZoneField>\n ): CmsEntryValues {\n const { field, value, converterCollection } = params;\n\n const templates = this.getTemplates(field);\n\n if (templates.length === 0) {\n return {};\n }\n\n if (field.multipleValues) {\n if (!Array.isArray(value)) {\n throw new WebinyError(\n `Dynamic zone field \"${field.fieldId}\" is expecting an array value.`,\n \"DYNAMIC_ZONE_EXPECTING_ARRAY_VALUE\",\n {\n field,\n value\n }\n );\n }\n return {\n [field.storageId]: value.map(item => {\n return this.processToStorage({\n templates,\n converterCollection,\n value: item\n });\n })\n };\n }\n if (Array.isArray(value)) {\n throw new WebinyError(\n `Dynamic zone field \"${field.fieldId}\" is expecting a non-array value.`,\n \"DYNAMIC_ZONE_EXPECTING_NON_ARRAY_VALUE\",\n {\n field,\n value\n }\n );\n }\n\n const processedValue = this.processToStorage({\n templates,\n converterCollection,\n value\n });\n return {\n [field.storageId]: processedValue\n };\n }\n\n private processToStorage(params: ProcessValue) {\n const { templates, converterCollection } = params;\n let { value } = params;\n if (value === null || value === undefined) {\n return undefined;\n }\n /**\n * There are two ways converter needs to work:\n * 1. when there is a _templateId\n * 2. when there is a key which identifies which template is the data for\n */\n\n /**\n * When we have a template key, everything is simple.\n */\n const templateId = value._templateId;\n let graphQlName: string | undefined = undefined;\n let template: CmsDynamicZoneTemplate | undefined = undefined;\n if (templateId) {\n template = templates.find(t => {\n return templateId === t.id;\n });\n }\n /**\n * When we do not have a templateId, then the template identifier is the key of the value object.\n * But at that point, values under that key become the value we are working with later on.\n */\n //\n else {\n const keys = Object.keys(value);\n if (keys.length === 0) {\n return undefined;\n } else if (keys.length > 1) {\n throw new WebinyError(\n \"There cannot be more than one dynamic zone template in a single dynamic zone field.\",\n \"DYNAMIC_ZONE_TOO_MANY_TEMPLATES\",\n {\n templates: keys\n }\n );\n }\n graphQlName = keys[0] as string;\n template = templates.find(t => t.gqlTypeName === graphQlName);\n }\n\n if (!template) {\n throw new WebinyError(\"Unknown template - converting to storage.\", \"UNKNOWN_TEMPLATE\", {\n templateId,\n graphQlName\n });\n } else if (graphQlName) {\n value = value[graphQlName];\n }\n\n return template.fields.reduce<Record<string, any>>(\n (values, field) => {\n const converter = converterCollection.getConverter(field.type);\n const converted = converter.convertToStorage({\n field,\n value: value ? value[field.fieldId] : undefined\n });\n Object.assign(values, converted);\n return values;\n },\n {\n _templateId: template.id\n }\n );\n }\n\n public override convertFromStorage(\n params: ConvertParams<CmsModelDynamicZoneField>\n ): CmsEntryValues {\n const { field, value, converterCollection } = params;\n\n const templates = this.getTemplates(field);\n\n if (templates.length === 0) {\n return {};\n }\n\n if (field.multipleValues) {\n if (!Array.isArray(value)) {\n throw new WebinyError(\n `Dynamic zone field \"${field.fieldId}\" is expecting an array value.`,\n \"DYNAMIC_ZONE_EXPECTING_ARRAY_VALUE\",\n {\n field,\n value\n }\n );\n }\n return {\n [field.fieldId]: value.map(item => {\n return this.processFromStorage({\n templates,\n converterCollection,\n value: item\n });\n })\n };\n }\n if (Array.isArray(value)) {\n throw new WebinyError(\n `Dynamic zone field \"${field.fieldId}\" is expecting a non-array value.`,\n \"DYNAMIC_ZONE_EXPECTING_NON_ARRAY_VALUE\",\n {\n field,\n value\n }\n );\n }\n\n const processedValue = this.processFromStorage({\n templates,\n converterCollection,\n value\n });\n return {\n [field.fieldId]: processedValue\n };\n }\n\n private processFromStorage(params: ProcessValue) {\n const { templates, value, converterCollection } = params;\n if (value === null || value === undefined) {\n return undefined;\n }\n\n const { _templateId } = value;\n\n const template = templates.find(t => t.id === _templateId);\n if (!template) {\n throw new WebinyError(\n \"Unknown template - converting from storage.\",\n \"UNKNOWN_TEMPLATE\",\n {\n templateId: _templateId\n }\n );\n }\n\n return template.fields.reduce<Record<string, any>>(\n (values, field) => {\n const converter = converterCollection.getConverter(field.type);\n const converted = converter.convertFromStorage({\n field,\n value: value[field.storageId]\n });\n Object.assign(values, converted);\n return values;\n },\n {\n _templateId: template.id\n }\n );\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { CmsModelObjectFieldConverterPlugin } from "./CmsModelObjectFieldConverterPlugin";
|
|
2
2
|
import { CmsModelDefaultFieldConverterPlugin } from "./CmsModelDefaultFieldConverterPlugin";
|
|
3
|
-
|
|
3
|
+
import { CmsModelDynamicZoneFieldConverterPlugin } from "./CmsModelDynamicZoneFieldConverterPlugin";
|
|
4
|
+
export declare const createFieldConverters: () => (CmsModelObjectFieldConverterPlugin | CmsModelDefaultFieldConverterPlugin | CmsModelDynamicZoneFieldConverterPlugin)[];
|
package/fieldConverters/index.js
CHANGED
|
@@ -9,8 +9,10 @@ var _CmsModelObjectFieldConverterPlugin = require("./CmsModelObjectFieldConverte
|
|
|
9
9
|
|
|
10
10
|
var _CmsModelDefaultFieldConverterPlugin = require("./CmsModelDefaultFieldConverterPlugin");
|
|
11
11
|
|
|
12
|
+
var _CmsModelDynamicZoneFieldConverterPlugin = require("./CmsModelDynamicZoneFieldConverterPlugin");
|
|
13
|
+
|
|
12
14
|
const createFieldConverters = () => {
|
|
13
|
-
return [new _CmsModelObjectFieldConverterPlugin.CmsModelObjectFieldConverterPlugin(), new _CmsModelDefaultFieldConverterPlugin.CmsModelDefaultFieldConverterPlugin()];
|
|
15
|
+
return [new _CmsModelObjectFieldConverterPlugin.CmsModelObjectFieldConverterPlugin(), new _CmsModelDynamicZoneFieldConverterPlugin.CmsModelDynamicZoneFieldConverterPlugin(), new _CmsModelDefaultFieldConverterPlugin.CmsModelDefaultFieldConverterPlugin()];
|
|
14
16
|
};
|
|
15
17
|
|
|
16
18
|
exports.createFieldConverters = createFieldConverters;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createFieldConverters","CmsModelObjectFieldConverterPlugin","CmsModelDefaultFieldConverterPlugin"],"sources":["index.ts"],"sourcesContent":["import { CmsModelObjectFieldConverterPlugin } from \"~/fieldConverters/CmsModelObjectFieldConverterPlugin\";\nimport { CmsModelDefaultFieldConverterPlugin } from \"~/fieldConverters/CmsModelDefaultFieldConverterPlugin\";\n\nexport const createFieldConverters = () => {\n return [new CmsModelObjectFieldConverterPlugin()
|
|
1
|
+
{"version":3,"names":["createFieldConverters","CmsModelObjectFieldConverterPlugin","CmsModelDynamicZoneFieldConverterPlugin","CmsModelDefaultFieldConverterPlugin"],"sources":["index.ts"],"sourcesContent":["import { CmsModelObjectFieldConverterPlugin } from \"~/fieldConverters/CmsModelObjectFieldConverterPlugin\";\nimport { CmsModelDefaultFieldConverterPlugin } from \"~/fieldConverters/CmsModelDefaultFieldConverterPlugin\";\nimport { CmsModelDynamicZoneFieldConverterPlugin } from \"~/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin\";\n\nexport const createFieldConverters = () => {\n return [\n new CmsModelObjectFieldConverterPlugin(),\n new CmsModelDynamicZoneFieldConverterPlugin(),\n new CmsModelDefaultFieldConverterPlugin()\n ];\n};\n"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AAEO,MAAMA,qBAAqB,GAAG,MAAM;EACvC,OAAO,CACH,IAAIC,sEAAJ,EADG,EAEH,IAAIC,gFAAJ,EAFG,EAGH,IAAIC,wEAAJ,EAHG,CAAP;AAKH,CANM"}
|
|
@@ -104,11 +104,12 @@ const createModelsSchema = context => {
|
|
|
104
104
|
},
|
|
105
105
|
initializeModel: async (_, args, context) => {
|
|
106
106
|
const {
|
|
107
|
-
modelId
|
|
107
|
+
modelId,
|
|
108
|
+
data
|
|
108
109
|
} = args;
|
|
109
110
|
|
|
110
111
|
try {
|
|
111
|
-
const result = await context.cms.initializeModel(modelId);
|
|
112
|
+
const result = await context.cms.initializeModel(modelId, data || {});
|
|
112
113
|
return new _handlerGraphql.Response(result);
|
|
113
114
|
} catch (e) {
|
|
114
115
|
return new _handlerGraphql.ErrorResponse(e);
|
|
@@ -206,7 +207,8 @@ const createModelsSchema = context => {
|
|
|
206
207
|
|
|
207
208
|
deleteContentModel(modelId: ID!): CmsDeleteResponse
|
|
208
209
|
|
|
209
|
-
|
|
210
|
+
# users can send anything into the data variable
|
|
211
|
+
initializeModel(modelId: ID!, data: JSON): InitializeModelResponse!
|
|
210
212
|
}
|
|
211
213
|
`;
|
|
212
214
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createModelsSchema","context","resolvers","Query","getContentModel","_","args","model","cms","getModel","modelId","isPrivate","NotFoundError","Response","e","ErrorResponse","listContentModels","__","models","listModels","filter","CmsContentModelField","tags","field","Array","isArray","CmsContentModel","hasType","find","tag","startsWith","plugin","plugins","byType","CmsModelPlugin","type","some","item","contentModel","manageSchema","MANAGE","createContentModel","createModel","data","createContentModelFrom","createModelFrom","updateContentModel","updateModel","deleteContentModel","deleteModel","initializeModel","result","GraphQLSchemaPlugin","typeDefs"],"sources":["contentModels.ts"],"sourcesContent":["import { ErrorResponse, NotFoundError, Response } from \"@webiny/handler-graphql\";\nimport { CmsContext, CmsModel } from \"~/types\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/GraphQLSchemaPlugin\";\nimport { Resolvers } from \"@webiny/handler-graphql/types\";\nimport { CmsModelPlugin } from \"~/plugins/CmsModelPlugin\";\n\nexport const createModelsSchema = (context: CmsContext): GraphQLSchemaPlugin<CmsContext> => {\n const resolvers: Resolvers<CmsContext> = {\n Query: {\n getContentModel: async (_: unknown, args: any, context) => {\n try {\n const model = await context.cms.getModel(args.modelId);\n if (model?.isPrivate === true) {\n if (!model) {\n throw new NotFoundError(\n `Content model \"${args.modelId}\" was not found!`\n );\n }\n }\n return new Response(model);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n listContentModels: async (_: unknown, __: unknown, context: CmsContext) => {\n try {\n const models = await context.cms.listModels();\n return new Response(models.filter(model => model.isPrivate !== true));\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n },\n CmsContentModelField: {\n tags(field) {\n // Make sure `tags` are always returned as an array.\n return Array.isArray(field.tags) ? field.tags : [];\n }\n },\n CmsContentModel: {\n tags(model: CmsModel) {\n // Make sure `tags` always contain a `type` tag, to differentiate between models.\n const hasType = (model.tags || []).find(tag => tag.startsWith(\"type:\"));\n\n return hasType ? model.tags : [\"type:model\", ...(model.tags || [])];\n },\n plugin: async (model, _, context): Promise<boolean> => {\n return context.plugins\n .byType<CmsModelPlugin>(CmsModelPlugin.type)\n .some(item => item.contentModel.modelId === model.modelId);\n }\n }\n };\n\n let manageSchema = \"\";\n if (context.cms.MANAGE) {\n resolvers[\"Mutation\"] = {\n createContentModel: async (_: unknown, args: any, context) => {\n try {\n const model = await context.cms.createModel(args.data);\n return new Response(model);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n createContentModelFrom: async (_: unknown, args: any, context) => {\n try {\n const model = await context.cms.createModelFrom(args.modelId, args.data);\n return new Response(model);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n updateContentModel: async (_: unknown, args: any, context) => {\n const { modelId, data } = args;\n try {\n const model = await context.cms.updateModel(modelId, data);\n return new Response(model);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n deleteContentModel: async (_: unknown, args: any, context) => {\n const { modelId } = args;\n try {\n await context.cms.deleteModel(modelId);\n return new Response(true);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n initializeModel: async (_, args, context) => {\n const { modelId } = args;\n\n try {\n const result = await context.cms.initializeModel(modelId);\n return new Response(result);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n };\n\n manageSchema = /* GraphQL */ `\n input CmsPredefinedValueInput {\n label: String!\n value: String!\n selected: Boolean\n }\n\n input CmsPredefinedValuesInput {\n enabled: Boolean\n values: [CmsPredefinedValueInput]\n }\n input CmsFieldRendererInput {\n name: String\n }\n\n input CmsFieldValidationInput {\n name: String!\n message: String\n settings: JSON\n }\n\n input CmsContentModelFieldInput {\n id: ID!\n label: String!\n helpText: String\n placeholderText: String\n # we never use user input - this is here to the GraphQL does not break when posting from our UI\n # used for debugging purposes\n storageId: String\n fieldId: String!\n type: String!\n tags: [String!]\n multipleValues: Boolean\n predefinedValues: CmsPredefinedValuesInput\n renderer: CmsFieldRendererInput\n validation: [CmsFieldValidationInput]\n listValidation: [CmsFieldValidationInput]\n settings: JSON\n }\n\n input CmsContentModelCreateInput {\n name: String!\n modelId: String\n group: RefInput!\n description: String\n layout: [[ID!]!]\n fields: [CmsContentModelFieldInput!]\n titleFieldId: String\n tags: [String!]\n }\n\n input CmsContentModelCreateFromInput {\n name: String!\n modelId: String\n group: RefInput!\n description: String\n locale: String\n }\n\n input CmsContentModelUpdateInput {\n name: String\n group: RefInput\n description: String\n layout: [[ID!]!]!\n fields: [CmsContentModelFieldInput!]!\n titleFieldId: String\n tags: [String!]\n }\n\n type InitializeModelResponse {\n data: Boolean\n error: CmsError\n }\n\n extend type Mutation {\n createContentModel(data: CmsContentModelCreateInput!): CmsContentModelResponse\n\n createContentModelFrom(\n modelId: ID!\n data: CmsContentModelCreateFromInput!\n ): CmsContentModelResponse\n\n updateContentModel(\n modelId: ID!\n data: CmsContentModelUpdateInput!\n ): CmsContentModelResponse\n\n deleteContentModel(modelId: ID!): CmsDeleteResponse\n\n initializeModel(modelId: ID!): InitializeModelResponse!\n }\n `;\n }\n\n return new GraphQLSchemaPlugin<CmsContext>({\n typeDefs: /* GraphQL */ `\n type CmsFieldValidation {\n name: String!\n message: String\n settings: JSON\n }\n\n type CmsFieldRenderer {\n name: String\n }\n\n type CmsPredefinedValue {\n label: String\n value: String\n selected: Boolean\n }\n\n type CmsPredefinedValues {\n enabled: Boolean\n values: [CmsPredefinedValue]\n }\n\n type CmsContentModelField {\n id: ID!\n # auto-generated value\n # used for debugging purposes\n storageId: String\n fieldId: String!\n label: String!\n helpText: String\n placeholderText: String\n type: String!\n tags: [String!]!\n multipleValues: Boolean\n predefinedValues: CmsPredefinedValues\n renderer: CmsFieldRenderer\n validation: [CmsFieldValidation!]\n listValidation: [CmsFieldValidation!]\n settings: JSON\n }\n\n type CmsContentModel {\n name: String!\n modelId: String!\n description: String\n group: CmsContentModelGroup!\n createdOn: DateTime\n savedOn: DateTime\n createdBy: CmsCreatedBy\n fields: [CmsContentModelField!]!\n lockedFields: [JSON]\n layout: [[String!]!]!\n titleFieldId: String\n tags: [String!]!\n # Returns true if the content model is registered via a plugin.\n plugin: Boolean!\n }\n\n type CmsContentModelResponse {\n data: CmsContentModel\n error: CmsError\n }\n\n type CmsContentModelListResponse {\n data: [CmsContentModel]\n meta: CmsListMeta\n error: CmsError\n }\n\n extend type Query {\n getContentModel(modelId: ID!, where: JSON, sort: String): CmsContentModelResponse\n\n listContentModels: CmsContentModelListResponse\n }\n\n ${manageSchema}\n `,\n resolvers\n });\n};\n"],"mappings":";;;;;;;AAAA;;AAEA;;AAEA;;AAEO,MAAMA,kBAAkB,GAAIC,OAAD,IAA0D;EACxF,MAAMC,SAAgC,GAAG;IACrCC,KAAK,EAAE;MACHC,eAAe,EAAE,OAAOC,CAAP,EAAmBC,IAAnB,EAA8BL,OAA9B,KAA0C;QACvD,IAAI;UACA,MAAMM,KAAK,GAAG,MAAMN,OAAO,CAACO,GAAR,CAAYC,QAAZ,CAAqBH,IAAI,CAACI,OAA1B,CAApB;;UACA,IAAI,CAAAH,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEI,SAAP,MAAqB,IAAzB,EAA+B;YAC3B,IAAI,CAACJ,KAAL,EAAY;cACR,MAAM,IAAIK,6BAAJ,CACD,kBAAiBN,IAAI,CAACI,OAAQ,kBAD7B,CAAN;YAGH;UACJ;;UACD,OAAO,IAAIG,wBAAJ,CAAaN,KAAb,CAAP;QACH,CAVD,CAUE,OAAOO,CAAP,EAAU;UACR,OAAO,IAAIC,6BAAJ,CAAkBD,CAAlB,CAAP;QACH;MACJ,CAfE;MAgBHE,iBAAiB,EAAE,OAAOX,CAAP,EAAmBY,EAAnB,EAAgChB,OAAhC,KAAwD;QACvE,IAAI;UACA,MAAMiB,MAAM,GAAG,MAAMjB,OAAO,CAACO,GAAR,CAAYW,UAAZ,EAArB;UACA,OAAO,IAAIN,wBAAJ,CAAaK,MAAM,CAACE,MAAP,CAAcb,KAAK,IAAIA,KAAK,CAACI,SAAN,KAAoB,IAA3C,CAAb,CAAP;QACH,CAHD,CAGE,OAAOG,CAAP,EAAU;UACR,OAAO,IAAIC,6BAAJ,CAAkBD,CAAlB,CAAP;QACH;MACJ;IAvBE,CAD8B;IA0BrCO,oBAAoB,EAAE;MAClBC,IAAI,CAACC,KAAD,EAAQ;QACR;QACA,OAAOC,KAAK,CAACC,OAAN,CAAcF,KAAK,CAACD,IAApB,IAA4BC,KAAK,CAACD,IAAlC,GAAyC,EAAhD;MACH;;IAJiB,CA1Be;IAgCrCI,eAAe,EAAE;MACbJ,IAAI,CAACf,KAAD,EAAkB;QAClB;QACA,MAAMoB,OAAO,GAAG,CAACpB,KAAK,CAACe,IAAN,IAAc,EAAf,EAAmBM,IAAnB,CAAwBC,GAAG,IAAIA,GAAG,CAACC,UAAJ,CAAe,OAAf,CAA/B,CAAhB;QAEA,OAAOH,OAAO,GAAGpB,KAAK,CAACe,IAAT,GAAgB,CAAC,YAAD,EAAe,IAAIf,KAAK,CAACe,IAAN,IAAc,EAAlB,CAAf,CAA9B;MACH,CANY;;MAObS,MAAM,EAAE,OAAOxB,KAAP,EAAcF,CAAd,EAAiBJ,OAAjB,KAA+C;QACnD,OAAOA,OAAO,CAAC+B,OAAR,CACFC,MADE,CACqBC,8BAAA,CAAeC,IADpC,EAEFC,IAFE,CAEGC,IAAI,IAAIA,IAAI,CAACC,YAAL,CAAkB5B,OAAlB,KAA8BH,KAAK,CAACG,OAF/C,CAAP;MAGH;IAXY;EAhCoB,CAAzC;EA+CA,IAAI6B,YAAY,GAAG,EAAnB;;EACA,IAAItC,OAAO,CAACO,GAAR,CAAYgC,MAAhB,EAAwB;IACpBtC,SAAS,CAAC,UAAD,CAAT,GAAwB;MACpBuC,kBAAkB,EAAE,OAAOpC,CAAP,EAAmBC,IAAnB,EAA8BL,OAA9B,KAA0C;QAC1D,IAAI;UACA,MAAMM,KAAK,GAAG,MAAMN,OAAO,CAACO,GAAR,CAAYkC,WAAZ,CAAwBpC,IAAI,CAACqC,IAA7B,CAApB;UACA,OAAO,IAAI9B,wBAAJ,CAAaN,KAAb,CAAP;QACH,CAHD,CAGE,OAAOO,CAAP,EAAU;UACR,OAAO,IAAIC,6BAAJ,CAAkBD,CAAlB,CAAP;QACH;MACJ,CARmB;MASpB8B,sBAAsB,EAAE,OAAOvC,CAAP,EAAmBC,IAAnB,EAA8BL,OAA9B,KAA0C;QAC9D,IAAI;UACA,MAAMM,KAAK,GAAG,MAAMN,OAAO,CAACO,GAAR,CAAYqC,eAAZ,CAA4BvC,IAAI,CAACI,OAAjC,EAA0CJ,IAAI,CAACqC,IAA/C,CAApB;UACA,OAAO,IAAI9B,wBAAJ,CAAaN,KAAb,CAAP;QACH,CAHD,CAGE,OAAOO,CAAP,EAAU;UACR,OAAO,IAAIC,6BAAJ,CAAkBD,CAAlB,CAAP;QACH;MACJ,CAhBmB;MAiBpBgC,kBAAkB,EAAE,OAAOzC,CAAP,EAAmBC,IAAnB,EAA8BL,OAA9B,KAA0C;QAC1D,MAAM;UAAES,OAAF;UAAWiC;QAAX,IAAoBrC,IAA1B;;QACA,IAAI;UACA,MAAMC,KAAK,GAAG,MAAMN,OAAO,CAACO,GAAR,CAAYuC,WAAZ,CAAwBrC,OAAxB,EAAiCiC,IAAjC,CAApB;UACA,OAAO,IAAI9B,wBAAJ,CAAaN,KAAb,CAAP;QACH,CAHD,CAGE,OAAOO,CAAP,EAAU;UACR,OAAO,IAAIC,6BAAJ,CAAkBD,CAAlB,CAAP;QACH;MACJ,CAzBmB;MA0BpBkC,kBAAkB,EAAE,OAAO3C,CAAP,EAAmBC,IAAnB,EAA8BL,OAA9B,KAA0C;QAC1D,MAAM;UAAES;QAAF,IAAcJ,IAApB;;QACA,IAAI;UACA,MAAML,OAAO,CAACO,GAAR,CAAYyC,WAAZ,CAAwBvC,OAAxB,CAAN;UACA,OAAO,IAAIG,wBAAJ,CAAa,IAAb,CAAP;QACH,CAHD,CAGE,OAAOC,CAAP,EAAU;UACR,OAAO,IAAIC,6BAAJ,CAAkBD,CAAlB,CAAP;QACH;MACJ,CAlCmB;MAmCpBoC,eAAe,EAAE,OAAO7C,CAAP,EAAUC,IAAV,EAAgBL,OAAhB,KAA4B;QACzC,MAAM;UAAES;QAAF,IAAcJ,IAApB;;QAEA,IAAI;UACA,MAAM6C,MAAM,GAAG,MAAMlD,OAAO,CAACO,GAAR,CAAY0C,eAAZ,CAA4BxC,OAA5B,CAArB;UACA,OAAO,IAAIG,wBAAJ,CAAasC,MAAb,CAAP;QACH,CAHD,CAGE,OAAOrC,CAAP,EAAU;UACR,OAAO,IAAIC,6BAAJ,CAAkBD,CAAlB,CAAP;QACH;MACJ;IA5CmB,CAAxB;IA+CAyB,YAAY;IAAG;IAAe;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SA3FQ;EA4FH;;EAED,OAAO,IAAIa,wCAAJ,CAAoC;IACvCC,QAAQ;IAAE;IAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAcd,YAAa;AAC3B,SA7E+C;IA8EvCrC;EA9EuC,CAApC,CAAP;AAgFH,CA/QM"}
|
|
1
|
+
{"version":3,"names":["createModelsSchema","context","resolvers","Query","getContentModel","_","args","model","cms","getModel","modelId","isPrivate","NotFoundError","Response","e","ErrorResponse","listContentModels","__","models","listModels","filter","CmsContentModelField","tags","field","Array","isArray","CmsContentModel","hasType","find","tag","startsWith","plugin","plugins","byType","CmsModelPlugin","type","some","item","contentModel","manageSchema","MANAGE","createContentModel","createModel","data","createContentModelFrom","createModelFrom","updateContentModel","updateModel","deleteContentModel","deleteModel","initializeModel","result","GraphQLSchemaPlugin","typeDefs"],"sources":["contentModels.ts"],"sourcesContent":["import { ErrorResponse, NotFoundError, Response } from \"@webiny/handler-graphql\";\nimport { CmsContext, CmsModel } from \"~/types\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/GraphQLSchemaPlugin\";\nimport { Resolvers } from \"@webiny/handler-graphql/types\";\nimport { CmsModelPlugin } from \"~/plugins/CmsModelPlugin\";\n\nexport const createModelsSchema = (context: CmsContext): GraphQLSchemaPlugin<CmsContext> => {\n const resolvers: Resolvers<CmsContext> = {\n Query: {\n getContentModel: async (_: unknown, args: any, context) => {\n try {\n const model = await context.cms.getModel(args.modelId);\n if (model?.isPrivate === true) {\n if (!model) {\n throw new NotFoundError(\n `Content model \"${args.modelId}\" was not found!`\n );\n }\n }\n return new Response(model);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n listContentModels: async (_: unknown, __: unknown, context: CmsContext) => {\n try {\n const models = await context.cms.listModels();\n return new Response(models.filter(model => model.isPrivate !== true));\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n },\n CmsContentModelField: {\n tags(field) {\n // Make sure `tags` are always returned as an array.\n return Array.isArray(field.tags) ? field.tags : [];\n }\n },\n CmsContentModel: {\n tags(model: CmsModel) {\n // Make sure `tags` always contain a `type` tag, to differentiate between models.\n const hasType = (model.tags || []).find(tag => tag.startsWith(\"type:\"));\n\n return hasType ? model.tags : [\"type:model\", ...(model.tags || [])];\n },\n plugin: async (model, _, context): Promise<boolean> => {\n return context.plugins\n .byType<CmsModelPlugin>(CmsModelPlugin.type)\n .some(item => item.contentModel.modelId === model.modelId);\n }\n }\n };\n\n let manageSchema = \"\";\n if (context.cms.MANAGE) {\n resolvers[\"Mutation\"] = {\n createContentModel: async (_: unknown, args: any, context) => {\n try {\n const model = await context.cms.createModel(args.data);\n return new Response(model);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n createContentModelFrom: async (_: unknown, args: any, context) => {\n try {\n const model = await context.cms.createModelFrom(args.modelId, args.data);\n return new Response(model);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n updateContentModel: async (_: unknown, args: any, context) => {\n const { modelId, data } = args;\n try {\n const model = await context.cms.updateModel(modelId, data);\n return new Response(model);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n deleteContentModel: async (_: unknown, args: any, context) => {\n const { modelId } = args;\n try {\n await context.cms.deleteModel(modelId);\n return new Response(true);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n initializeModel: async (_, args, context) => {\n const { modelId, data } = args;\n\n try {\n const result = await context.cms.initializeModel(modelId, data || {});\n return new Response(result);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n };\n\n manageSchema = /* GraphQL */ `\n input CmsPredefinedValueInput {\n label: String!\n value: String!\n selected: Boolean\n }\n\n input CmsPredefinedValuesInput {\n enabled: Boolean\n values: [CmsPredefinedValueInput]\n }\n input CmsFieldRendererInput {\n name: String\n }\n\n input CmsFieldValidationInput {\n name: String!\n message: String\n settings: JSON\n }\n\n input CmsContentModelFieldInput {\n id: ID!\n label: String!\n helpText: String\n placeholderText: String\n # we never use user input - this is here to the GraphQL does not break when posting from our UI\n # used for debugging purposes\n storageId: String\n fieldId: String!\n type: String!\n tags: [String!]\n multipleValues: Boolean\n predefinedValues: CmsPredefinedValuesInput\n renderer: CmsFieldRendererInput\n validation: [CmsFieldValidationInput]\n listValidation: [CmsFieldValidationInput]\n settings: JSON\n }\n\n input CmsContentModelCreateInput {\n name: String!\n modelId: String\n group: RefInput!\n description: String\n layout: [[ID!]!]\n fields: [CmsContentModelFieldInput!]\n titleFieldId: String\n tags: [String!]\n }\n\n input CmsContentModelCreateFromInput {\n name: String!\n modelId: String\n group: RefInput!\n description: String\n locale: String\n }\n\n input CmsContentModelUpdateInput {\n name: String\n group: RefInput\n description: String\n layout: [[ID!]!]!\n fields: [CmsContentModelFieldInput!]!\n titleFieldId: String\n tags: [String!]\n }\n\n type InitializeModelResponse {\n data: Boolean\n error: CmsError\n }\n\n extend type Mutation {\n createContentModel(data: CmsContentModelCreateInput!): CmsContentModelResponse\n\n createContentModelFrom(\n modelId: ID!\n data: CmsContentModelCreateFromInput!\n ): CmsContentModelResponse\n\n updateContentModel(\n modelId: ID!\n data: CmsContentModelUpdateInput!\n ): CmsContentModelResponse\n\n deleteContentModel(modelId: ID!): CmsDeleteResponse\n\n # users can send anything into the data variable\n initializeModel(modelId: ID!, data: JSON): InitializeModelResponse!\n }\n `;\n }\n\n return new GraphQLSchemaPlugin<CmsContext>({\n typeDefs: /* GraphQL */ `\n type CmsFieldValidation {\n name: String!\n message: String\n settings: JSON\n }\n\n type CmsFieldRenderer {\n name: String\n }\n\n type CmsPredefinedValue {\n label: String\n value: String\n selected: Boolean\n }\n\n type CmsPredefinedValues {\n enabled: Boolean\n values: [CmsPredefinedValue]\n }\n\n type CmsContentModelField {\n id: ID!\n # auto-generated value\n # used for debugging purposes\n storageId: String\n fieldId: String!\n label: String!\n helpText: String\n placeholderText: String\n type: String!\n tags: [String!]!\n multipleValues: Boolean\n predefinedValues: CmsPredefinedValues\n renderer: CmsFieldRenderer\n validation: [CmsFieldValidation!]\n listValidation: [CmsFieldValidation!]\n settings: JSON\n }\n\n type CmsContentModel {\n name: String!\n modelId: String!\n description: String\n group: CmsContentModelGroup!\n createdOn: DateTime\n savedOn: DateTime\n createdBy: CmsCreatedBy\n fields: [CmsContentModelField!]!\n lockedFields: [JSON]\n layout: [[String!]!]!\n titleFieldId: String\n tags: [String!]!\n # Returns true if the content model is registered via a plugin.\n plugin: Boolean!\n }\n\n type CmsContentModelResponse {\n data: CmsContentModel\n error: CmsError\n }\n\n type CmsContentModelListResponse {\n data: [CmsContentModel]\n meta: CmsListMeta\n error: CmsError\n }\n\n extend type Query {\n getContentModel(modelId: ID!, where: JSON, sort: String): CmsContentModelResponse\n\n listContentModels: CmsContentModelListResponse\n }\n\n ${manageSchema}\n `,\n resolvers\n });\n};\n"],"mappings":"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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SA5FQ;EA6FH;;EAED,OAAO,IAAIa,wCAAJ,CAAoC;IACvCC,QAAQ;IAAE;IAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAcd,YAAa;AAC3B,SA7E+C;IA8EvCrC;EA9EuC,CAApC,CAAP;AAgFH,CAhRM"}
|
|
@@ -98,6 +98,31 @@ const createDynamicZoneField = () => {
|
|
|
98
98
|
fieldType: "dynamicZone",
|
|
99
99
|
isSortable: false,
|
|
100
100
|
isSearchable: false,
|
|
101
|
+
validateChildFields: params => {
|
|
102
|
+
const {
|
|
103
|
+
validate,
|
|
104
|
+
originalField,
|
|
105
|
+
field
|
|
106
|
+
} = params;
|
|
107
|
+
|
|
108
|
+
const getOriginalTemplateFields = templateId => {
|
|
109
|
+
var _originalField$settin;
|
|
110
|
+
|
|
111
|
+
if (!(originalField !== null && originalField !== void 0 && (_originalField$settin = originalField.settings) !== null && _originalField$settin !== void 0 && _originalField$settin.templates)) {
|
|
112
|
+
return [];
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
const template = originalField.settings.templates.find(t => t.id === templateId);
|
|
116
|
+
return (template === null || template === void 0 ? void 0 : template.fields) || [];
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
for (const template of field.settings.templates) {
|
|
120
|
+
validate({
|
|
121
|
+
fields: template.fields,
|
|
122
|
+
originalFields: getOriginalTemplateFields(template.id)
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
},
|
|
101
126
|
read: {
|
|
102
127
|
createTypeField({
|
|
103
128
|
model,
|
|
@@ -193,7 +218,7 @@ const createDynamicZoneField = () => {
|
|
|
193
218
|
typeDefs.push(`input ${typeName}Input {
|
|
194
219
|
${inputProperties.map(([key, value]) => `
|
|
195
220
|
${key}: ${value}
|
|
196
|
-
`)}
|
|
221
|
+
`)}
|
|
197
222
|
}`);
|
|
198
223
|
return {
|
|
199
224
|
fields: (0, _helpers.createGraphQLInputField)(field, `${typeName}Input`),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createUnionTypeName","model","field","createReadTypeName","modelId","fieldId","getFieldTemplates","Array","isArray","settings","templates","createTypeDefsForTemplates","type","typeOfType","fieldTypePlugins","typeDefs","templateTypes","forEach","template","typeName","createTypeName","gqlTypeName","join","result","createTypeFromFields","typeNamePrefix","fields","push","fieldType","remapTemplateValue","value","templateType","Object","keys","__typename","createResolver","parent","multipleValues","map","v","createDynamicZoneField","name","isSortable","isSearchable","read","createTypeField","unionTypeName","unshift","manage","templateIds","concat","createInputField","inputProperties","inputTypeName","key","replace","createGraphQLInputField"],"sources":["dynamicZoneField.ts"],"sourcesContent":["import {\n CmsModelFieldToGraphQLPlugin,\n CmsModel,\n CmsModelField,\n CmsModelDynamicZoneField,\n CmsDynamicZoneTemplate,\n ApiEndpoint,\n CmsFieldTypePlugins,\n CmsModelFieldToGraphQLCreateResolver\n} from \"~/types\";\nimport { createReadTypeName, createTypeName } from \"~/utils/createTypeName\";\nimport { createTypeFromFields } from \"~/utils/createTypeFromFields\";\nimport { createGraphQLInputField } from \"../helpers\";\n\nconst createUnionTypeName = (model: CmsModel, field: CmsModelField) => {\n return `${createReadTypeName(model.modelId)}_${createReadTypeName(field.fieldId)}`;\n};\n\nconst getFieldTemplates = (field: CmsModelDynamicZoneField): CmsDynamicZoneTemplate[] => {\n if (!Array.isArray(field.settings?.templates)) {\n return [];\n }\n return field.settings.templates;\n};\n\ninterface CreateTypeDefsForTemplatesParams {\n model: CmsModel;\n field: CmsModelField;\n type: ApiEndpoint;\n typeOfType: \"type\" | \"input\";\n templates: CmsDynamicZoneTemplate[];\n fieldTypePlugins: CmsFieldTypePlugins;\n}\n\nconst createTypeDefsForTemplates = ({\n model,\n field,\n type,\n templates,\n typeOfType,\n fieldTypePlugins\n}: CreateTypeDefsForTemplatesParams) => {\n const typeDefs: string[] = [];\n const templateTypes: string[] = [];\n\n templates.forEach(template => {\n const typeName = [\n createTypeName(model.modelId),\n createTypeName(field.fieldId),\n template.gqlTypeName\n ].join(\"_\");\n\n const result = createTypeFromFields({\n typeOfType,\n model,\n type,\n typeNamePrefix: typeName,\n fields: template.fields,\n fieldTypePlugins\n });\n\n if (!result) {\n return;\n }\n\n typeDefs.push(result.typeDefs);\n templateTypes.push(result.fieldType);\n });\n\n return { typeDefs, templateTypes };\n};\n\nconst remapTemplateValue = (value: any, typeName: string) => {\n const templateType = Object.keys(value)[0];\n\n return { ...value[templateType], __typename: `${typeName}_${templateType}` };\n};\n\nconst createResolver: CmsModelFieldToGraphQLCreateResolver<CmsModelDynamicZoneField> = ({\n model,\n field\n}) => {\n return parent => {\n const value = parent[field.fieldId];\n if (!value) {\n return value;\n }\n\n const typeName = `${createTypeName(model.modelId)}_${createTypeName(field.fieldId)}`;\n\n if (field.multipleValues && Array.isArray(value)) {\n return value.map(v => remapTemplateValue(v, typeName));\n }\n\n return remapTemplateValue(value, typeName);\n };\n};\n\nexport const createDynamicZoneField =\n (): CmsModelFieldToGraphQLPlugin<CmsModelDynamicZoneField> => {\n return {\n name: \"cms-model-field-to-graphql-dynamic-zone\",\n type: \"cms-model-field-to-graphql\",\n fieldType: \"dynamicZone\",\n isSortable: false,\n isSearchable: false,\n read: {\n createTypeField({ model, field, fieldTypePlugins }) {\n const templates = getFieldTemplates(field);\n const unionTypeName = createUnionTypeName(model, field);\n\n const { typeDefs, templateTypes } = createTypeDefsForTemplates({\n field,\n type: \"read\",\n typeOfType: \"type\",\n model,\n fieldTypePlugins,\n templates\n });\n\n typeDefs.unshift(`union ${unionTypeName} = ${templateTypes.join(\" | \")}`);\n\n return {\n fields: `${field.fieldId}: ${\n field.multipleValues ? `[${unionTypeName}!]` : unionTypeName\n }`,\n typeDefs: typeDefs.join(\"\\n\")\n };\n },\n createResolver\n },\n manage: {\n createTypeField({ model, field, fieldTypePlugins }) {\n const templates = getFieldTemplates(field);\n const unionTypeName = createUnionTypeName(model, field);\n\n const { typeDefs, templateTypes } = createTypeDefsForTemplates({\n field,\n type: \"manage\",\n typeOfType: \"type\",\n model,\n fieldTypePlugins,\n templates\n });\n\n // Add _templateId\n const templateIds = templateTypes.map(type => {\n return `extend type ${type} {\n _templateId: ID!\n }\n `;\n });\n\n typeDefs.unshift(`union ${unionTypeName} = ${templateTypes.join(\" | \")}`);\n\n return {\n fields: `${field.fieldId}: ${\n field.multipleValues ? `[${unionTypeName}!]` : unionTypeName\n }`,\n typeDefs: typeDefs.concat(templateIds).join(\"\\n\")\n };\n },\n createInputField({ model, field, fieldTypePlugins }) {\n const templates = getFieldTemplates(field);\n\n const { typeDefs, templateTypes } = createTypeDefsForTemplates({\n field,\n type: \"manage\",\n typeOfType: \"input\",\n model,\n fieldTypePlugins,\n templates\n });\n\n const typeName = `${createTypeName(model.modelId)}_${createTypeName(\n field.fieldId\n )}`;\n\n const inputProperties = templateTypes.map(inputTypeName => {\n const key = inputTypeName.replace(`${typeName}_`, \"\").replace(\"Input\", \"\");\n return [key, inputTypeName];\n });\n\n /**\n * Generate a field input type, similar to this example:\n *\n * input Article_ContentInput {\n * Hero: Article_Content_HeroInput\n * SimpleText: Article_Content_SimpleTextInput\n * }\n */\n typeDefs.push(`input ${typeName}Input {\n ${inputProperties.map(\n ([key, value]) => `\n ${key}: ${value}\n `\n )} \n }`);\n\n return {\n fields: createGraphQLInputField(field, `${typeName}Input`),\n typeDefs: typeDefs.join(\"\\n\")\n };\n },\n createResolver\n }\n };\n };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["createUnionTypeName","model","field","createReadTypeName","modelId","fieldId","getFieldTemplates","Array","isArray","settings","templates","createTypeDefsForTemplates","type","typeOfType","fieldTypePlugins","typeDefs","templateTypes","forEach","template","typeName","createTypeName","gqlTypeName","join","result","createTypeFromFields","typeNamePrefix","fields","push","fieldType","remapTemplateValue","value","templateType","Object","keys","__typename","createResolver","parent","multipleValues","map","v","createDynamicZoneField","name","isSortable","isSearchable","validateChildFields","params","validate","originalField","getOriginalTemplateFields","templateId","find","t","id","originalFields","read","createTypeField","unionTypeName","unshift","manage","templateIds","concat","createInputField","inputProperties","inputTypeName","key","replace","createGraphQLInputField"],"sources":["dynamicZoneField.ts"],"sourcesContent":["import {\n CmsModelFieldToGraphQLPlugin,\n CmsModel,\n CmsModelField,\n CmsModelDynamicZoneField,\n CmsDynamicZoneTemplate,\n ApiEndpoint,\n CmsFieldTypePlugins,\n CmsModelFieldToGraphQLCreateResolver\n} from \"~/types\";\nimport { createReadTypeName, createTypeName } from \"~/utils/createTypeName\";\nimport { createTypeFromFields } from \"~/utils/createTypeFromFields\";\nimport { createGraphQLInputField } from \"../helpers\";\n\nconst createUnionTypeName = (model: CmsModel, field: CmsModelField) => {\n return `${createReadTypeName(model.modelId)}_${createReadTypeName(field.fieldId)}`;\n};\n\nconst getFieldTemplates = (field: CmsModelDynamicZoneField): CmsDynamicZoneTemplate[] => {\n if (!Array.isArray(field.settings?.templates)) {\n return [];\n }\n return field.settings.templates;\n};\n\ninterface CreateTypeDefsForTemplatesParams {\n model: CmsModel;\n field: CmsModelField;\n type: ApiEndpoint;\n typeOfType: \"type\" | \"input\";\n templates: CmsDynamicZoneTemplate[];\n fieldTypePlugins: CmsFieldTypePlugins;\n}\n\nconst createTypeDefsForTemplates = ({\n model,\n field,\n type,\n templates,\n typeOfType,\n fieldTypePlugins\n}: CreateTypeDefsForTemplatesParams) => {\n const typeDefs: string[] = [];\n const templateTypes: string[] = [];\n\n templates.forEach(template => {\n const typeName = [\n createTypeName(model.modelId),\n createTypeName(field.fieldId),\n template.gqlTypeName\n ].join(\"_\");\n\n const result = createTypeFromFields({\n typeOfType,\n model,\n type,\n typeNamePrefix: typeName,\n fields: template.fields,\n fieldTypePlugins\n });\n\n if (!result) {\n return;\n }\n\n typeDefs.push(result.typeDefs);\n templateTypes.push(result.fieldType);\n });\n\n return { typeDefs, templateTypes };\n};\n\nconst remapTemplateValue = (value: any, typeName: string) => {\n const templateType = Object.keys(value)[0];\n\n return { ...value[templateType], __typename: `${typeName}_${templateType}` };\n};\n\nconst createResolver: CmsModelFieldToGraphQLCreateResolver<CmsModelDynamicZoneField> = ({\n model,\n field\n}) => {\n return parent => {\n const value = parent[field.fieldId];\n if (!value) {\n return value;\n }\n\n const typeName = `${createTypeName(model.modelId)}_${createTypeName(field.fieldId)}`;\n\n if (field.multipleValues && Array.isArray(value)) {\n return value.map(v => remapTemplateValue(v, typeName));\n }\n\n return remapTemplateValue(value, typeName);\n };\n};\n\nexport const createDynamicZoneField =\n (): CmsModelFieldToGraphQLPlugin<CmsModelDynamicZoneField> => {\n return {\n name: \"cms-model-field-to-graphql-dynamic-zone\",\n type: \"cms-model-field-to-graphql\",\n fieldType: \"dynamicZone\",\n isSortable: false,\n isSearchable: false,\n validateChildFields: params => {\n const { validate, originalField, field } = params;\n\n const getOriginalTemplateFields = (templateId: string) => {\n if (!originalField?.settings?.templates) {\n return [];\n }\n const template = originalField.settings.templates.find(\n t => t.id === templateId\n );\n return template?.fields || [];\n };\n\n for (const template of field.settings.templates) {\n validate({\n fields: template.fields,\n originalFields: getOriginalTemplateFields(template.id)\n });\n }\n },\n read: {\n createTypeField({ model, field, fieldTypePlugins }) {\n const templates = getFieldTemplates(field);\n const unionTypeName = createUnionTypeName(model, field);\n\n const { typeDefs, templateTypes } = createTypeDefsForTemplates({\n field,\n type: \"read\",\n typeOfType: \"type\",\n model,\n fieldTypePlugins,\n templates\n });\n\n typeDefs.unshift(`union ${unionTypeName} = ${templateTypes.join(\" | \")}`);\n\n return {\n fields: `${field.fieldId}: ${\n field.multipleValues ? `[${unionTypeName}!]` : unionTypeName\n }`,\n typeDefs: typeDefs.join(\"\\n\")\n };\n },\n createResolver\n },\n manage: {\n createTypeField({ model, field, fieldTypePlugins }) {\n const templates = getFieldTemplates(field);\n const unionTypeName = createUnionTypeName(model, field);\n\n const { typeDefs, templateTypes } = createTypeDefsForTemplates({\n field,\n type: \"manage\",\n typeOfType: \"type\",\n model,\n fieldTypePlugins,\n templates\n });\n\n // Add _templateId\n const templateIds = templateTypes.map(type => {\n return `extend type ${type} {\n _templateId: ID!\n }\n `;\n });\n\n typeDefs.unshift(`union ${unionTypeName} = ${templateTypes.join(\" | \")}`);\n\n return {\n fields: `${field.fieldId}: ${\n field.multipleValues ? `[${unionTypeName}!]` : unionTypeName\n }`,\n typeDefs: typeDefs.concat(templateIds).join(\"\\n\")\n };\n },\n createInputField({ model, field, fieldTypePlugins }) {\n const templates = getFieldTemplates(field);\n\n const { typeDefs, templateTypes } = createTypeDefsForTemplates({\n field,\n type: \"manage\",\n typeOfType: \"input\",\n model,\n fieldTypePlugins,\n templates\n });\n\n const typeName = `${createTypeName(model.modelId)}_${createTypeName(\n field.fieldId\n )}`;\n\n const inputProperties = templateTypes.map(inputTypeName => {\n const key = inputTypeName.replace(`${typeName}_`, \"\").replace(\"Input\", \"\");\n return [key, inputTypeName];\n });\n\n /**\n * Generate a field input type, similar to this example:\n *\n * input Article_ContentInput {\n * Hero: Article_Content_HeroInput\n * SimpleText: Article_Content_SimpleTextInput\n * }\n */\n typeDefs.push(`input ${typeName}Input {\n ${inputProperties.map(\n ([key, value]) => `\n ${key}: ${value}\n `\n )}\n }`);\n\n return {\n fields: createGraphQLInputField(field, `${typeName}Input`),\n typeDefs: typeDefs.join(\"\\n\")\n };\n },\n createResolver\n }\n };\n };\n"],"mappings":"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"}
|
package/graphqlFields/object.js
CHANGED
|
@@ -92,13 +92,26 @@ const createObjectField = () => {
|
|
|
92
92
|
fieldType: "object",
|
|
93
93
|
isSortable: false,
|
|
94
94
|
isSearchable: false,
|
|
95
|
+
validateChildFields: params => {
|
|
96
|
+
var _field$settings4, _originalField$settin;
|
|
97
|
+
|
|
98
|
+
const {
|
|
99
|
+
field,
|
|
100
|
+
originalField,
|
|
101
|
+
validate
|
|
102
|
+
} = params;
|
|
103
|
+
validate({
|
|
104
|
+
fields: ((_field$settings4 = field.settings) === null || _field$settings4 === void 0 ? void 0 : _field$settings4.fields) || [],
|
|
105
|
+
originalFields: (originalField === null || originalField === void 0 ? void 0 : (_originalField$settin = originalField.settings) === null || _originalField$settin === void 0 ? void 0 : _originalField$settin.fields) || []
|
|
106
|
+
});
|
|
107
|
+
},
|
|
95
108
|
read: {
|
|
96
109
|
createTypeField({
|
|
97
110
|
field,
|
|
98
111
|
model,
|
|
99
112
|
fieldTypePlugins
|
|
100
113
|
}) {
|
|
101
|
-
var _field$
|
|
114
|
+
var _field$settings5, _field$settings6;
|
|
102
115
|
|
|
103
116
|
const result = (0, _createTypeFromFields.createTypeFromFields)({
|
|
104
117
|
typeOfType: "type",
|
|
@@ -107,9 +120,9 @@ const createObjectField = () => {
|
|
|
107
120
|
typeNamePrefix: createTypeName({
|
|
108
121
|
model,
|
|
109
122
|
field,
|
|
110
|
-
parents: (_field$
|
|
123
|
+
parents: (_field$settings5 = field.settings) === null || _field$settings5 === void 0 ? void 0 : _field$settings5.parents
|
|
111
124
|
}),
|
|
112
|
-
fields: ((_field$
|
|
125
|
+
fields: ((_field$settings6 = field.settings) === null || _field$settings6 === void 0 ? void 0 : _field$settings6.fields) || [],
|
|
113
126
|
fieldTypePlugins
|
|
114
127
|
});
|
|
115
128
|
|
|
@@ -138,9 +151,9 @@ const createObjectField = () => {
|
|
|
138
151
|
createFieldResolvers,
|
|
139
152
|
graphQLType
|
|
140
153
|
}) {
|
|
141
|
-
var _field$
|
|
154
|
+
var _field$settings7;
|
|
142
155
|
|
|
143
|
-
if (!((_field$
|
|
156
|
+
if (!((_field$settings7 = field.settings) !== null && _field$settings7 !== void 0 && _field$settings7.fields) || field.settings.fields.length === 0) {
|
|
144
157
|
return false;
|
|
145
158
|
}
|
|
146
159
|
|
|
@@ -163,7 +176,7 @@ const createObjectField = () => {
|
|
|
163
176
|
field,
|
|
164
177
|
fieldTypePlugins
|
|
165
178
|
}) {
|
|
166
|
-
var _field$
|
|
179
|
+
var _field$settings8, _field$settings9;
|
|
167
180
|
|
|
168
181
|
const result = (0, _createTypeFromFields.createTypeFromFields)({
|
|
169
182
|
typeOfType: "type",
|
|
@@ -172,9 +185,9 @@ const createObjectField = () => {
|
|
|
172
185
|
typeNamePrefix: createTypeName({
|
|
173
186
|
model,
|
|
174
187
|
field,
|
|
175
|
-
parents: (_field$
|
|
188
|
+
parents: (_field$settings8 = field.settings) === null || _field$settings8 === void 0 ? void 0 : _field$settings8.parents
|
|
176
189
|
}),
|
|
177
|
-
fields: ((_field$
|
|
190
|
+
fields: ((_field$settings9 = field.settings) === null || _field$settings9 === void 0 ? void 0 : _field$settings9.fields) || [],
|
|
178
191
|
fieldTypePlugins
|
|
179
192
|
});
|
|
180
193
|
|
|
@@ -203,7 +216,7 @@ const createObjectField = () => {
|
|
|
203
216
|
field,
|
|
204
217
|
fieldTypePlugins
|
|
205
218
|
}) {
|
|
206
|
-
var _field$
|
|
219
|
+
var _field$settings10, _field$settings11;
|
|
207
220
|
|
|
208
221
|
const result = (0, _createTypeFromFields.createTypeFromFields)({
|
|
209
222
|
typeOfType: "input",
|
|
@@ -212,9 +225,9 @@ const createObjectField = () => {
|
|
|
212
225
|
typeNamePrefix: createTypeName({
|
|
213
226
|
model,
|
|
214
227
|
field,
|
|
215
|
-
parents: (_field$
|
|
228
|
+
parents: (_field$settings10 = field.settings) === null || _field$settings10 === void 0 ? void 0 : _field$settings10.parents
|
|
216
229
|
}),
|
|
217
|
-
fields: ((_field$
|
|
230
|
+
fields: ((_field$settings11 = field.settings) === null || _field$settings11 === void 0 ? void 0 : _field$settings11.fields) || [],
|
|
218
231
|
fieldTypePlugins
|
|
219
232
|
});
|
|
220
233
|
|
|
@@ -237,9 +250,9 @@ const createObjectField = () => {
|
|
|
237
250
|
field,
|
|
238
251
|
createFieldResolvers
|
|
239
252
|
}) {
|
|
240
|
-
var _field$
|
|
253
|
+
var _field$settings12;
|
|
241
254
|
|
|
242
|
-
if (!((_field$
|
|
255
|
+
if (!((_field$settings12 = field.settings) !== null && _field$settings12 !== void 0 && _field$settings12.fields) || field.settings.fields.length === 0) {
|
|
243
256
|
return false;
|
|
244
257
|
}
|
|
245
258
|
|