@izara_project/izara-market-library-service-schemas 1.0.55 → 1.0.57

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.
Files changed (58) hide show
  1. package/package.json +1 -1
  2. package/src/GenerateCodeLibs/src/GenerateCodeLibs.js +4 -27
  3. package/src/reStructure/TemplateData/EndpointPerService/handler/api/template.ejs +13 -14
  4. package/src/reStructure/TemplateData/EndpointPerService/handler/dsq/template.ejs +14 -11
  5. package/src/reStructure/TemplateData/EndpointPerService/handler/inv/template.ejs +9 -11
  6. package/src/reStructure/TemplateData/EndpointPerService/handler/sqs/template.ejs +16 -13
  7. package/src/reStructure/TemplateData/EndpointPerService/mainFunction/create/template.ejs +20 -10
  8. package/src/reStructure/TemplateData/EndpointPerService/mainFunction/get/template.ejs +6 -4
  9. package/src/reStructure/TemplateData/EndpointPerService/yaml/data.js +18 -15
  10. package/src/reStructure/TemplateData/flowSchema/components/upload/confirmReserved/handler/template.ejs +2 -0
  11. package/src/reStructure/TemplateData/flowSchema/components/upload/confirmReserved/mainFunction/template.ejs +15 -11
  12. package/src/reStructure/TemplateData/flowSchema/components/upload/createObject/handler/template.ejs +12 -8
  13. package/src/reStructure/TemplateData/flowSchema/components/upload/createObject/mainFunction/data.js +20 -3
  14. package/src/reStructure/TemplateData/flowSchema/components/upload/createObject/mainFunction/template.ejs +16 -21
  15. package/src/reStructure/TemplateData/flowSchema/components/upload/preSignUrl/createPresignUrl/handler/template.ejs +2 -0
  16. package/src/reStructure/TemplateData/flowSchema/components/upload/preSignUrl/createPresignUrl/mainFunction/data.js +3 -1
  17. package/src/reStructure/TemplateData/flowSchema/components/upload/preSignUrl/createPresignUrl/mainFunction/template.ejs +60 -62
  18. package/src/reStructure/TemplateData/flowSchema/components/upload/preSignUrl/reservedLimit/handler/template.ejs +5 -3
  19. package/src/reStructure/TemplateData/flowSchema/components/upload/preSignUrl/reservedLimit/mainFunction/data.js +4 -3
  20. package/src/reStructure/TemplateData/flowSchema/components/upload/preSignUrl/reservedLimit/mainFunction/template.ejs +32 -44
  21. package/src/reStructure/TemplateData/flowSchema/components/upload/processFile/handler/handlerS3/template.ejs +3 -17
  22. package/src/reStructure/TemplateData/flowSchema/components/upload/processFile/mainFunction/ProcessCsvtemplate.ejs +391 -0
  23. package/src/reStructure/TemplateData/flowSchema/components/upload/processFile/mainFunction/template.ejs +9 -317
  24. package/src/reStructure/TemplateData/flowSchema/components/upload/relate/libs/template.ejs +7 -7
  25. package/src/reStructure/TemplateData/flowSchema/components/websocket/connect/handler/template.ejs +18 -0
  26. package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/EndpointComponent/functionYaml/data.js +1 -1
  27. package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/FlowSchemaComponent/handler/template.ejs +29 -5
  28. package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/sns-in/data.js +11 -11
  29. package/src/reStructure/TemplateData/flowSchema/generateTemplateData.js +16 -16
  30. package/src/reStructure/TemplateData/flowSchema/register/complete/handler/template.ejs +3 -0
  31. package/src/reStructure/TemplateData/flowSchema/register/complete/mainFunction/template.ejs +1 -1
  32. package/src/reStructure/TemplateData/flowSchema/webSocketComplete/handler/template.ejs +4 -0
  33. package/src/reStructure/TemplateData/flowSchema/webSocketComplete/mainFunction/template.ejs +36 -7
  34. package/src/reStructure/TemplateData/perActionComplete/update/mainFunction/template.ejs +4 -4
  35. package/src/reStructure/TemplateData/perActionEndpoint/handler/api/template.ejs +2 -2
  36. package/src/reStructure/TemplateData/perActionEndpoint/handler/dsq/template.ejs +2 -2
  37. package/src/reStructure/TemplateData/perActionEndpoint/handler/sqs/template.ejs +2 -2
  38. package/src/reStructure/TemplateData/propertyValueSchema/relationshipPropertyValueSchema/data.js +1 -2
  39. package/src/reStructure/TemplateData/relationshipPerAction/create/action/handler/api/template.ejs +2 -2
  40. package/src/reStructure/TemplateData/relationshipPerAction/create/action/handler/dsq/template.ejs +2 -2
  41. package/src/reStructure/TemplateData/relationshipPerAction/create/action/handler/sqs/template.ejs +2 -2
  42. package/src/reStructure/TemplateData/relationshipPerAction/create/complete/mainFunction/template.ejs +6 -0
  43. package/src/reStructure/TemplateData/relationshipPerAction/delete/action/handler/api/template.ejs +2 -2
  44. package/src/reStructure/TemplateData/relationshipPerAction/delete/action/handler/dsq/template.ejs +2 -2
  45. package/src/reStructure/TemplateData/relationshipPerAction/delete/action/handler/sqs/template.ejs +2 -2
  46. package/src/reStructure/TemplateData/relationshipPerAction/get/action/handler/api/template.ejs +23 -23
  47. package/src/reStructure/TemplateData/relationshipPerAction/get/action/handler/dsq/template.ejs +18 -16
  48. package/src/reStructure/TemplateData/relationshipPerAction/get/action/handler/inv/template.ejs +14 -12
  49. package/src/reStructure/TemplateData/relationshipPerAction/get/action/handler/sqs/template.ejs +21 -19
  50. package/src/reStructure/TemplateData/relationshipPerAction/get/action/mainFunction/template.ejs +2 -0
  51. package/src/reStructure/TemplateData/relationshipPerAction/get/complete/handler/sqs/template.ejs +3 -1
  52. package/src/reStructure/TemplateData/relationshipPerAction/update/action/handler/api/template.ejs +24 -22
  53. package/src/reStructure/TemplateData/relationshipPerAction/update/action/handler/dsq/template.ejs +21 -17
  54. package/src/reStructure/TemplateData/relationshipPerAction/update/action/handler/inv/template.ejs +21 -19
  55. package/src/reStructure/TemplateData/relationshipPerAction/update/action/handler/sqs/template.ejs +20 -20
  56. package/src/reStructure/TemplateData/relationshipPerAction/update/action/mainFunction/template.ejs +1 -1
  57. package/src/reStructure/TemplateData/relationshipPerAction/update/complete/handler/sqs/template.ejs +1 -1
  58. package/src/reStructure/TemplateData/resourceYaml/filterGenerateResource/data.js +22 -2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@izara_project/izara-market-library-service-schemas",
3
- "version": "1.0.55",
3
+ "version": "1.0.57",
4
4
  "description": "Schemas for Izara Market project",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -762,7 +762,7 @@ function collectGetData(_izContext, getResults, objectSchema, returnSystemFields
762
762
  }
763
763
 
764
764
 
765
- async function createUpdateDataDetail(_izContext, objectSchema, settings = { bucketName: consts.OBJECT_SCHEMA_BUCKET_NAME }) {
765
+ async function createUpdateDataDetail(_izContext, objectSchema, settings = { bucketName: process.env.iz_serviceSchemaBucketName }) {
766
766
  let getGraphDataDetails = {};
767
767
  let getDynamoDbDataDetails = {};
768
768
  let allUpdateDataDetail = {};
@@ -826,7 +826,7 @@ async function createUpdateDataDetail(_izContext, objectSchema, settings = { buc
826
826
  return allUpdateDataDetail
827
827
  }
828
828
 
829
- async function createDataDetailsLib(_izContext, objectSchemas, settings = { bucketName: consts.OBJECT_SCHEMA_BUCKET_NAME }) {
829
+ async function createDataDetailsLib(_izContext, objectSchemas, settings = { bucketName: process.env.iz_serviceSchemaBucketName }) {
830
830
  _izContext.logger.debug("Lib: createDataDetailsLib:", { objectSchemas: objectSchemas });
831
831
  /**
832
832
  * TODO: crate DataDetail now will get parent objectSchema if have extendObjType
@@ -857,6 +857,7 @@ async function createDataDetailsLib(_izContext, objectSchemas, settings = { buck
857
857
  [eachStorageResourceTag]: {
858
858
  storageType: consts.STORAGE_TYPES.dynamoDB,
859
859
  tableName: storageResources[eachStorageResourceTag].tableName,
860
+ serviceTag: storageResources[eachStorageResourceTag].serviceTag || process.env.iz_serviceTag,
860
861
  fieldNames: [keyFieldName]
861
862
  }
862
863
  });
@@ -893,34 +894,10 @@ async function createDataDetailsLib(_izContext, objectSchemas, settings = { buck
893
894
  }; // end loop storageResourceTags
894
895
  }; // end loop
895
896
 
896
- if (objectSchemas.hasOwnProperty("extendObjType")) {
897
- if (objectSchemas.extendObjType.serviceTag !== process.env.iz_serviceTag) {
898
- let parentObjectSchema = await getObjectSchema.getObjSchemaS3WithHierarchy(_izContext, objectSchemas.extendObjType, settings.bucketName);
899
- _izContext.logger.debug("parentObjectSchema", parentObjectSchema);
900
- for (const [fieldName, fieldNameSetting] of Object.entries(parentObjectSchema.fieldNames)) {
901
- for (let eachParentStorageResourceTag of fieldNameSetting.storageResourceTags) {
902
- let parentStorageResourceTag = objectSchemas.extendObjType.serviceTag + eachParentStorageResourceTag
903
- if (storageResources[eachParentStorageResourceTag].storageType === consts.STORAGE_TYPES.dynamoDB) {
904
- if (!createDataDetails.hasOwnProperty(parentStorageResourceTag)) {
905
- createDataDetails[parentStorageResourceTag] = {
906
- storageType: consts.STORAGE_TYPES.dynamoDB,
907
- tableName: storageResources[eachParentStorageResourceTag].tableName,
908
- serviceTag: objectSchemas.extendObjType.serviceTag,
909
- fieldNames: [fieldName]
910
- }
911
- } else {
912
- createDataDetails[parentStorageResourceTag].fieldNames.push(fieldName)
913
- }
914
- }
915
- }
916
- }
917
- }
918
- }
919
-
920
897
  return createDataDetails;
921
898
  };
922
899
 
923
- async function createDeleteDataDetail(_izContext, objectSchema, settings = { bucketName: consts.OBJECT_SCHEMA_BUCKET_NAME }) {
900
+ async function createDeleteDataDetail(_izContext, objectSchema, settings = { bucketName: process.env.iz_serviceSchemaBucketName }) {
924
901
  let deleteDynamoDataDetail = {};
925
902
  let deleteGraphDataDetail = {};
926
903
  let allDeleteDataDetail = {};
@@ -16,21 +16,20 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
16
16
  */
17
17
 
18
18
  'use strict';
19
- const izara = require("@izara_project/izara-middleware");
20
- const middleware = izara.middlewareHandler;
19
+
20
+ const { middlewareHandler, validatorSchema, response } = require("@izara_project/izara-middleware");
21
21
  const callingFlowSharedLib = require('@izara_project/izara-core-library-calling-flow');
22
- const {
23
- validateSchemaMiddleware
24
- } = require('@izara_project/izara-market-library-service-schemas/src/GenerateCodeLibs/src/GenerateCodeLibs');
22
+
23
+ //(<optionalRequire>)
24
+ //(</optionalRequire>)
25
25
 
26
26
  const { <%- action %>Main } =require('./<%- firstLetterUpperCase(action) %>_Main.js')
27
27
 
28
- //(<globalVarible>
29
- //</globalVarible>)
28
+ //(<globalVariable>
29
+ //</globalVariable>)
30
30
 
31
- //validate event params in middleware before into main function
32
- validateSchemaMiddleware(
33
- middleware,
31
+ //validate event params in middlewareHandler before into main function
32
+ validatorSchema.validateSchemaMiddleware(
34
33
  "<%- action %>",
35
34
  //(<validateSchemaSetting>
36
35
  //</validateSchemaSetting>)
@@ -41,7 +40,7 @@ validateSchemaMiddleware(
41
40
  //(</afterValidateWith>)
42
41
 
43
42
 
44
- module.exports.main = middleware.wrap(async (event, context, callback) => {
43
+ module.exports.main = middlewareHandler.wrap(async (event, context, callback) => {
45
44
  event._izContext.logger.debug('Event:', event);
46
45
  try {
47
46
  // invoke LambdaFunction
@@ -55,15 +54,15 @@ module.exports.main = middleware.wrap(async (event, context, callback) => {
55
54
 
56
55
  // return error to client
57
56
  if (lambdaFunctionResponse instanceof Error) {
58
- return (izara.response.failure(lambdaFunctionResponse));
57
+ return (response.failure(lambdaFunctionResponse));
59
58
  }
60
59
 
61
60
  // return success to client
62
- return (izara.response.success(lambdaFunctionResponse));
61
+ return (response.success(lambdaFunctionResponse));
63
62
 
64
63
  } catch (err) {
65
64
  event._izContext.logger.error('Error, <%- firstLetterUpperCase(action) %>_<%- firstLetterUpperCase(handler) %>: ', err);
66
- return (izara.response.failure(err));
65
+ return (response.failure(err));
67
66
  }
68
67
  });
69
68
  <%_ function firstLetterUpperCase(text){
@@ -16,24 +16,27 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
16
16
  */
17
17
 
18
18
  'use strict';
19
- const izara = require("@izara_project/izara-middleware");
20
- const middleware = izara.middlewareHandler;
19
+
20
+ const { middlewareHandler } = require("@izara_project/izara-middleware");
21
21
  const callingFlowSharedLib = require('@izara_project/izara-core-library-calling-flow');
22
22
  const Logger = require('@izara_project/izara-core-library-logger');
23
- const {validateSchemaPerRecord} = require('@izara_project/izara-market-library-service-schemas/src/GenerateCodeLibs/src/GenerateCodeLibs')
23
+ const { validateSchemaPerRecord } = require('@izara_project/izara-market-library-service-schemas/src/GenerateCodeLibs/src/GenerateCodeLibs')
24
24
  const recordHandlerSharedLib = require('@izara_project/izara-core-library-record-handler');
25
25
 
26
+ //(<optionalRequire>)
27
+ //(</optionalRequire>)
28
+
26
29
  const { <%- action %>Main } =require('./<%- firstLetterUpperCase(action) %>_Main.js')
27
30
 
28
- //(<globalVarible>
29
- //</globalVarible>)
31
+ //(<globalVariable>
32
+ //</globalVariable>)
30
33
 
31
34
  //validate event params in middleware before into main function
32
- middleware.setValidatorSchema(
33
- recordHandlerSharedLib.baseValidatorSchema(),
35
+ // middleware.setValidatorSchema(
36
+ // recordHandlerSharedLib.baseValidatorSchemaS3(),
34
37
  //(<middlewareSettings>)
35
38
  //(</middlewareSettings>)
36
- )
39
+ // )
37
40
 
38
41
  /*
39
42
  const perRecordsValidatorSchema = {
@@ -55,11 +58,11 @@ module.exports.main = middleware.wrap(async (event,context, callback) => {
55
58
  let recordPromises = [];
56
59
 
57
60
  await Promise.all(event.Records.map(async record => {
58
- record._izContext.logger.debug('record RecieveMsgOutHdrSqs', record);
61
+ record._izContext.logger.debug('record ReceiveMsgOutHdrSqs', record);
59
62
 
60
63
  let passOnProperties = [];
61
64
 
62
- const OBJTYPE = {
65
+ const object = {
63
66
  objectType: record.body.Message.objectType,
64
67
  serviceTag: process.env.iz_serviceTag
65
68
  }
@@ -68,7 +71,7 @@ module.exports.main = middleware.wrap(async (event,context, callback) => {
68
71
  await validateSchemaPerRecord(
69
72
  record,
70
73
  "<%- firstLetterUpperCase(action) %><%- firstLetterUpperCase(handler) %>",
71
- OBJTYPE,
74
+ object,
72
75
  "<%- action %>",
73
76
  //(<validateSchemaSetting>)
74
77
  //(</validateSchemaSetting>)
@@ -17,12 +17,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
17
17
 
18
18
  'use strict';
19
19
 
20
- const middleware = require("@izara_project/izara-middleware/src/MiddlewareCore/MiddlewareHandler");
21
-
20
+ const { middlewareHandler, validatorSchema } = require("@izara_project/izara-middleware");
22
21
  const callingFlowSharedLib = require('@izara_project/izara-core-library-calling-flow');
23
- const {
24
- validateSchemaMiddleware
25
- } = require('@izara_project/izara-market-library-service-schemas/src/GenerateCodeLibs/src/GenerateCodeLibs');
22
+
23
+ //(<optionalRequire>)
24
+ //(</optionalRequire>)
26
25
 
27
26
  const { <%- action %>Main } =require('./<%- firstLetterUpperCase(action) %>_Main.js')
28
27
 
@@ -30,20 +29,19 @@ const { <%- action %>Main } =require('./<%- firstLetterUpperCase(action) %>_Main
30
29
  //</globalVariable>)
31
30
 
32
31
 
33
- //validate event params in middleware before into main function
34
- validateSchemaMiddleware(
35
- middleware,
32
+ //validate event params in middlewareHandler before into main function
33
+ validatorSchema.validateSchemaMiddleware(
36
34
  "<%- action %>",
37
35
  //(<validateSchemaSetting>
38
36
  //</validateSchemaSetting>)
39
37
  )
40
38
  // if need to validate authorizer or additional params, add code to hook tag below
41
39
 
42
- //(<afterValidateWithGenereatedSchema>)
43
- //(</afterValidateWithGenereatedSchema>)
40
+ //(<afterValidateWithGeneratedSchema>)
41
+ //(</afterValidateWithGeneratedSchema>)
44
42
 
45
43
 
46
- module.exports.main = middleware.wrap(async (event, context, callback) => {
44
+ module.exports.main = middlewareHandler.wrap(async (event, context, callback) => {
47
45
  event._izContext.logger.debug('Event:', event);
48
46
  event._izContext.logger.debug('context:', context);
49
47
 
@@ -16,24 +16,27 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
16
16
  */
17
17
 
18
18
  'use strict';
19
- const izara = require("@izara_project/izara-middleware");
20
- const middleware = izara.middlewareHandler;
19
+
20
+ const { middlewareHandler } = require("@izara_project/izara-middleware");
21
21
  const callingFlowSharedLib = require('@izara_project/izara-core-library-calling-flow');
22
22
  const Logger = require('@izara_project/izara-core-library-logger');
23
- const {validateSchemaPerRecord} = require('@izara_project/izara-market-library-service-schemas/src/GenerateCodeLibs/src/GenerateCodeLibs')
23
+ const { validateSchemaPerRecord } = require('@izara_project/izara-market-library-service-schemas/src/GenerateCodeLibs/src/GenerateCodeLibs')
24
24
  const recordHandlerSharedLib = require('@izara_project/izara-core-library-record-handler');
25
25
 
26
+ //(<optionalRequire>)
27
+ //(</optionalRequire>)
28
+
26
29
  const { <%- action %>Main } =require('./<%- firstLetterUpperCase(action) %>_Main.js')
27
30
 
28
- //(<globalVarible>)
29
- //(</globalVarible>)
31
+ //(<globalVariable>)
32
+ //(</globalVariable>)
30
33
 
31
- //validate event params in middleware before into main function
32
- middleware.setValidatorSchema(
33
- recordHandlerSharedLib.baseValidatorSchema(),
34
+ //validate event params in middlewareHandler before into main function
35
+ // middlewareHandler.setValidatorSchema(
36
+ // recordHandlerSharedLib.baseValidatorSchemaS3(),
34
37
  //(<middlewareSettings>)
35
38
  //(</middlewareSettings>)
36
- )
39
+ // )
37
40
  /*
38
41
  const perRecordsValidatorSchema = {
39
42
  type: "object",
@@ -46,18 +49,18 @@ const perRecordsValidatorSchema = {
46
49
 
47
50
  // if need to validate authorizer or additional params , add code to hook tag below
48
51
 
49
- module.exports.main = middleware.wrap(async (event,context, callback) => {
52
+ module.exports.main = middlewareHandler.wrap(async (event,context, callback) => {
50
53
 
51
54
  try {
52
55
 
53
56
  let recordPromises = [];
54
57
 
55
58
  await Promise.all(event.Records.map(async record => {
56
- record._izContext.logger.debug('record RecieveMsgOutHdrSqs', record);
59
+ record._izContext.logger.debug('record ReceiveMsgOutHdrSqs', record);
57
60
 
58
61
  let passOnProperties = [];
59
62
 
60
- const OBJTYPE = {
63
+ const object = {
61
64
  objectType: record.body.Message.objectType,
62
65
  serviceTag: process.env.iz_serviceTag
63
66
  }
@@ -65,7 +68,7 @@ module.exports.main = middleware.wrap(async (event,context, callback) => {
65
68
  await validateSchemaPerRecord(
66
69
  record,
67
70
  "<%- firstLetterUpperCase(action) %><%- firstLetterUpperCase(handler) %>",
68
- OBJTYPE,
71
+ object,
69
72
  "<%- action %>",
70
73
  //(<validateSchemaSetting>)
71
74
  //(</validateSchemaSetting>)
@@ -53,9 +53,11 @@ const {
53
53
  TOPIC_NAME_GRAPH_HANDLER,
54
54
  GRAPH_HANDLER_SERVICE_NAME,
55
55
  } = require('@izara_project/izara-market-library-service-schemas/src/GenerateCodeLibs/src/Consts');
56
+
56
57
  const {
57
- createDataDetailsLib,
58
- } = require('@izara_project/izara-market-library-service-schemas/src/GenerateCodeLibs/src/GenerateCodeLibs');
58
+ generateCodeLibs: { generateCodeLibs: { createDataDetailsLib } },
59
+ utils: { utils: { firstLetterUpperCase } }
60
+ } = require('@izara_project/izara-market-library-service-schemas');
59
61
 
60
62
  //(<optionalRequire>)
61
63
  //(</optionalRequire>)
@@ -178,8 +180,8 @@ module.exports.createMain = async (
178
180
  });
179
181
  _izContext.logger.debug("Assign requestParams", requestParams)
180
182
 
181
- } else if ((objectSchemas.fieldNames[identifier.fieldName].randomOnCreate == false) ||
182
- (objectSchemas.fieldNames[identifier.fieldName].randomOnCreate == null)) {
183
+ } else if (objectSchemas.fieldNames[identifier.fieldName].randomOnCreate == false ||
184
+ objectSchemas.fieldNames[identifier.fieldName].randomOnCreate == null) {
183
185
 
184
186
  if ((objectSchemas.fieldNames[identifier.fieldName].requiredOnCreate == true) &&
185
187
  (objectSchemas.fieldNames[identifier.fieldName].canUpdate == false)) {
@@ -195,8 +197,7 @@ module.exports.createMain = async (
195
197
  }
196
198
  }
197
199
  };
198
- }
199
- if (objectSchemas.fieldNames[identifier.fieldName].hasOwnProperty("hashOnCreate")) {
200
+ } else if (objectSchemas.fieldNames[identifier.fieldName].hasOwnProperty("hashOnCreate")) {
200
201
  if (objectSchemas.fieldNames[identifier.fieldName].hashOnCreate.length &&
201
202
  objectSchemas.fieldNames[identifier.fieldName].hashOnCreate.length > 0) {
202
203
  for (const fieldName of objectSchemas.fieldNames[identifier.fieldName].hashOnCreate) {
@@ -224,7 +225,7 @@ module.exports.createMain = async (
224
225
  _izContext.logger.debug("requestParams is:", requestParams);
225
226
 
226
227
  // check settingObjSchemas
227
- for (let [keyFieldNames, valueFieldNames] of Object.entries(objectSchemas.fieldNames)) {
228
+ for (const [keyFieldNames, valueFieldNames] of Object.entries(objectSchemas.fieldNames)) {
228
229
 
229
230
  if (valueFieldNames.hasOwnProperty("randomOnCreate") && valueFieldNames.randomOnCreate === true) {
230
231
  listOfRequiredOnCreate.push(keyFieldNames)
@@ -286,7 +287,7 @@ module.exports.createMain = async (
286
287
  for (let [storageTag, createDataDetail] of Object.entries(createDataDetails)) {
287
288
  //(<beforeCreate>)
288
289
  //(</beforeCreate>)
289
- if (createDataDetail.storageType == consts.STORAGE_TYPES.dynamoDB) {
290
+ if (createDataDetail.storageType == consts.STORAGE_TYPES.dynamoDB && createDataDetail.serviceTag === process.env.iz_serviceTag) {
290
291
  //(<beforeCreateRecordDynamo>)
291
292
  //(</beforeCreateRecordDynamo>)
292
293
  _izContext.logger.debug("::::::DynamoDB::::::", { storageTag, objInstanceFull });
@@ -314,6 +315,9 @@ module.exports.createMain = async (
314
315
  ...objInstanceFullForDynamoDb.fields
315
316
  }
316
317
  );
318
+
319
+ objInstanceFullForDynamoDb.fields = {} // prevent using fieldNames from other tableName
320
+
317
321
  //(<afterCreateRecordDynamo>)
318
322
  //(</afterCreateRecordDynamo>)
319
323
  } else if (createDataDetail.storageType == consts.STORAGE_TYPES.graph) {
@@ -349,11 +353,16 @@ module.exports.createMain = async (
349
353
  }
350
354
 
351
355
  if (objectSchema.hasOwnProperty("extendObjType")) {
352
- if (createDataDetail.storageType === consts.STORAGE_TYPES.dynamoDB && createDataDetail.serviceTag !== process.env.iz_serviceTag) {
356
+ if (createDataDetail.storageType === consts.STORAGE_TYPES.dynamoDB &&
357
+ createDataDetail.tableName.includes(`${firstLetterUpperCase(objectSchema.extendObjType.objectType)}Records`) &&
358
+ createDataDetail.serviceTag !== process.env.iz_serviceTag
359
+ ) {
353
360
  let objInstanceFullForParentDynamoDb = lodash.cloneDeep(objInstanceFull)
354
361
  Object.assign(objInstanceFullForParentDynamoDb.fields, createObjInstanceFullFieldsByStorageTag(_izContext, storageTag, createDataDetail))
355
362
  _izContext.logger.debug("objInstanceFull before create item in dynamoDB in parent", objInstanceFullForParentDynamoDb)
356
363
 
364
+ Object.assign(objInstanceFullForParentDynamoDb.fields, { [`${objectSchema.extendObjType.objectType}HandlerServiceTag`]: process.env.iz_serviceTag })
365
+
357
366
  let identifiersForCreateData = await dynamoDbIdentifiersByStorageResource(
358
367
  _izContext,
359
368
  objectSchema,
@@ -448,7 +457,8 @@ module.exports.createMain = async (
448
457
  Date.now(),
449
458
  { updatePropertiesOnMatch: false },
450
459
  )
451
- return createNodeResult
460
+ return createNodeResult
461
+
452
462
  } else {
453
463
  _izContext.logger.debug("not have userAgent will send Message to GraphHandler")
454
464
  messageObject = callingFlowSharedLib.addCallingFlowToSnsRequestMessageObject(
@@ -103,6 +103,7 @@ module.exports.getMain = async (
103
103
 
104
104
  const returnSystemFieldsName = requestParams.additionalRequest?.setting?.returnSystemFieldsName || false;
105
105
  const throwWhenNotFoundSomeRecord = requestParams.additionalRequest?.setting?.throwWhenNotFoundSomeRecord || true;
106
+ const returnVersionedData = requestParams.additionalRequest?.setting?.returnVersionedData || true
106
107
 
107
108
  //(<beforeQuery>)
108
109
  //(</beforeQuery>)
@@ -151,10 +152,11 @@ module.exports.getMain = async (
151
152
  let graphServiceName = await getGraphServiceTagWithCache(_izContext, getDataDetail.graphServiceTag);
152
153
 
153
154
 
154
- let versionedDataLabels = [];
155
- if (getDataDetail.versionedDatas && Object.keys(getDataDetail.versionedDatas).length) {
156
- // have versionedData
157
- versionedDataLabels = Object.keys(getDataDetail.versionedDatas);
155
+ if (!returnVersionedData) {
156
+ if (getDataDetail.versionedDatas && Object.keys(getDataDetail.versionedDatas).length) {
157
+ // have versionedData
158
+ versionedDataLabels = Object.keys(getDataDetail.versionedDatas);
159
+ }
158
160
  }
159
161
 
160
162
 
@@ -159,31 +159,34 @@ async function createParamForCreateSource(_izContext, allObjSchemas, action, han
159
159
  const configPath = path.join(srcPath, '../../config/serverless.config.yml');
160
160
  const serverlessConfig = fs.readFileSync(configPath, 'utf8');
161
161
  const config = yaml.parse(serverlessConfig);
162
- const serviceTag = config.main_config.iz_serviceTag;
162
+ const ownServiceTag = config.main_config.iz_serviceTag;
163
+ let parentTables = [];
163
164
  // create lambdaRole for parent dynamo table if able
164
165
  for (const objectSchema of allObjSchemas.records) {
165
166
  if (objectSchema.hasOwnProperty("extendObjType")) {
166
167
  for (const storageResource of Object.values(objectSchema.storageResources)) {
167
168
  if (storageResource.storageType === STORAGE_TYPES.dynamoDB) {
168
- if (storageResource.serviceTag) {
169
- if (storageResource.serviceTag !== serviceTag) {
170
- additionalResourcePermission.push(
171
- createIamRole(
172
- {
173
- [RESOURCE_CLASSES.dynamoDbTable]: Object.values(DYNAMO_RESOURCE)
174
- },
175
- [
176
- externalResourceYaml(RESOURCE_CLASSES.dynamoDbAcrossService, upperCase(storageResource.tableName), storageResource.serviceTag)
177
- ]
178
- )
179
- )
180
- }
169
+ if (storageResource.serviceTag && storageResource.serviceTag !== ownServiceTag) {
170
+ parentTables.push({ tableName: storageResource.tableName, serviceTag: storageResource.serviceTag })
181
171
  }
182
172
  }
183
173
  }
184
174
  }
185
175
  }
186
176
 
177
+ if (parentTables.length > 0) {
178
+ additionalResourcePermission.push(
179
+ createIamRole(
180
+ {
181
+ [RESOURCE_CLASSES.dynamoDbTable]: Object.values(DYNAMO_RESOURCE)
182
+ },
183
+ parentTables.map(parentTable =>
184
+ externalResourceYaml(RESOURCE_CLASSES.dynamoDbAcrossService, upperCase(parentTable.tableName), parentTable.serviceTag)
185
+ )
186
+ )
187
+ )
188
+ }
189
+
187
190
  let resourceApis = [];
188
191
  if (handler === HANDLER.hdrApi) {
189
192
  for (const objectSchema of allObjSchemas.records) {
@@ -205,7 +208,7 @@ async function createParamForCreateSource(_izContext, allObjSchemas, action, han
205
208
  action: action,
206
209
  functionNameConfig,
207
210
  resourceApis,
208
- serviceTag: serviceTag
211
+ serviceTag: ownServiceTag
209
212
  },
210
213
  setting: {
211
214
  savePath: path.join(srcPath, SOURCE_PATH.appYaml),
@@ -92,6 +92,8 @@ module.exports.main = middleware.wrap(async (event, context, callback) => {
92
92
  passOnProperties.push(record.body.Message.returnMessage)
93
93
  passOnProperties.push(record.body.Message.errorsFound)
94
94
  passOnProperties.push(record.body.Message.passStatus)
95
+ //(<additionalProperties>)
96
+ //(</additionalProperties>)
95
97
  passOnProperties.push(callingFlowSharedLib.addPassBackPropertiesToPassOnProperties(record.body.Message))
96
98
  record._izContext.logger.debug('passOnProperties in handler', passOnProperties);
97
99
 
@@ -22,6 +22,7 @@ const snsSharedLib = require('@izara_project/izara-core-library-sns')
22
22
  const sns = require('@izara_project/izara-core-library-external-request').sns
23
23
  const consts = require('@izara_project/izara-market-library-service-schemas/src/GenerateCodeLibs/src/Consts')
24
24
  const { getNestObject } = require('../../../../libs/source/GenerateCodeLibs');
25
+
25
26
  //(<optionalRequired>)
26
27
  //(</optionalRequired>)
27
28
  /**
@@ -44,7 +45,9 @@ module.exports.confirmNewReserved = async (
44
45
  returnMessage,
45
46
  errorsFound,
46
47
  passStatus,
47
- passBackProperties
48
+ //(<additionalProperties>)
49
+ //(</additionalProperties>)
50
+ passBackProperties = {}
48
51
 
49
52
  ) => {
50
53
  try {
@@ -76,7 +79,7 @@ module.exports.confirmNewReserved = async (
76
79
 
77
80
  let sendMessageToConfirmUsage = {
78
81
  Message: JSON.stringify(confirmUsageMessage),
79
- TopicArn: await snsSharedLib.snsTopicArn(_izContext, 'InConfirmUsage', consts.EXTERNAL_SERVICE_NAME.accountLimits)
82
+ TopicArn: await snsSharedLib.snsTopicArn(_izContext, 'ConfirmUsage_In', consts.EXTERNAL_SERVICE_NAME.accountLimits)
80
83
  };
81
84
  _izContext.logger.debug("sendMessageToConfirmUsage", sendMessageToConfirmUsage);
82
85
  await sns.publishAsync(_izContext, sendMessageToConfirmUsage);
@@ -94,24 +97,25 @@ module.exports.confirmNewReserved = async (
94
97
  }
95
98
  )
96
99
 
97
- // update importBatchMainTable
98
- let sendMessageToUpdateImportBatchStatus = {
100
+ let sendMessageToUpdateStatus = {
99
101
  objInstanceFull: {
100
102
  identifiers: {
101
- importBatchId: servicePendingId
103
+ //(<identifiers>)
104
+ //(</identifiers>)
102
105
  },
103
106
  fields: {
104
- importBatchStatus: 'uploadComplete'
107
+ //(<fields>)
108
+ //(</fields>)
105
109
  }
106
110
  }
107
111
  }
108
112
 
109
- let sendMessageToUpdateImportBatch = {
110
- Message: JSON.stringify(sendMessageToUpdateImportBatchStatus),
111
- TopicArn: await snsSharedLib.snsTopicArn(_izContext, `InImportBatchMainUpdate`)
113
+ let sendMessageToUpdateEndpoint = {
114
+ Message: JSON.stringify(sendMessageToUpdateStatus),
115
+ TopicArn: await snsSharedLib.snsTopicArn(_izContext, "Update_In")
112
116
  };
113
- _izContext.logger.debug("sendMessageToUpdateImportBatch", sendMessageToUpdateImportBatch);
114
- await sns.publishAsync(_izContext, sendMessageToUpdateImportBatch);
117
+ _izContext.logger.debug("sendMessageToUpdateEndpoint", sendMessageToUpdateEndpoint);
118
+ await sns.publishAsync(_izContext, sendMessageToUpdateEndpoint);
115
119
 
116
120
  return { returnResponse: 'success' }
117
121
 
@@ -28,6 +28,7 @@ const hash = require('@izara_project/izara-shared-core').objectHash;
28
28
  const consts = require('@izara_project/izara-middleware/src/MiddlewareCore/Consts')
29
29
  const { postToConnection } = require('../../../../libs/source/GenerateCodeLibs');
30
30
  const createObject = require('./CreateObjectS3_Main');
31
+ const { createFlowTypeConcat } = require("@izara_project/izara-core-library-service-schemas").utils
31
32
  module.exports.main = middleware.wrap(async (event, context, callback) => {
32
33
 
33
34
  event._izContext.logger.debug('Event:', event);
@@ -44,14 +45,17 @@ module.exports.main = middleware.wrap(async (event, context, callback) => {
44
45
  console.log("event in route webSocket", event);
45
46
  let eventParams = JSON.parse(event.body)
46
47
 
47
- await dynamodbSharedLib.putItem(
48
- event._izContext,
49
- await dynamodbSharedLib.tableName(event._izContext, "WebSocketTask"),
50
- {
51
- taskKey: correlationId,
52
- connectionId: connectionId,
53
- }
54
- )
48
+ //(<createIdentifiersFlow>)
49
+ let identifiers
50
+ //(</createIdentifiersFlow>)
51
+
52
+ await dynamodbSharedLib.putItem(event._izContext,
53
+ await dynamodbSharedLib.tableName(event._izContext, "WebSocketTask"),
54
+ {
55
+ taskKey: `${createFlowTypeConcat(event._izContext, { flowTag: "<%- route %>", serviceTag: process.env.iz_serviceTag })}${identifiers}`,
56
+ connectionId: connectionId,
57
+ }
58
+ )
55
59
 
56
60
  let callingFlow = eventParams?.callingFlow ? eventParams.callingFlow : {};
57
61
  await createObject.createObject(
@@ -38,11 +38,28 @@ async function data(_izContext, flowSchema, srcPath) {
38
38
 
39
39
  async function createParamsForCreateSource(_izContext, flowSchema, srcPath) {
40
40
  let functionName = upperCase(FUNCTION_NAME.createObjectS3)
41
- // let objectSchema = await getObjectSchema.getObjectSchemaCombineFieldNamesWithCache(_izContext, flowSchema.objType)
42
- // let fieldNames = Object.keys(objectSchema.fieldNames)
41
+ let objectSchema = await getObjectSchema.getObjectSchemaCombineFieldNamesWithCache(_izContext, flowSchema.objType)
42
+ let objectType = flowSchema.objType.objectType
43
+ let createdFieldNames = [];
44
+ let statusFieldNames = [];
45
+ for (const [fieldNames, fieldSettings] of Object.entries(objectSchema.fieldNames)) {
46
+ if (fieldSettings.hasOwnProperty("requiredOnCreate") && fieldSettings.requiredOnCreate === true) {
47
+ createdFieldNames.push(fieldNames);
48
+ }
49
+
50
+ if (fieldSettings.hasOwnProperty("statusField") && fieldSettings.statusField === true) {
51
+ statusFieldNames.push(fieldNames)
52
+ }
53
+ }
54
+
43
55
  return {
44
56
  templatePath: templatePath,
45
- templateData: { flowTag: flowSchema.flowTag },
57
+ templateData: {
58
+ flowTag: flowSchema.flowTag,
59
+ createdFieldNames: createdFieldNames,
60
+ statusFieldNames: statusFieldNames,
61
+ objectType
62
+ },
46
63
  setting: {
47
64
  savePath: path.join(srcPath, SOURCE_PATH.webSocket, flowSchema.flowTag, "source/"),
48
65
  saveFileName: `${functionName}_Main`,