@izara_project/izara-core-library-service-schemas 1.0.97 → 1.0.98
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 +1 -1
- package/src/ValidatorSchema.js +48 -47
package/package.json
CHANGED
package/src/ValidatorSchema.js
CHANGED
|
@@ -88,14 +88,21 @@ const { validateObjType } = require('@izara_project/izara-shared-service-schemas
|
|
|
88
88
|
// return prefix + 'FlowParams';
|
|
89
89
|
// }
|
|
90
90
|
|
|
91
|
-
function createSpecificFieldNameForCacheTable(prefix = 'cache') {
|
|
91
|
+
function createSpecificFieldNameForCacheTable(prefix = 'cache', statusType) {
|
|
92
92
|
return {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
93
|
+
'cacheTable': {
|
|
94
|
+
uniqueRequestId: prefix + "UniqueRequestId",
|
|
95
|
+
fieldNameStatus: prefix + "Status",
|
|
96
|
+
errorsFound: prefix + 'ErrorsFound',
|
|
97
|
+
cacheComplete: prefix + 'CacheComplete',
|
|
98
|
+
flowParams: prefix + 'FlowParams'
|
|
99
|
+
},
|
|
100
|
+
'statusField': {
|
|
101
|
+
uniqueRequestId: prefix + "UniqueRequestId",
|
|
102
|
+
errorsFound: prefix + "ErrorsFound",
|
|
103
|
+
fieldNameStatus: prefix + "Status"
|
|
104
|
+
}
|
|
105
|
+
}[statusType]
|
|
99
106
|
}
|
|
100
107
|
|
|
101
108
|
/**
|
|
@@ -1285,27 +1292,33 @@ async function validateLocalSchema(_izContext, schemasPath, serviceConfigPath) {
|
|
|
1285
1292
|
for (const flowSchema of allFlowSchemas) {
|
|
1286
1293
|
const [status, errors] = validateBasicFlowSchema(_izContext, flowSchema)
|
|
1287
1294
|
|
|
1288
|
-
if (flowSchema.
|
|
1289
|
-
|
|
1295
|
+
if (!flowSchema.hasOwnProperty("objType")) {
|
|
1296
|
+
validateStatus.status = false;
|
|
1297
|
+
validateStatus.validateErrors.push(`flowSchema ${flowSchema.flowTag} must have objType`)
|
|
1298
|
+
} else {
|
|
1299
|
+
let [objSchema] = await getLocalOrS3ObjectSchema(flowSchema.objType);
|
|
1300
|
+
|
|
1301
|
+
if (!objSchema) {
|
|
1290
1302
|
validateStatus.status = false;
|
|
1291
|
-
validateStatus.validateErrors.push(
|
|
1303
|
+
validateStatus.validateErrors.push(`${flowSchema.flowTag}.objType is invalid`)
|
|
1292
1304
|
} else {
|
|
1293
|
-
|
|
1294
|
-
let [objSchema] = await getLocalOrS3ObjectSchema(flowSchema.objType);
|
|
1295
|
-
|
|
1296
|
-
console.log("objSchema: ", objSchema)
|
|
1297
|
-
|
|
1298
|
-
if (!objSchema) {
|
|
1305
|
+
if (Object.keys(objSchema.storageResources).length > 1) { // check for objectSchema must have 1 storageResource
|
|
1299
1306
|
validateStatus.status = false;
|
|
1300
|
-
validateStatus.validateErrors.push(
|
|
1301
|
-
} else {
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1307
|
+
validateStatus.validateErrors.push(`storageResource of objectType:${objSchema.objectType} serviceTag:${flowSchema.objType.serviceTag} is not single storageResource`)
|
|
1308
|
+
} else if (Object.keys(objSchema.storageResources).length = 1) {
|
|
1309
|
+
for (const storageResource of Object.values(objSchema.storageResources)) {
|
|
1310
|
+
if (storageResource.storageType === STORAGE_TYPES.dynamoDB) {
|
|
1311
|
+
if (flowSchema.statusType === "triggerCache" || flowSchema.statusType === "storedCache") {
|
|
1312
|
+
let specificFieldNames = Object.values(createSpecificFieldNameForCacheTable(createFlowTypeConcat(_izContext, { flowTag: flowSchema.flowTag, serviceTag: iz_serviceTag }), "cacheTable"))
|
|
1313
|
+
const fieldNames = Object.keys(objSchema.fieldNames)
|
|
1314
|
+
for (const specificFieldName of specificFieldNames) { // check for specific fieldName
|
|
1315
|
+
if (!fieldNames.includes(specificFieldName)) {
|
|
1316
|
+
validateStatus.status = false;
|
|
1317
|
+
validateStatus.validateErrors.push(`objectType: ${objSchema.objectType} not have fieldNames: ${specificFieldName} in objectSchema.fieldNames`)
|
|
1318
|
+
}
|
|
1319
|
+
}
|
|
1320
|
+
} else if (flowSchema.statusType === "statusField") {
|
|
1321
|
+
let specificFieldNames = Object.values(createSpecificFieldNameForCacheTable(createFlowTypeConcat(_izContext, { flowTag: flowSchema.flowTag, serviceTag: iz_serviceTag }), 'statusField'))
|
|
1309
1322
|
const fieldNames = Object.keys(objSchema.fieldNames)
|
|
1310
1323
|
for (const specificFieldName of specificFieldNames) { // check for specific fieldName
|
|
1311
1324
|
if (!fieldNames.includes(specificFieldName)) {
|
|
@@ -1313,39 +1326,27 @@ async function validateLocalSchema(_izContext, schemasPath, serviceConfigPath) {
|
|
|
1313
1326
|
validateStatus.validateErrors.push(`objectType: ${objSchema.objectType} not have fieldNames: ${specificFieldName} in objectSchema.fieldNames`)
|
|
1314
1327
|
}
|
|
1315
1328
|
}
|
|
1316
|
-
} else {
|
|
1317
|
-
validateStatus.status = false;
|
|
1318
|
-
validateStatus.validateErrors.push(`storageResource of objectType:${objSchema.objectType} serviceTag:${flowSchema.objType.serviceTag} must be dynamoDb`)
|
|
1319
1329
|
}
|
|
1330
|
+
} else {
|
|
1331
|
+
validateStatus.status = false;
|
|
1332
|
+
validateStatus.validateErrors.push(`storageResource of ObjectType: $${flowSchema.objType.flowTag} from flowTag: ${flowSchema.flowTag} must be dynamoDB`);
|
|
1320
1333
|
}
|
|
1321
1334
|
}
|
|
1322
1335
|
}
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
if (!status) {
|
|
1327
|
-
validateStatus.status = false;
|
|
1328
|
-
validateStatus.validateErrors.push(errors);
|
|
1329
|
-
}
|
|
1330
1336
|
}
|
|
1331
1337
|
}
|
|
1332
1338
|
|
|
1333
|
-
if (
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
validateStatus.validateErrors.push(`flowSchema ${flowSchema.flowTag} must have objType`)
|
|
1337
|
-
} else {
|
|
1338
|
-
let [objSchema] = await getLocalOrS3ObjectSchema(flowSchema.objType);
|
|
1339
|
-
|
|
1340
|
-
if (!objSchema) {
|
|
1341
|
-
validateStatus.status = false;
|
|
1342
|
-
validateStatus.validateErrors.push(`${flowSchema.flowTag}.objType is invalid`)
|
|
1343
|
-
}
|
|
1344
|
-
}
|
|
1339
|
+
if (!status) {
|
|
1340
|
+
validateStatus.status = false;
|
|
1341
|
+
validateStatus.validateErrors.push(errors);
|
|
1345
1342
|
}
|
|
1346
1343
|
}
|
|
1344
|
+
|
|
1347
1345
|
}
|
|
1348
1346
|
|
|
1347
|
+
|
|
1348
|
+
|
|
1349
|
+
|
|
1349
1350
|
if (validateStatus.validateErrors.length) {
|
|
1350
1351
|
validateStatus.status = false;
|
|
1351
1352
|
} else {
|