@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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@izara_project/izara-core-library-service-schemas",
3
- "version": "1.0.97",
3
+ "version": "1.0.98",
4
4
  "description": "Schemas for the service and objects it controls",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -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
- uniqueRequestId: prefix + "UniqueRequestId",
94
- fieldNameStatus: prefix + "Status",
95
- errorsFound: prefix + 'ErrorsFound',
96
- cacheComplete: prefix + 'CacheComplete',
97
- flowParams: prefix + 'FlowParams'
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.statusType === "storedCache" || flowSchema.statusType === "triggerCache") { // validate triggerCache
1289
- if (!flowSchema.hasOwnProperty("objType")) {
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(`flowSchema ${flowSchema.flowTag} must have objType`)
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(`${flowSchema.flowTag}.objType is invalid`)
1301
- } else {
1302
- if (Object.keys(objSchema.storageResources).length > 1) { // check for objectSchema must have 1 storageResource
1303
- validateStatus.status = false;
1304
- validateStatus.validateErrors.push(`storageResource of objectType:${objSchema.objectType} serviceTag:${flowSchema.objType.serviceTag} is not single storageResource`)
1305
- } else if (Object.keys(objSchema.storageResources).length = 1) {
1306
- for (const storageResource of Object.values(objSchema.storageResources)) {
1307
- if (storageResource.storageType === STORAGE_TYPES.dynamoDB) { // check for dynamoDB storageResource
1308
- let specificFieldNames = Object.values(createSpecificFieldNameForCacheTable(createFlowTypeConcat(_izContext, { flowTag: flowSchema.flowTag, serviceTag: iz_serviceTag })))
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 (flowSchema.statusType === "statusField") {
1334
- if (!flowSchema.hasOwnProperty("objType")) {
1335
- validateStatus.status = false;
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 {