@izara_project/izara-core-library-service-schemas 1.0.74 → 1.0.75

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@izara_project/izara-core-library-service-schemas",
3
- "version": "1.0.74",
3
+ "version": "1.0.75",
4
4
  "description": "Schemas for the service and objects it controls",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -14,22 +14,22 @@
14
14
  "license": "AGPL-3.0-or-later",
15
15
  "homepage": "https://bitbucket.org/izara-core-libraries/izara-core-library-service-schemas/src/master/README.md",
16
16
  "devDependencies": {
17
- "jest": "^30.0.3"
17
+ "jest": "^30.0.4"
18
18
  },
19
19
  "jest": {
20
20
  "testEnvironment": "node"
21
21
  },
22
22
  "dependencies": {
23
+ "@aws-sdk/client-api-gateway": "^3.840.0",
23
24
  "@aws-sdk/client-lambda": "^3.840.0",
24
- "@aws-sdk/client-s3": "^3.840.0",
25
+ "@aws-sdk/client-s3": "^3.842.0",
25
26
  "@aws-sdk/crc64-nvme-crt": "^3.840.0",
26
- "@aws-sdk/client-api-gateway": "^3.840.0",
27
27
  "@izara_project/izara-core-library-core": "^1.0.19",
28
28
  "@izara_project/izara-core-library-external-request": "^1.0.20",
29
29
  "@izara_project/izara-core-library-lambda": "^1.0.4",
30
30
  "@izara_project/izara-core-library-logger": "^1.0.7",
31
31
  "@izara_project/izara-shared-core": "^1.0.2",
32
- "@izara_project/izara-shared-service-schemas": "^1.0.20",
32
+ "@izara_project/izara-shared-service-schemas": "^1.0.21",
33
33
  "glob": "^11.0.3",
34
34
  "lodash": "^4.17.21",
35
35
  "object-hash": "^3.0.0",
package/src/Consts.js CHANGED
@@ -297,13 +297,16 @@ function createValidationFieldNameForEachType(type, validation) {
297
297
  }[type]
298
298
  }
299
299
 
300
- function flowSchemaPathS3(_izContext, flowType) {
301
- validateFlowType(flowType);
302
- return `${PREFIX_PATH_S3.perServiceSchemas}/${flowType.serviceTag}/FlowSchema/${flowType.flowTag}.json`
303
- }
300
+ // function flowSchemaPathS3(_izContext, flowType) {
301
+ // validateFlowType(flowType);
302
+ // return `${PREFIX_PATH_S3.perServiceSchemas}/${flowType.serviceTag}/FlowSchema/${flowType.flowTag}.json`
303
+ // }
304
304
 
305
305
  function getEndpointPerObjectType(_izContext, objType) {
306
- validateObjType(objType);
306
+ let validateObjTypeResult = validateObjType(objType);
307
+ if (validateObjTypeResult.errorsFound.length > 0) {
308
+ throw new NoRetryError(`function flowSchemaPathS3: invalid flowType ${flowType.name} - ${validateFlowTypeResult.errorsFound.join(", ")}`);
309
+ }
307
310
  return `${PREFIX_PATH_S3.perServiceSchemas}/${objType.serviceTag}/FrontEnd/Endpoint/Endpoint_Get_${objType.objectType}.json`
308
311
  }
309
312
 
@@ -36,7 +36,9 @@ const {
36
36
  getObjectRelationship: getObjectRelationshipShared,
37
37
  getRequiredOnCreateLinks: getRequiredOnCreateLinksShared,
38
38
  getLinkConfigByLinkTypeId: getLinkConfigByLinkTypeIdShared,
39
- getObjTypeHierarchy: getObjTypeHierarchyShared
39
+ getObjTypeHierarchy: getObjTypeHierarchyShared,
40
+ getObjectSchemaForCreate: getObjectSchemaForCreateShared,
41
+ getObjectSchemaForUpdate: getObjectSchemaForUpdateShared,
40
42
  } = sharedServiceSchema.getObjectSchema;
41
43
  const { validateObjType, validateFlowType } = sharedServiceSchema.validateObjType;
42
44
  const {
@@ -1124,6 +1126,14 @@ const getObjTypeHierarchyWithCache = inMemoryCacheLib(
1124
1126
  }
1125
1127
  )
1126
1128
 
1129
+ async function getObjectSchemaForCreate(_izContext, objType) {
1130
+ return await getObjectSchemaForCreateShared(getSchemaByNameWithCache, objType)
1131
+ }
1132
+
1133
+ async function getObjectSchemaForUpdate(_izContext, objType) {
1134
+ return await getObjectSchemaForUpdateShared(getSchemaByNameWithCache, objType)
1135
+ }
1136
+
1127
1137
  module.exports = {
1128
1138
  // getObjectTypes,
1129
1139
  getDataFromPath,
@@ -1178,7 +1188,10 @@ module.exports = {
1178
1188
  getFlowSchemaS3WithCache,
1179
1189
 
1180
1190
  getObjTypeHierarchy,
1181
- getObjTypeHierarchyWithCache
1191
+ getObjTypeHierarchyWithCache,
1192
+
1193
+ getObjectSchemaForCreate,
1194
+ getObjectSchemaForUpdate,
1182
1195
  }
1183
1196
 
1184
1197
 
package/src/Utils.js CHANGED
@@ -35,6 +35,9 @@ const {
35
35
  validateObjType,
36
36
  validateRelType,
37
37
  validateFlowType
38
+ },
39
+ reformatObjectSchema: {
40
+ getUsedFieldNamesOfIdentifiers: getUsedFieldNamesOfIdentifiersShared
38
41
  }
39
42
  } = require('@izara_project/izara-shared-service-schemas');
40
43
 
@@ -106,21 +109,22 @@ function getIdentifierTypeByPriority(_izContext, storageTypes = [], objSchema) {
106
109
  * @returns {string[]} - array of fieldName from objectSchema.identifiers
107
110
  */
108
111
  function getUsedFieldNamesOfIdentifiers(_izContext, identifiers, identifierTypes = []) {
109
- let identifierFieldNames = [];
110
-
111
- for (let identifier of identifiers) {
112
- if (Array.isArray(identifierTypes) && identifierTypes.length && !identifierTypes.includes(identifier.type)) {
113
- continue;
114
- }
115
-
116
- if (identifier.fieldName) {
117
- identifierFieldNames.push(identifier.fieldName);
118
- } else if (identifier.fieldNames) {
119
- identifierFieldNames = identifierFieldNames.concat(identifier.fieldNames);
120
- }
121
- }
122
-
123
- return [...new Set(identifierFieldNames)];
112
+ return getUsedFieldNamesOfIdentifiersShared(identifiers, identifierTypes)
113
+ // let identifierFieldNames = [];
114
+
115
+ // for (let identifier of identifiers) {
116
+ // if (Array.isArray(identifierTypes) && identifierTypes.length && !identifierTypes.includes(identifier.type)) {
117
+ // continue;
118
+ // }
119
+
120
+ // if (identifier.fieldName) {
121
+ // identifierFieldNames.push(identifier.fieldName);
122
+ // } else if (identifier.fieldNames) {
123
+ // identifierFieldNames = identifierFieldNames.concat(identifier.fieldNames);
124
+ // }
125
+ // }
126
+
127
+ // return [...new Set(identifierFieldNames)];
124
128
  }
125
129
 
126
130
 
@@ -18,7 +18,11 @@ along with this program.If not, see < http://www.gnu.org/licenses/>.
18
18
  'use strict';
19
19
 
20
20
  const { NoRetryError } = require('@izara_project/izara-core-library-core');
21
-
21
+ const {
22
+ generateObjectSchemaForCreate: generateObjectSchemaForCreateShared,
23
+ generateObjectSchemaForUpdate: generateObjectSchemaForUpdateShared,
24
+ generateObjectSchemaForCombineFieldNames: generateObjectSchemaForCombineFieldNamesShared
25
+ } = require('@izara_project/izara-shared-service-schemas').reformatObjectSchema
22
26
  const {
23
27
  getUsedFieldNamesOfIdentifiers,
24
28
  findLinkByObjType,
@@ -45,44 +49,6 @@ const DEFAULT_REL_ID_SETTING = {
45
49
  }
46
50
  }
47
51
 
48
-
49
- // add default versionedData fieldNames when upload
50
- function defaultVersionedDataFieldNames(_izContext, versionedDataLabel, storageTag) {
51
- return {
52
- [`versionedDataField_${versionedDataLabel}_versionedDataId`]: {
53
- type: "string",
54
- generatedField: true,
55
- versionedDataLabel: versionedDataLabel,
56
- storageResourceTags: [storageTag],
57
- requiredOnCreate: false,
58
- optionalOnCreate: false,
59
- canUpdate: false,
60
- validation: {},
61
- },
62
- [`versionedDataField_${versionedDataLabel}_forMatchedId`]: {
63
- type: "string",
64
- generatedField: true,
65
- versionedDataLabel: versionedDataLabel,
66
- storageResourceTags: [storageTag],
67
- requiredOnCreate: false,
68
- optionalOnCreate: false,
69
- canUpdate: false,
70
- validation: {},
71
- },
72
- [`versionedDataField_${versionedDataLabel}_originTimestamp`]: {
73
- type: "number",
74
- generatedField: true,
75
- versionedDataLabel: versionedDataLabel,
76
- storageResourceTags: [storageTag],
77
- requiredOnCreate: false,
78
- optionalOnCreate: false,
79
- canUpdate: false,
80
- validation: {},
81
- },
82
- }
83
- }
84
-
85
-
86
52
  /**
87
53
  * create object schema for create case
88
54
  *
@@ -92,55 +58,56 @@ function defaultVersionedDataFieldNames(_izContext, versionedDataLabel, storageT
92
58
  */
93
59
  function generateObjectSchemaForCreate(_izContext, objSchema) {
94
60
 
95
- // generate data for case create
96
- let initReturnObj = {
97
- objectType: objSchema.objectType,
98
- fieldNames: {}
99
- };
100
-
101
- for (let [fieldName, fieldNameSetting] of Object.entries(objSchema.fieldNames)) {
102
-
103
- if (!fieldNameSetting.requiredOnCreate && !fieldNameSetting.optionalOnCreate) {
104
- continue;
105
- }
106
-
107
- if (!initReturnObj.fieldNames.hasOwnProperty(fieldName)) {
108
- initReturnObj.fieldNames[fieldName] = {}
109
- }
110
-
111
- initReturnObj.fieldNames[fieldName].type = fieldNameSetting.type;
112
- initReturnObj.fieldNames[fieldName].validation = fieldNameSetting.validation || {};
113
- initReturnObj.fieldNames[fieldName].requiredOnCreate = (fieldNameSetting.requiredOnCreate === true) ? true : false;
114
- initReturnObj.fieldNames[fieldName].optionalOnCreate = (fieldNameSetting.optionalOnCreate === true) ? true : false;
115
- }
116
-
117
- // add fieldNames from versionedData
118
- if (objSchema.addOnDataStructure?.length) {
119
- for (let addOn of objSchema.addOnDataStructure) {
120
- if (addOn.type === "versionedData") {
121
- for (let [versionedFieldName, fieldNameData] of Object.entries(addOn.fieldNames)) {
122
-
123
- if (!fieldNameData.requiredOnCreate && !fieldNameData.optionalOnCreate) {
124
- continue;
125
- }
126
-
127
- Object.assign(
128
- initReturnObj.fieldNames,
129
- {
130
- [versionedFieldName]: {
131
- type: fieldNameData.type,
132
- validation: fieldNameData.validation || {},
133
- requiredOnCreate: fieldNameData.requiredOnCreate || false,
134
- optionalOnCreate: fieldNameData.optionalOnCreate || false,
135
- }
136
- });
137
- }
138
- }
139
- }
140
- }
141
-
142
-
143
- return initReturnObj;
61
+ return generateObjectSchemaForCreateShared(objSchema)
62
+ // // generate data for case create
63
+ // let initReturnObj = {
64
+ // objectType: objSchema.objectType,
65
+ // fieldNames: {}
66
+ // };
67
+
68
+ // for (let [fieldName, fieldNameSetting] of Object.entries(objSchema.fieldNames)) {
69
+
70
+ // if (!fieldNameSetting.requiredOnCreate && !fieldNameSetting.optionalOnCreate) {
71
+ // continue;
72
+ // }
73
+
74
+ // if (!initReturnObj.fieldNames.hasOwnProperty(fieldName)) {
75
+ // initReturnObj.fieldNames[fieldName] = {}
76
+ // }
77
+
78
+ // initReturnObj.fieldNames[fieldName].type = fieldNameSetting.type;
79
+ // initReturnObj.fieldNames[fieldName].validation = fieldNameSetting.validation || {};
80
+ // initReturnObj.fieldNames[fieldName].requiredOnCreate = (fieldNameSetting.requiredOnCreate === true) ? true : false;
81
+ // initReturnObj.fieldNames[fieldName].optionalOnCreate = (fieldNameSetting.optionalOnCreate === true) ? true : false;
82
+ // }
83
+
84
+ // // add fieldNames from versionedData
85
+ // if (objSchema.addOnDataStructure?.length) {
86
+ // for (let addOn of objSchema.addOnDataStructure) {
87
+ // if (addOn.type === "versionedData") {
88
+ // for (let [versionedFieldName, fieldNameData] of Object.entries(addOn.fieldNames)) {
89
+
90
+ // if (!fieldNameData.requiredOnCreate && !fieldNameData.optionalOnCreate) {
91
+ // continue;
92
+ // }
93
+
94
+ // Object.assign(
95
+ // initReturnObj.fieldNames,
96
+ // {
97
+ // [versionedFieldName]: {
98
+ // type: fieldNameData.type,
99
+ // validation: fieldNameData.validation || {},
100
+ // requiredOnCreate: fieldNameData.requiredOnCreate || false,
101
+ // optionalOnCreate: fieldNameData.optionalOnCreate || false,
102
+ // }
103
+ // });
104
+ // }
105
+ // }
106
+ // }
107
+ // }
108
+
109
+
110
+ // return initReturnObj;
144
111
  }
145
112
 
146
113
  /**
@@ -151,65 +118,67 @@ function generateObjectSchemaForCreate(_izContext, objSchema) {
151
118
  * @returns {Object} - objectSchema that has property for case update
152
119
  */
153
120
  function generateObjectSchemaForUpdate(_izContext, objSchema) {
154
- // generate data for case update
155
- let initReturnObj = {
156
- objectType: objSchema.objectType,
157
- fieldNames: {},
158
- identifiers: objSchema.identifiers,
159
- };
160
-
161
- if (objSchema.extendObjType) {
162
- initReturnObj.extendObjType = objSchema.extendObjType;
163
- } else {
164
- initReturnObj.identifierFieldNames = getUsedFieldNamesOfIdentifiers(_izContext, objSchema.identifiers);
165
- }
166
-
167
- for (let [fieldName, fieldNameSetting] of Object.entries(objSchema.fieldNames)) {
168
121
 
169
- if (!initReturnObj.fieldNames.hasOwnProperty(fieldName)) {
170
- initReturnObj.fieldNames[fieldName] = {}
171
- }
172
-
173
- if (fieldNameSetting.canUpdate === true || fieldNameSetting.canUpdate === undefined) {
174
- initReturnObj.fieldNames[fieldName].type = fieldNameSetting.type;
175
- initReturnObj.fieldNames[fieldName].validation = fieldNameSetting.validation || {};
176
- initReturnObj.fieldNames[fieldName].canUpdate = true;
177
- } else {
178
- initReturnObj.fieldNames[fieldName].type = fieldNameSetting.type;
179
- }
180
- }
181
-
182
- // add fieldNames from versionedData
183
- if (objSchema.addOnDataStructure?.length) {
184
- for (let addOn of objSchema.addOnDataStructure) {
185
- if (addOn.type === "versionedData") {
186
- for (let [versionedFieldName, fieldNameData] of Object.entries(addOn.fieldNames)) {
187
-
188
- if (fieldNameData.canUpdate === true || fieldNameData.canUpdate === undefined) {
189
- Object.assign(
190
- initReturnObj.fieldNames,
191
- {
192
- [versionedFieldName]: {
193
- type: fieldNameData.type,
194
- canUpdate: true,
195
- validation: fieldNameData.validation || {},
196
- }
197
- });
198
- } else {
199
- Object.assign(
200
- initReturnObj.fieldNames,
201
- {
202
- [versionedFieldName]: {
203
- type: fieldNameData.type,
204
- }
205
- });
206
- }
207
- }
208
- }
209
- }
210
- }
211
-
212
- return initReturnObj;
122
+ return generateObjectSchemaForUpdateShared(objSchema)
123
+ // // generate data for case update
124
+ // let initReturnObj = {
125
+ // objectType: objSchema.objectType,
126
+ // fieldNames: {},
127
+ // identifiers: objSchema.identifiers,
128
+ // };
129
+
130
+ // if (objSchema.extendObjType) {
131
+ // initReturnObj.extendObjType = objSchema.extendObjType;
132
+ // } else {
133
+ // initReturnObj.identifierFieldNames = getUsedFieldNamesOfIdentifiers(_izContext, objSchema.identifiers);
134
+ // }
135
+
136
+ // for (let [fieldName, fieldNameSetting] of Object.entries(objSchema.fieldNames)) {
137
+
138
+ // if (!initReturnObj.fieldNames.hasOwnProperty(fieldName)) {
139
+ // initReturnObj.fieldNames[fieldName] = {}
140
+ // }
141
+
142
+ // if (fieldNameSetting.canUpdate === true || fieldNameSetting.canUpdate === undefined) {
143
+ // initReturnObj.fieldNames[fieldName].type = fieldNameSetting.type;
144
+ // initReturnObj.fieldNames[fieldName].validation = fieldNameSetting.validation || {};
145
+ // initReturnObj.fieldNames[fieldName].canUpdate = true;
146
+ // } else {
147
+ // initReturnObj.fieldNames[fieldName].type = fieldNameSetting.type;
148
+ // }
149
+ // }
150
+
151
+ // // add fieldNames from versionedData
152
+ // if (objSchema.addOnDataStructure?.length) {
153
+ // for (let addOn of objSchema.addOnDataStructure) {
154
+ // if (addOn.type === "versionedData") {
155
+ // for (let [versionedFieldName, fieldNameData] of Object.entries(addOn.fieldNames)) {
156
+
157
+ // if (fieldNameData.canUpdate === true || fieldNameData.canUpdate === undefined) {
158
+ // Object.assign(
159
+ // initReturnObj.fieldNames,
160
+ // {
161
+ // [versionedFieldName]: {
162
+ // type: fieldNameData.type,
163
+ // canUpdate: true,
164
+ // validation: fieldNameData.validation || {},
165
+ // }
166
+ // });
167
+ // } else {
168
+ // Object.assign(
169
+ // initReturnObj.fieldNames,
170
+ // {
171
+ // [versionedFieldName]: {
172
+ // type: fieldNameData.type,
173
+ // }
174
+ // });
175
+ // }
176
+ // }
177
+ // }
178
+ // }
179
+ // }
180
+
181
+ // return initReturnObj;
213
182
  }
214
183
 
215
184
 
@@ -223,55 +192,57 @@ function generateObjectSchemaForUpdate(_izContext, objSchema) {
223
192
  * @returns {Object} - objectSchema that has property for case update
224
193
  */
225
194
  function generateObjectSchemaForCombineFieldNames(_izContext, objSchema) {
226
- // generate data for case update
227
- let initReturnObj = {
228
- objectType: objSchema.objectType,
229
- fieldNames: objSchema.fieldNames,
230
- canDelete: objSchema.canDelete,
231
- storageResources: objSchema.storageResources
232
- };
233
-
234
- if (objSchema.extendObjType) {
235
- initReturnObj.extendObjType = objSchema.extendObjType;
236
- }
237
195
 
238
- if (objSchema.identifiers) {
239
- initReturnObj.identifiers = objSchema.identifiers;
240
- initReturnObj.identifierFieldNames = getUsedFieldNamesOfIdentifiers(_izContext, objSchema.identifiers);
241
- }
242
-
243
- // add fieldNames from versionedData
244
- if (objSchema.addOnDataStructure?.length) {
245
- let versionedDataLabels = [];
246
- // versionedDataField_ceo_versionedDataId
247
- for (let addOn of objSchema.addOnDataStructure) {
248
- if (addOn.type === "versionedData") {
249
- // add default fieldNames of versionedData to main fieldNames
250
- Object.assign(
251
- initReturnObj.fieldNames,
252
- defaultVersionedDataFieldNames(_izContext, addOn.versionedDataLabel, addOn.storageResourceTag)
253
- );
254
-
255
- // add each versionedData fieldName to main fieldNames
256
- for (let [versionedFieldName, fieldNameData] of Object.entries(addOn.fieldNames)) {
257
- Object.assign(initReturnObj.fieldNames, {
258
- [versionedFieldName]: {
259
- ...fieldNameData,
260
- versionedDataLabel: addOn.versionedDataLabel,
261
- storageResourceTags: [addOn.storageResourceTag]
262
- }
263
- });
264
- }
265
- versionedDataLabels.push(addOn.versionedDataLabel);
266
- }
267
- }
268
-
269
- if (versionedDataLabels.length) {
270
- initReturnObj.versionedDataLabels = versionedDataLabels;
271
- }
272
- }
273
-
274
- return initReturnObj;
196
+ return generateObjectSchemaForCombineFieldNamesShared(objSchema)
197
+ // generate data for case update
198
+ // let initReturnObj = {
199
+ // objectType: objSchema.objectType,
200
+ // fieldNames: objSchema.fieldNames,
201
+ // canDelete: objSchema.canDelete,
202
+ // storageResources: objSchema.storageResources
203
+ // };
204
+
205
+ // if (objSchema.extendObjType) {
206
+ // initReturnObj.extendObjType = objSchema.extendObjType;
207
+ // }
208
+
209
+ // if (objSchema.identifiers) {
210
+ // initReturnObj.identifiers = objSchema.identifiers;
211
+ // initReturnObj.identifierFieldNames = getUsedFieldNamesOfIdentifiers(_izContext, objSchema.identifiers);
212
+ // }
213
+
214
+ // // add fieldNames from versionedData
215
+ // if (objSchema.addOnDataStructure?.length) {
216
+ // let versionedDataLabels = [];
217
+ // // versionedDataField_ceo_versionedDataId
218
+ // for (let addOn of objSchema.addOnDataStructure) {
219
+ // if (addOn.type === "versionedData") {
220
+ // // add default fieldNames of versionedData to main fieldNames
221
+ // Object.assign(
222
+ // initReturnObj.fieldNames,
223
+ // defaultVersionedDataFieldNames(_izContext, addOn.versionedDataLabel, addOn.storageResourceTag)
224
+ // );
225
+
226
+ // // add each versionedData fieldName to main fieldNames
227
+ // for (let [versionedFieldName, fieldNameData] of Object.entries(addOn.fieldNames)) {
228
+ // Object.assign(initReturnObj.fieldNames, {
229
+ // [versionedFieldName]: {
230
+ // ...fieldNameData,
231
+ // versionedDataLabel: addOn.versionedDataLabel,
232
+ // storageResourceTags: [addOn.storageResourceTag]
233
+ // }
234
+ // });
235
+ // }
236
+ // versionedDataLabels.push(addOn.versionedDataLabel);
237
+ // }
238
+ // }
239
+
240
+ // if (versionedDataLabels.length) {
241
+ // initReturnObj.versionedDataLabels = versionedDataLabels;
242
+ // }
243
+ // }
244
+
245
+ // return initReturnObj;
275
246
  }
276
247
 
277
248