@izara_project/izara-market-library-service-schemas 1.0.17 → 1.0.19

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 (114) hide show
  1. package/package.json +4 -4
  2. package/src/GenerateCodeLibs/src/Consts.js +32 -2
  3. package/src/GenerateCodeLibs/src/GenerateCodeLibs.js +27 -61
  4. package/src/SourceManager/src/Utils.js +16 -1
  5. package/src/TemplateManager/src/FindData/FindDataYaml/data.js +0 -9
  6. package/src/TemplateManager/src/GenerateCode.js +133 -33
  7. package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/functionYaml/data.js +1 -1
  8. package/src/TemplateManager/src/OutPerActionComplete/OutDeleteComplete/functionYaml/data.js +1 -1
  9. package/src/TemplateManager/src/OutPerActionComplete/OutUpdateComplete/functionYaml/data.js +1 -1
  10. package/src/TemplateManager/src/OutPerActionComplete/OutUpdateComplete/mainFunction/template.ejs +1 -1
  11. package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrDsq/template.ejs +2 -2
  12. package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrSqs/template.ejs +2 -2
  13. package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Create/template.ejs +78 -47
  14. package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Delete/template.ejs +0 -1
  15. package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Get/template.ejs +13 -11
  16. package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Update/template.ejs +57 -13
  17. package/src/TemplateManager/src/{flowTag/webSocket/websocketHandler/lambda → PerActionEndpoint/libs}/data.js +12 -21
  18. package/src/TemplateManager/src/PerActionEndpoint/libs/template.ejs +46 -0
  19. package/src/TemplateManager/src/RelationshipPerAction/CreateRelationship/createRelationshipComplete/mainFunction/template.ejs +1 -1
  20. package/src/TemplateManager/src/RelationshipPerAction/DeleteRelationship/DeleteRelationshipComplete/mainFunction/template.ejs +1 -1
  21. package/src/TemplateManager/src/RelationshipPerAction/UpdateRelationshipSchema/updateRalationshipComplete/mainFunction/template.ejs +1 -1
  22. package/src/TemplateManager/src/ResourceYaml/dynamodb/defaultDynamoDbTable.js +15 -0
  23. package/src/TemplateManager/src/externalService/LambdaRole/data.js +120 -23
  24. package/src/TemplateManager/src/externalService/LambdaRole/template.ejs +3 -4
  25. package/src/TemplateManager/src/externalService/SnsTopicSubscriotions/data.js +31 -6
  26. package/src/TemplateManager/src/flowSchema/DefaultWebSocketResource/dynamoDb/ReservedTableData.js +65 -0
  27. package/src/TemplateManager/src/{flowTag/webSocket → flowSchema/DefaultWebSocketResource}/webSocketConnect/functionYaml/data.js +23 -5
  28. package/src/TemplateManager/src/flowSchema/DefaultWebSocketResource/webSocketConnect/functionYaml/template.ejs +29 -0
  29. package/src/TemplateManager/src/{flowTag/webSocket → flowSchema/DefaultWebSocketResource}/webSocketConnect/handler/data.js +3 -3
  30. package/src/TemplateManager/src/{flowTag/webSocket → flowSchema/DefaultWebSocketResource}/webSocketConnect/handler/template.ejs +19 -14
  31. package/src/TemplateManager/src/{flowTag/webSocket/websocketHandler → flowSchema/FlowSchemaEndpoint/InProcessFlowSchema}/functionYaml/data.js +29 -27
  32. package/src/TemplateManager/src/flowSchema/FlowSchemaEndpoint/InProcessFlowSchema/functionYaml/template.ejs +37 -0
  33. package/src/TemplateManager/src/flowSchema/FlowSchemaEndpoint/InProcessFlowSchema/handler/data.js +47 -0
  34. package/src/TemplateManager/src/flowSchema/FlowSchemaEndpoint/InProcessFlowSchema/handler/template.ejs +103 -0
  35. package/src/TemplateManager/src/flowSchema/FlowSchemaEndpoint/InProcessFlowSchema/mainFunction/data.js +46 -0
  36. package/src/TemplateManager/src/flowSchema/FlowSchemaEndpoint/InProcessFlowSchema/mainFunction/template.ejs +0 -0
  37. package/src/TemplateManager/src/flowSchema/FlowSchemaEndpoint/InProcessFlowSchema/sns-sqs/data.js +36 -0
  38. package/src/TemplateManager/src/flowSchema/FlowSchemaEndpoint/InProcessFlowSchema/sns-sqs/template.ejs +0 -0
  39. package/src/TemplateManager/src/flowSchema/FlowSchemaEndpoint/OutComplete/functionYaml/data.js +35 -0
  40. package/src/TemplateManager/src/flowSchema/FlowSchemaEndpoint/OutComplete/functionYaml/template.ejs +0 -0
  41. package/src/TemplateManager/src/flowSchema/FlowSchemaEndpoint/OutComplete/handler/data.js +35 -0
  42. package/src/TemplateManager/src/flowSchema/FlowSchemaEndpoint/OutComplete/handler/template.ejs +0 -0
  43. package/src/TemplateManager/src/flowSchema/FlowSchemaEndpoint/OutComplete/mainFunction/data.js +35 -0
  44. package/src/TemplateManager/src/flowSchema/FlowSchemaEndpoint/OutComplete/mainFunction/template.ejs +0 -0
  45. package/src/TemplateManager/src/flowSchema/FlowSchemaEndpoint/OutComplete/sns-sqs/data.js +35 -0
  46. package/src/TemplateManager/src/flowSchema/FlowSchemaEndpoint/OutComplete/sns-sqs/template.ejs +0 -0
  47. package/src/TemplateManager/src/flowSchema/UploadS3Case/confirmReservedAfterUpload/functionYaml/data.js +102 -0
  48. package/src/TemplateManager/src/flowSchema/UploadS3Case/confirmReservedAfterUpload/functionYaml/template.ejs +30 -0
  49. package/src/TemplateManager/src/flowSchema/UploadS3Case/confirmReservedAfterUpload/handler/data.js +58 -0
  50. package/src/TemplateManager/src/flowSchema/UploadS3Case/confirmReservedAfterUpload/handler/template.ejs +126 -0
  51. package/src/TemplateManager/src/flowSchema/UploadS3Case/confirmReservedAfterUpload/mainFunction/data.js +51 -0
  52. package/src/TemplateManager/src/flowSchema/UploadS3Case/confirmReservedAfterUpload/mainFunction/template.ejs +121 -0
  53. package/src/TemplateManager/src/flowSchema/UploadS3Case/confirmReservedAfterUpload/queue/data.js +64 -0
  54. package/src/TemplateManager/src/flowSchema/UploadS3Case/confirmReservedAfterUpload/queue/template.ejs +45 -0
  55. package/src/TemplateManager/src/flowSchema/UploadS3Case/createObject/functionYaml/data.js +122 -0
  56. package/src/TemplateManager/src/flowSchema/UploadS3Case/createObject/functionYaml/template.ejs +37 -0
  57. package/src/TemplateManager/src/flowSchema/UploadS3Case/createObject/handler/data.js +72 -0
  58. package/src/TemplateManager/src/flowSchema/UploadS3Case/createObject/handler/template.ejs +107 -0
  59. package/src/TemplateManager/src/flowSchema/UploadS3Case/createObject/mainFunction/data.js +55 -0
  60. package/src/TemplateManager/src/flowSchema/UploadS3Case/createObject/mainFunction/template.ejs +133 -0
  61. package/src/TemplateManager/src/flowSchema/UploadS3Case/createObjectComplete/functionYaml/data.js +102 -0
  62. package/src/TemplateManager/src/flowSchema/UploadS3Case/createObjectComplete/functionYaml/template.ejs +30 -0
  63. package/src/TemplateManager/src/flowSchema/UploadS3Case/createObjectComplete/handler/data.js +58 -0
  64. package/src/TemplateManager/src/flowSchema/UploadS3Case/createObjectComplete/handler/template.ejs +103 -0
  65. package/src/TemplateManager/src/flowSchema/UploadS3Case/createObjectComplete/mainFunction/data.js +55 -0
  66. package/src/TemplateManager/src/flowSchema/UploadS3Case/createObjectComplete/mainFunction/template.ejs +86 -0
  67. package/src/TemplateManager/src/flowSchema/UploadS3Case/createObjectComplete/sns-sqs/data.js +72 -0
  68. package/src/TemplateManager/src/flowSchema/UploadS3Case/createObjectComplete/sns-sqs/template.ejs +49 -0
  69. package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/getsignUrlsAcc/functionYaml/data.js +85 -0
  70. package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/getsignUrlsAcc/functionYaml/template.ejs +27 -0
  71. package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/getsignUrlsAcc/handler/data.js +57 -0
  72. package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/getsignUrlsAcc/handler/template.ejs +120 -0
  73. package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/getsignUrlsAcc/mainFunction/data.js +51 -0
  74. package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/getsignUrlsAcc/mainFunction/template.ejs +164 -0
  75. package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/getsignUrlsAcc/sqs/data.js +65 -0
  76. package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/getsignUrlsAcc/sqs/template.ejs +53 -0
  77. package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/reservedLimitComplete/functionYaml/data.js +112 -0
  78. package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/reservedLimitComplete/functionYaml/template.ejs +30 -0
  79. package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/reservedLimitComplete/handler/data.js +57 -0
  80. package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/reservedLimitComplete/handler/template.ejs +126 -0
  81. package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/reservedLimitComplete/mainFunction/data.js +54 -0
  82. package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/reservedLimitComplete/mainFunction/template.ejs +254 -0
  83. package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/reservedLimitComplete/queue/data.js +64 -0
  84. package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/reservedLimitComplete/queue/template.ejs +45 -0
  85. package/src/TemplateManager/src/flowSchema/UploadS3Case/hookCode/handler/data.js +94 -0
  86. package/src/TemplateManager/src/flowSchema/UploadS3Case/hookCode/handler/templateAsyncHandler.ejs +110 -0
  87. package/src/TemplateManager/src/flowSchema/UploadS3Case/hookCode/handler/templateSyncHandler.ejs +49 -0
  88. package/src/TemplateManager/src/flowSchema/UploadS3Case/hookCode/hookLogic/data.js +44 -0
  89. package/src/TemplateManager/src/flowSchema/UploadS3Case/hookCode/mainFunction/data.js +66 -0
  90. package/src/TemplateManager/src/flowSchema/UploadS3Case/hookCode/mainFunction/template.ejs +7 -0
  91. package/src/TemplateManager/src/flowSchema/UploadS3Case/hookCode/queue/data.js +73 -0
  92. package/src/TemplateManager/src/flowSchema/UploadS3Case/hookCode/queue/snsTemplate.ejs +59 -0
  93. package/src/TemplateManager/src/flowSchema/UploadS3Case/hookCode/queue/sqsTemplate.ejs +43 -0
  94. package/src/TemplateManager/src/flowSchema/UploadS3Case/processFileS3AfterUpload/functionYml/HdrDsq/data.js +87 -0
  95. package/src/TemplateManager/src/flowSchema/UploadS3Case/processFileS3AfterUpload/functionYml/HdrDsq/template.ejs +30 -0
  96. package/src/TemplateManager/src/flowSchema/UploadS3Case/processFileS3AfterUpload/functionYml/HdrS3/data.js +112 -0
  97. package/src/TemplateManager/src/{flowTag/webSocket/websocketHandler/functionYaml → flowSchema/UploadS3Case/processFileS3AfterUpload/functionYml/HdrS3}/template.ejs +10 -5
  98. package/src/TemplateManager/src/flowSchema/UploadS3Case/processFileS3AfterUpload/handler/handlerDsq/data.js +45 -0
  99. package/src/TemplateManager/src/flowSchema/UploadS3Case/processFileS3AfterUpload/handler/handlerDsq/template.ejs +151 -0
  100. package/src/TemplateManager/src/flowSchema/UploadS3Case/processFileS3AfterUpload/handler/handlerS3/data.js +43 -0
  101. package/src/TemplateManager/src/flowSchema/UploadS3Case/processFileS3AfterUpload/handler/handlerS3/template.ejs +68 -0
  102. package/src/TemplateManager/src/flowSchema/UploadS3Case/processFileS3AfterUpload/mainFunction/data.js +43 -0
  103. package/src/TemplateManager/src/flowSchema/UploadS3Case/processFileS3AfterUpload/mainFunction/template.ejs +392 -0
  104. package/src/TemplateManager/src/flowSchema/UploadS3Case/processFileS3AfterUpload/queue/data.js +77 -0
  105. package/src/TemplateManager/src/flowSchema/UploadS3Case/processFileS3AfterUpload/queue/dsqTemplatePath.ejs +32 -0
  106. package/src/TemplateManager/src/flowSchema/UploadS3Case/processFileS3AfterUpload/queue/s3Template.ejs +59 -0
  107. package/src/TemplateManager/src/flowSchema/UploadS3Case/relate/S3/data.js +51 -0
  108. package/src/TemplateManager/src/flowSchema/UploadS3Case/relate/S3/template.ejs +13 -0
  109. package/src/TemplateManager/src/flowSchema/UploadS3Case/relate/libs/data.js +42 -0
  110. package/src/TemplateManager/src/flowSchema/UploadS3Case/relate/libs/template.ejs +137 -0
  111. package/src/TemplateManager/src/libs/Consts.js +60 -28
  112. package/src/TemplateManager/src/flowTag/webSocket/webSocketConnect/functionYaml/template.ejs +0 -10
  113. package/src/TemplateManager/src/flowTag/webSocket/websocketHandler/lambda/template.ejs +0 -131
  114. /package/src/TemplateManager/src/{flowTag/resources/dynamoDb/data.js → flowSchema/DefaultWebSocketResource/dynamoDb/WebSocketTaskData.js} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@izara_project/izara-market-library-service-schemas",
3
- "version": "1.0.17",
3
+ "version": "1.0.19",
4
4
  "description": "Schemas for Izara Market project",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -21,9 +21,9 @@
21
21
  },
22
22
  "dependencies": {
23
23
  "@izara_project/izara-core-library-core": "^1.0.14",
24
- "@izara_project/izara-core-library-external-request": "^1.0.16",
25
- "@izara_project/izara-core-library-service-schemas": "^1.0.33",
26
- "@izara_project/izara-shared": "^1.0.113",
24
+ "@izara_project/izara-core-library-external-request": "^1.0.17",
25
+ "@izara_project/izara-core-library-service-schemas": "^1.0.37",
26
+ "@izara_project/izara-shared": "^1.0.116",
27
27
  "ejs": "^3.1.10",
28
28
  "js-beautify": "^1.15.1",
29
29
  "lodash": "^4.17.21",
@@ -56,17 +56,47 @@ const TOPIC_NAME_GENERATE_CODE = {
56
56
  deleteNodeComplete: "DeleteNodeComplete",
57
57
  outDeleteNodeComplete: "OutDeleteNodeComplete",
58
58
  getNodeComplete: "GetNodeComplete",
59
- outGetNodeComplete: "OutGetNodeComplete"
59
+ outGetNodeComplete: "OutGetNodeComplete",
60
+ reservedLimitComplete: "ReservedLimitComplete"
60
61
  }
61
62
 
62
63
  const GRAPH_HANDLER_SERVICE_NAME = {
63
64
  graphHandler: "GraphHandler"
64
65
  }
65
66
 
67
+ const ACCOUNTLIMIT_TAG = {
68
+ staticLimit: "staticLimit",
69
+ reservedDynamic: "reservedDynamic"
70
+ }
71
+
72
+ const LIMIT_TAG = {
73
+ uploadImage: "uploadImageS3",
74
+ uploadData: "uploadDataS3"
75
+ }
76
+
77
+ const RBAC_TYPE = {
78
+ appLevel: "AppLevel",
79
+ userLevel: "UserLevel"
80
+ }
81
+
82
+ const TOPIC_NAME_EXTERNAL_SERVICE = {
83
+ staticLimitProcessComplete: "OutStaticLimitProcessComplete",
84
+ reservedDynamicUsageComplete: "OutReservedDynamicUsageComplete"
85
+ }
86
+
87
+ const EXTERNAL_SERVICE_NAME = {
88
+ accountLimits: "AccountLimits"
89
+ }
90
+
66
91
 
67
92
  module.exports = {
68
93
  TOPIC_NAME_GENERATE_CODE,
69
94
  TOPIC_NAME_GRAPH_HANDLER,
70
95
  PREFIX,
71
- GRAPH_HANDLER_SERVICE_NAME
96
+ GRAPH_HANDLER_SERVICE_NAME,
97
+ ACCOUNTLIMIT_TAG,
98
+ LIMIT_TAG,
99
+ RBAC_TYPE,
100
+ TOPIC_NAME_EXTERNAL_SERVICE,
101
+ EXTERNAL_SERVICE_NAME
72
102
  }
@@ -20,7 +20,6 @@ along with this program.If not, see < http://www.gnu.org/licenses/>.
20
20
  const lodash = require('lodash');
21
21
  const hash = require("object-hash")
22
22
 
23
-
24
23
  const sqsSharedLib = require('@izara_project/izara-shared/src/SqsSharedLib');
25
24
  const snsSharedLib = require('@izara_project/izara-shared/src/SnsSharedLib');
26
25
  const inMemoryCacheLib = require('@izara_project/izara-shared/src/InMemoryCacheLib');
@@ -162,6 +161,30 @@ async function validateSchemaPerRecord(
162
161
 
163
162
  }
164
163
 
164
+ /**
165
+ * use to create validation for initialize request
166
+ *
167
+ * @param {object} _izContext
168
+ * @param {object} flowType
169
+ * @param {object} flowType.flowTag
170
+ * @param {object} flowType.serviceTag
171
+ * @returns {object}
172
+ */
173
+
174
+ async function validationForWebSocket(
175
+ _izContext,
176
+ flowType
177
+ ) {
178
+ _izContext.logger.debug("validator schema for flowTag", {
179
+ flowType
180
+ })
181
+ let flowSchema = await getObjectSchema.getFlowSchemaS3(_izContext, flowType)
182
+
183
+ let validatorSchemaForFlowSchema = flowSchema.initializeRequest.initializeRequestProperties
184
+ _izContext.logger.debug("validatorSchemaForFlowSchema:", validatorSchemaForFlowSchema)
185
+
186
+
187
+ }
165
188
  // /**
166
189
  // * use to validate record for Lambda handler hdrSqs/hdrDsq
167
190
  // * Note!: cannot throw error when use this function outside recordHandler
@@ -779,60 +802,6 @@ async function createDataDetailsLib(
779
802
  for (let [keyFieldName, settingFieldName] of Object.entries(objectSchemas.fieldNames)) {
780
803
  // _izContext.logger.debug("Loop fieldNamesObjectSchemas", { keyFieldName });
781
804
 
782
- // check field is identifier
783
- if (objectSchemas.identifierFieldNames.includes(keyFieldName)) {
784
-
785
- if (Object.keys(objectSchemas.fieldNames).length == 1) {
786
-
787
- for (const storageIdentifiers of settingFieldName.storageResourceTags) {
788
- // _izContext.logger.debug("case only 1 fieldNames identifiers in ObjectSchema")
789
- if (storageResources[storageIdentifiers].storageType === consts.STORAGE_TYPES.dynamoDB) {
790
- if (createDataDetails.hasOwnProperty(storageIdentifiers)) {
791
- // _izContext.logger.debug("same table")
792
- createDataDetails[storageIdentifiers].fieldNames.push(keyFieldName);
793
- } else {
794
- // _izContext.logger.debug("new table")
795
- Object.assign(createDataDetails, {
796
- [storageResources[storageIdentifiers]]: {
797
- storageType: consts.STORAGE_TYPES.dynamoDB,
798
- tableName: storageResources[storageIdentifiers].tableName,
799
- fieldNames: [keyFieldName]
800
- }
801
- })
802
- if (storageResources[storageIdentifiers].hasOwnProperty("groupByPartitionKeyField")) {
803
- Object.assign(createDataDetails[storageIdentifiers], {
804
- groupByPartitionKeyField: storageResources[storageIdentifiers].groupByPartitionKeyField
805
- })
806
- }
807
- }
808
- } else if (storageResources[storageIdentifiers].storageType === consts.STORAGE_TYPES.graph) {
809
- let getGraphServerTag = await serviceConfig.getGraphServiceTag(
810
- _izContext,
811
- storageResources[storageIdentifiers].graphServerTag
812
- );
813
- if (getGraphServerTag) {
814
- if (createDataDetails.hasOwnProperty(getGraphServerTag)) {
815
- createDataDetails[getGraphServerTag].fieldNames.push(keyFieldName)
816
- } else {
817
- Object.assign(createDataDetails, {
818
- [getGraphServerTag]: {
819
- storageType: consts.STORAGE_TYPES.graph,
820
- fieldNames: [keyFieldName]
821
- }
822
- })
823
- }
824
- }
825
- }
826
- }
827
- } else {
828
- continue
829
- }
830
- continue
831
- };
832
- // _izContext.logger.debug("case multiple fieldName");
833
- // validate storageResourceTags.
834
- // _izContext.logger.debug("storageResourceTags is", settingFieldName.storageResourceTags);
835
-
836
805
  for (let eachStorageResourceTag of settingFieldName.storageResourceTags) {
837
806
  // _izContext.logger.debug("Loop eachStorageResourceTags", eachStorageResourceTag);
838
807
 
@@ -862,7 +831,7 @@ async function createDataDetailsLib(
862
831
  }
863
832
 
864
833
  } else if (storageResources[eachStorageResourceTag].storageType == consts.STORAGE_TYPES.graph) {
865
- let checkGraphServerTags = await serviceConfig.getGraphServiceTag(
834
+ let checkGraphServerTags = await serviceConfig.getGraphServiceTagWithCache(
866
835
  _izContext,
867
836
  storageResources[eachStorageResourceTag].graphServerTag
868
837
  );
@@ -886,7 +855,6 @@ async function createDataDetailsLib(
886
855
  }; // end loop storageResourceTags
887
856
 
888
857
  }; // end loop
889
- _izContext.logger.debug("_______All createDataDetails_____", createDataDetails);
890
858
  return createDataDetails;
891
859
  };
892
860
 
@@ -937,7 +905,7 @@ async function createDeleteDataDetail(_izContext, objectSchema) {
937
905
  }
938
906
 
939
907
  function createFieldForUpdateDynamoDb(_izContext, objectSchema, dynamoDataDetail, fields) {
940
- console.log("createFieldForUpdateDynamoDb", {
908
+ _izContext.logger.debug("createFieldForUpdateDynamoDb", {
941
909
  objectSchema,
942
910
  dynamoDataDetail,
943
911
  fields
@@ -950,14 +918,12 @@ function createFieldForUpdateDynamoDb(_izContext, objectSchema, dynamoDataDetail
950
918
  if (dynamoDataDetail.fieldNames.includes(fieldName)) {
951
919
  if (fields[fieldName]) {
952
920
  if (!fieldsForUpdateDynamo.hasOwnProperty(fields[fieldName])) {
953
- console.log(fields[fieldName])
921
+ _izContext.logger.debug("assign new fieldName", (fields[fieldName]))
954
922
  Object.assign(fieldsForUpdateDynamo, {
955
923
  [fieldName]: fields[fieldName]
956
924
  }
957
925
  )
958
926
  }
959
- } else {
960
- fieldsForUpdateDynamo = {}
961
927
  }
962
928
  }
963
929
  }
@@ -47,9 +47,24 @@ function deleteFile(filePath) {
47
47
  }
48
48
  }
49
49
 
50
+
51
+ async function createHookFunction(_izContext, sourcePath, destinationPath) {
52
+ const logicalHookFile = path.join("./src/schemas/flowSchema", sourcePath)
53
+ if (fs.existsSync(logicalHookFile)) {
54
+ try {
55
+ fse.copySync(logicalHookFile, destinationPath, { overwrite: true })
56
+ } catch (err) {
57
+ _izContext.logger.error(err)
58
+ }
59
+ } else {
60
+ throw new NoRetryError(`error no sourceFile:${logicalHookFile}`)
61
+ }
62
+ }
63
+
50
64
  module.exports = {
51
65
  deleteFileInDir,
52
- deleteFile
66
+ deleteFile,
67
+ createHookFunction
53
68
  }
54
69
 
55
70
 
@@ -139,15 +139,6 @@ async function data(_izContext, objectSchemas, srcPath) {
139
139
  );
140
140
  }
141
141
 
142
- if (graphForGetNode.length) {
143
- additionalResourcePermission.push(
144
- createIamRole(
145
- { [RESOURCE_CLASSES.lambda]: ["InvokeFunction"] },
146
- graphForGetNode
147
- )
148
- );
149
- }
150
-
151
142
  additionalResourcePermission.push(
152
143
  createIamRole({
153
144
  [RESOURCE_CLASSES.sqs]:
@@ -31,6 +31,8 @@ const {
31
31
  getGraphServiceNameFromGraphServerTagWithCache
32
32
  } = require('@izara_project/izara-core-library-service-schemas/src/ServiceConfig');
33
33
 
34
+ const { SOURCE_PATH } = require('./libs/Consts')
35
+
34
36
  const { createSource } = require("../../SourceManager/src/CreateSource");
35
37
  const { deleteFileInDir } = require("../../SourceManager/src/Utils");
36
38
  // create Get handler per ObjectType
@@ -51,6 +53,7 @@ const functionYamlDataHdrApi = require('./PerActionEndpoint/FunctionYaml/HdrApi/
51
53
  const functionYamlDataHdrSqs = require('./PerActionEndpoint/FunctionYaml/HdrSqs/data');
52
54
  const functionYamlDataHdrDsq = require('./PerActionEndpoint/FunctionYaml/HdrDsq/data');
53
55
 
56
+ const createGenerateCodeLibs = require('./PerActionEndpoint/libs/data');
54
57
  // out updateNode Complete
55
58
  const functionYamlOutUpdateComplete = require('./OutPerActionComplete/OutUpdateComplete/functionYaml/data');
56
59
  const outUpdateCompleteHandler = require('./OutPerActionComplete/OutUpdateComplete/handler/data');
@@ -177,19 +180,43 @@ const createProcessLogicalPaginateMainFunction = require('./ProcessLogicalPagina
177
180
  const createProcessLogicalPaginateFunctionYamlHdrDsq = require('./ProcessLogicalPagination/FunctionYaml/HdrDsq/data')
178
181
  const createProcessLogicalPaginateFunctionYamlHdrSqs = require('./ProcessLogicalPagination/FunctionYaml/HdrSqs/data')
179
182
 
180
- // getNode complete
181
- // const createGetNodeCompleteFunctionYaml = require('./OutPerActionComplete/OutGetComplete/functionYaml/data');
182
- // const createGetNodeCompleteHandler = require('./OutPerActionComplete/OutGetComplete/handler/data');
183
- // const createGetNodeCompleteMainFunction = require('./OutPerActionComplete/OutGetComplete/mainFunction/data');
184
- // const createGetNodeSnsInSqs = require('./OutPerActionComplete/OutGetComplete/sqs-in-sns/data');
183
+ // OutGetNodeComplete Topic
185
184
  const createGetNodeSnsOut = require('./OutPerActionComplete/OutGetComplete/sns-out/data');
186
-
187
- const createWebSocketDynamoDb = require('./flowTag/resources/dynamoDb/data');
188
- const createWebSocketConnectYaml = require('./flowTag/webSocket/webSocketConnect/functionYaml/data');
189
- const createWebSocketConnectHandler = require('./flowTag/webSocket/webSocketConnect/handler/data');
190
- const createWebSocketHandlerYaml = require('./flowTag/webSocket/websocketHandler/functionYaml/data')
191
- const createWebSocketHandler = require('./flowTag/webSocket/websocketHandler/lambda/data');
192
-
185
+ // webSocket uploadData
186
+ const createWebSocketDynamoDb = require('./flowSchema/DefaultWebSocketResource/dynamoDb/WebSocketTaskData');
187
+ const createReservecDataMainTable = require('./flowSchema/DefaultWebSocketResource/dynamoDb/ReservedTableData');
188
+
189
+ const createFunctionYamlCreateObjectWebSocket = require('./flowSchema/UploadS3Case/createObject/functionYaml/data');
190
+ const createHandlerCreateObjectWebSocket = require('./flowSchema/UploadS3Case/createObject/handler/data');
191
+ const createMainFunctionCreateObjectWebSocket = require('./flowSchema/UploadS3Case/createObject/mainFunction/data');
192
+ const createWebSocketCreateObjectCompleteFunctionYaml = require('./flowSchema/UploadS3Case/createObjectComplete/functionYaml/data');
193
+ const createWebSocketCreateObjectCompleteQueue = require('./flowSchema/UploadS3Case/createObjectComplete/sns-sqs/data');
194
+ const createWebSocketCreateObjectCompleteHandler = require('./flowSchema/UploadS3Case/createObjectComplete/handler/data');
195
+ const createWebSocketCreateObjectCompleteMainFunction = require('./flowSchema/UploadS3Case/createObjectComplete/mainFunction/data');
196
+ const createWebSocketGenerateCodeLibs = require('./flowSchema/UploadS3Case/relate/libs/data')
197
+
198
+ const createGetPresignUrlFunctionYaml = require('./flowSchema/UploadS3Case/createPresignUrl/getsignUrlsAcc/functionYaml/data');
199
+ const createGetPresignUrlHandler = require('./flowSchema/UploadS3Case/createPresignUrl/getsignUrlsAcc/handler/data');
200
+ const createGetPresignUrlMainFunction = require('./flowSchema/UploadS3Case/createPresignUrl/getsignUrlsAcc/mainFunction/data');
201
+ const createGetPresignUrlQueueName = require('./flowSchema/UploadS3Case/createPresignUrl/getsignUrlsAcc/sqs/data')
202
+
203
+ const createReservedLimitFunctionYaml = require('./flowSchema/UploadS3Case/createPresignUrl/reservedLimitComplete/functionYaml/data');
204
+ const createReservedLimitHandler = require('./flowSchema/UploadS3Case/createPresignUrl/reservedLimitComplete/handler/data');
205
+ const createReservedLimitMainFunction = require('./flowSchema/UploadS3Case/createPresignUrl/reservedLimitComplete/mainFunction/data');
206
+ const createReservedLimitQueueName = require('./flowSchema/UploadS3Case/createPresignUrl/reservedLimitComplete/queue/data');
207
+
208
+ const createBucketS3 = require('./flowSchema/UploadS3Case/relate/S3/data')
209
+ const createProcessAfterUploadS3FunctionYmlS3 = require('./flowSchema/UploadS3Case/processFileS3AfterUpload/functionYml/HdrS3/data');
210
+ const createProcessAfterUploadS3Queue = require('./flowSchema/UploadS3Case/processFileS3AfterUpload/queue/data');
211
+ const createProcessAfterUploadS3HandlerS3 = require('./flowSchema/UploadS3Case/processFileS3AfterUpload/handler/handlerS3/data');
212
+ const createProcessAfterUploadS3MainFunction = require('./flowSchema/UploadS3Case/processFileS3AfterUpload/mainFunction/data');
213
+
214
+ const createConfirmAfterUploadS3FunctionYaml = require('./flowSchema/UploadS3Case/confirmReservedAfterUpload/functionYaml/data');
215
+ const createConfirmAfterUploadS3Handler = require('./flowSchema/UploadS3Case/confirmReservedAfterUpload/handler/data');
216
+ const createConfirmAfterUploadS3MainFunction = require('./flowSchema/UploadS3Case/confirmReservedAfterUpload/mainFunction/data');
217
+ const createConfirmAfterUploadS3Queue = require('./flowSchema/UploadS3Case/confirmReservedAfterUpload/queue/data');
218
+
219
+ const createHookFunctionMainFunction = require('./flowSchema/UploadS3Case/hookCode/mainFunction/data');
193
220
  //get functionNameConfig
194
221
  const functionNameConfigYamldata = require('./externalService/FunctionNameConfig/data');
195
222
 
@@ -220,14 +247,13 @@ async function generateCodeWithTemplate(_izContext, objSchemaPath) {
220
247
 
221
248
  // define path for store yml file
222
249
  const GENERATECODE_SOURCE_PATH = {
223
- appYaml: join(saveFilePath, `../sls_yaml/generatedCode/source/`),
224
- resourceYaml: join(saveFilePath, `../../resource/sls_yaml/generatedCode/source/`),
225
- lambdaPerAction: join(saveFilePath, '../src/generatedCode/ObjectTypePerActionEndpoint/source/'),
226
- externalService: join(saveFilePath, '../initial_setup/generatedCode/source/'),
227
- resourceLocation: join(saveFilePath, 'src/generatedCode/perAction/source/'),
228
- lamdaPerCombindActionPath: join(saveFilePath, `/generatedCode/lamdaPerCombindAction/source/`), // test
229
- lambdaPerObjectTypePath: join(saveFilePath, `/generatedCode/lambdaPerObjectType/source/`), // test
230
- updateRelationship: join(saveFilePath, `../src/generatedCode/RelationshipPerAction/source/`),
250
+ appYaml: join(saveFilePath, SOURCE_PATH.appYaml),
251
+ resourceYaml: join(saveFilePath, SOURCE_PATH.resourceYaml),
252
+ lambdaPerAction: join(saveFilePath, SOURCE_PATH.lambdaPerAction),
253
+ externalService: join(saveFilePath, SOURCE_PATH.externalService),
254
+ relationshipPerAction: join(saveFilePath, SOURCE_PATH.relationshipPerAction),
255
+ webSocketEndpoint: join(saveFilePath, SOURCE_PATH.webSocket),
256
+ generateCodeLib: join(saveFilePath, SOURCE_PATH.generateCodeLib)
231
257
  };
232
258
 
233
259
  let createSourceParams = [];
@@ -247,24 +273,98 @@ async function generateCodeWithTemplate(_izContext, objSchemaPath) {
247
273
  // _izContext.logger.debug("allObjectRelationships::", allObjectRelationships);
248
274
 
249
275
  const allLocalFlowSchemas = await getAllLocalFlowSchemas(_izContext, objSchemaPath);
250
- _izContext.logger.debug("allLocalFlowSchemas::", allLocalFlowSchemas)
251
- for (const flowSchema of allLocalFlowSchemas.records) {
276
+ // console.log("allLocalFlowSchemas::", allLocalFlowSchemas)
252
277
 
253
- }
278
+ // default webSocket setting
254
279
  const webSocketTaskTable = createWebSocketDynamoDb(_izContext, saveFilePath);
255
- const webSocketConnectYaml = createWebSocketConnectYaml(_izContext, saveFilePath);
256
- const webSocketConnectHandler = createWebSocketConnectHandler(_izContext, saveFilePath);
257
- const webSocketHandlerYaml = createWebSocketHandlerYaml(_izContext, saveFilePath);
258
- const webSocketHandler = createWebSocketHandler(_izContext, saveFilePath);
259
- // const webSocketHandler
280
+ // const webSocketConnectYaml = createWebSocketConnectYaml(_izContext, saveFilePath);
281
+ // const webSocketConnectHandler = createWebSocketConnectHandler(_izContext, saveFilePath);
282
+
260
283
 
261
- const webSocketResource = [...webSocketTaskTable, ...webSocketConnectYaml, ...webSocketConnectHandler, ...webSocketHandler, ...webSocketHandlerYaml]
284
+ const webSocketResource = [...webSocketTaskTable
285
+ // ...webSocketConnectYaml, ...webSocketConnectHandler,
286
+ ]
262
287
  if (allLocalFlowSchemas.records.length) {
263
288
  createSourceParams.push(
264
289
  ...webSocketResource
265
290
  )
266
291
  }
267
292
 
293
+ for (const flowSchema of allLocalFlowSchemas.records) {
294
+ // console.log("flowSchema::", flowSchema)
295
+ const reservedDataTable = createReservecDataMainTable(_izContext, saveFilePath);
296
+ const bucketS3 = createBucketS3(_izContext, flowSchema, saveFilePath)
297
+
298
+ const functionYamlCreateObjectWebSocket = createFunctionYamlCreateObjectWebSocket(_izContext, flowSchema, saveFilePath);
299
+ const handlerCreateObjectWebSocket = createHandlerCreateObjectWebSocket(_izContext, flowSchema, saveFilePath);
300
+ const mainFunctionCreateObjectWebSocket = await createMainFunctionCreateObjectWebSocket(_izContext, flowSchema, saveFilePath);
301
+ const webSocketCreateObjectCompleteFunctionYaml = createWebSocketCreateObjectCompleteFunctionYaml(_izContext, saveFilePath);
302
+ const webSocketCreateObjectCompleteQueue = createWebSocketCreateObjectCompleteQueue(_izContext, saveFilePath);
303
+ const webSocketCreateObjectCompleteMainFunction = createWebSocketCreateObjectCompleteMainFunction(_izContext, saveFilePath)
304
+ const webSocketCreateObjectCompleteHandler = createWebSocketCreateObjectCompleteHandler(_izContext, saveFilePath);
305
+
306
+ const webSoketFunction = [...functionYamlCreateObjectWebSocket, ...handlerCreateObjectWebSocket,
307
+ ...mainFunctionCreateObjectWebSocket, ...webSocketCreateObjectCompleteFunctionYaml,
308
+ ...webSocketCreateObjectCompleteQueue, ...webSocketCreateObjectCompleteMainFunction,
309
+ ...webSocketCreateObjectCompleteHandler]
310
+
311
+ // const webSocketCreateObjectStordCache = createWebSocketCreateObjectStoredCache(_izContext, saveFilePath);
312
+ const webSocketGenerateCodeLibs = createWebSocketGenerateCodeLibs(_izContext, saveFilePath)
313
+
314
+ const getPresignUrlFunctionYaml = createGetPresignUrlFunctionYaml(_izContext, saveFilePath);
315
+ const getPresignUrlHandler = createGetPresignUrlHandler(_izContext, saveFilePath);
316
+ const getPresignUrlMainFunction = createGetPresignUrlMainFunction(_izContext, saveFilePath);
317
+ const getPresignUrlQueue = createGetPresignUrlQueueName(_izContext, saveFilePath);
318
+
319
+ const getPresignUrlResource = [...getPresignUrlFunctionYaml, ...getPresignUrlHandler, ...getPresignUrlMainFunction, ...getPresignUrlQueue]
320
+
321
+ const reservedLimitCompleteFunctionYaml = createReservedLimitFunctionYaml(_izContext, saveFilePath);
322
+ const reservedLimitCompleteMainFunction = createReservedLimitMainFunction(_izContext, flowSchema, saveFilePath);
323
+ const reservedLimitCompleteHandler = createReservedLimitHandler(_izContext, saveFilePath);
324
+ const reservedLimitCompleteQueue = createReservedLimitQueueName(_izContext, saveFilePath);
325
+
326
+ const reservedLimitComplete = [...reservedLimitCompleteFunctionYaml, ...reservedLimitCompleteHandler, ...reservedLimitCompleteMainFunction, ...reservedLimitCompleteQueue]
327
+
328
+ const processAfterUploadFunctionYmlS3 = createProcessAfterUploadS3FunctionYmlS3(_izContext, flowSchema, saveFilePath);
329
+ // const processAfterUploadFunctionYamlHdrDsq = createProcessAfterUploadS3FunctionYmlDsq(_izContext, saveFilePath);
330
+ const processAfterUploadSqs = createProcessAfterUploadS3Queue(_izContext, saveFilePath);
331
+ const processAfterUploadHandlerS3 = createProcessAfterUploadS3HandlerS3(_izContext, saveFilePath);
332
+ // const processAfterUploadHandlerDsq = createProcessAfterUploadS3HandlerDsq(_izContext, saveFilePath);
333
+ const processAfterUploadMainFunction = createProcessAfterUploadS3MainFunction(_izContext, saveFilePath);
334
+
335
+ const processAfterUploadS3Resource = [...processAfterUploadFunctionYmlS3, ...processAfterUploadSqs,
336
+ ...processAfterUploadHandlerS3,
337
+ ...processAfterUploadMainFunction
338
+ //...processAfterUploadHandlerDsq, ...processAfterUploadFunctionYamlHdrDsq,
339
+ ]
340
+
341
+ const confirmReservedAfterUploadFunctionYaml = createConfirmAfterUploadS3FunctionYaml(_izContext, saveFilePath);
342
+ const confirmReservedAfterUploadHandler = createConfirmAfterUploadS3Handler(_izContext, saveFilePath);
343
+ const confirmReservedAfterUploadMainFunction = createConfirmAfterUploadS3MainFunction(_izContext, saveFilePath);
344
+ const confirmReservedAfterUploadQueue = createConfirmAfterUploadS3Queue(_izContext, saveFilePath);
345
+
346
+ const confirmAfterUploadS3Resource = [...confirmReservedAfterUploadFunctionYaml, ...confirmReservedAfterUploadHandler, ...confirmReservedAfterUploadMainFunction, ...confirmReservedAfterUploadQueue]
347
+ if (flowSchema.hasOwnProperty("uploadS3") && flowSchema.uploadS3 === true) {
348
+
349
+ const webSocketUploadS3Resource = [...webSoketFunction, ...webSocketGenerateCodeLibs, ...reservedDataTable]
350
+ createSourceParams.push(...webSocketUploadS3Resource, ...getPresignUrlResource, ...reservedLimitComplete, ...bucketS3, ...processAfterUploadS3Resource, ...confirmAfterUploadS3Resource)
351
+ }
352
+
353
+
354
+
355
+ if (flowSchema.hasOwnProperty("initializeRequest") && flowSchema.hasOwnProperty("response")) {
356
+ const webSocketEndpointResource = []
357
+ createSourceParams.push(...webSocketEndpointResource)
358
+ }
359
+
360
+ const hookFunctionMainFunction = createHookFunctionMainFunction(_izContext, flowSchema, saveFilePath);
361
+ const createHookResource = [...hookFunctionMainFunction];
362
+
363
+ createSourceParams.push(...createHookResource)
364
+
365
+ }
366
+
367
+
268
368
 
269
369
  /*
270
370
  Should we generateCode with objectSchema that not in hierarchy or not?
@@ -286,8 +386,8 @@ async function generateCodeWithTemplate(_izContext, objSchemaPath) {
286
386
 
287
387
 
288
388
  // create External service
289
- const createFunctionIamRole = await createExternalLambdaRole(_izContext, allObjSchemas.records, allObjectRelationships, saveFilePath);
290
- const createSnsSubscription = await createExternalSnsSubscriptions(_izContext, allObjectRelationships, allObjSchemas.records, saveFilePath);
389
+ const createFunctionIamRole = await createExternalLambdaRole(_izContext, allObjSchemas.records, allObjectRelationships, allLocalFlowSchemas.records, saveFilePath);
390
+ const createSnsSubscription = await createExternalSnsSubscriptions(_izContext, allObjSchemas.records, allObjectRelationships, allLocalFlowSchemas.records, saveFilePath);
291
391
  for (let objectSchema of allObjSchemas.records) {
292
392
 
293
393
  // generate handler perAction
@@ -497,8 +597,8 @@ async function generateCodeWithTemplate(_izContext, objSchemaPath) {
497
597
  // const getNodeCompleteMainFunction = createGetNodeCompleteMainFunction(_izContext, saveFilePath);
498
598
  // const getNodeCompleteSnsInSqs = createGetNodeSnsInSqs(_izContext, saveFilePath);
499
599
  const getNodeCompleteSnsOut = createGetNodeSnsOut(_izContext, saveFilePath);
500
-
501
- const getNodeCompleteResource = [...getNodeCompleteSnsOut]
600
+ const generateCodeLib = createGenerateCodeLibs(_izContext, saveFilePath);
601
+ const getNodeCompleteResource = [...getNodeCompleteSnsOut, ...generateCodeLib]
502
602
  createSourceParams.push(...createMainResourceDefault,
503
603
  createSnsSubscription,
504
604
  createFunctionIamRole,
@@ -49,7 +49,7 @@ function createFunctionYamlOutUpdateComplete(_izContext, srcPath) {
49
49
  ],
50
50
  [RESOURCE_CLASSES.sns]: [
51
51
  SNS_RESOURCE.publish,
52
- SNS_RESOURCE.subscription
52
+ SNS_RESOURCE.subscribe
53
53
  ]
54
54
  },
55
55
  [
@@ -49,7 +49,7 @@ function createFunctionYamlOutUpdateComplete(_izContext, srcPath) {
49
49
  ],
50
50
  [RESOURCE_CLASSES.sns]: [
51
51
  SNS_RESOURCE.publish,
52
- SNS_RESOURCE.subscription
52
+ SNS_RESOURCE.subscribe
53
53
  ]
54
54
  },
55
55
  [
@@ -49,7 +49,7 @@ function createFunctionYamlOutUpdateComplete(_izContext, srcPath) {
49
49
  ],
50
50
  [RESOURCE_CLASSES.sns]: [
51
51
  SNS_RESOURCE.publish,
52
- SNS_RESOURCE.subscription
52
+ SNS_RESOURCE.subscribe
53
53
  ]
54
54
  },
55
55
  [
@@ -86,7 +86,7 @@ module.exports.updateNodeComplete = async (
86
86
  objectType: returnValue.objType.objectType,
87
87
  serviceTag: returnValue.objType.serviceTag
88
88
  },
89
- objInstance: {
89
+ objInstanceFull: {
90
90
  identifiers: returnValue.objInstanceFull.identifiers,
91
91
  fields: returnValue.objInstanceFull.fields
92
92
  },
@@ -70,7 +70,7 @@ module.exports.main = middleware.wrap(async (event,context, callback) => {
70
70
 
71
71
  await validateSchemaPerRecord(
72
72
  record,
73
- "<%- functionName %><%- firstLetterUpperCase(handler) %>",
73
+ "<%- firstLetterUpperCase(functionName) %><%- firstLetterUpperCase(handler) %>",
74
74
  OBJTYPE,
75
75
  "<%- action %>"
76
76
  //(<validateSchemaSetting>)
@@ -81,7 +81,7 @@ module.exports.main = middleware.wrap(async (event,context, callback) => {
81
81
  /*
82
82
  await recordHandlerSharedLib.validateRecord(
83
83
  record,
84
- "<%- functionName %><%- firstLetterUpperCase(handler) %>",
84
+ "<%- firstLetterUpperCase(functionName) %><%- firstLetterUpperCase(handler) %>",
85
85
  perRecordsValidatorSchema
86
86
  );
87
87
  */
@@ -68,7 +68,7 @@ module.exports.main = middleware.wrap(async (event,context, callback) => {
68
68
 
69
69
  await validateSchemaPerRecord(
70
70
  record,
71
- "<%- functionName %><%- firstLetterUpperCase(handler) %>",
71
+ "<%- firstLetterUpperCase(functionName) %><%- firstLetterUpperCase(handler) %>",
72
72
  OBJTYPE,
73
73
  "<%- action %>"
74
74
  //(<validateSchemaSetting>)
@@ -79,7 +79,7 @@ module.exports.main = middleware.wrap(async (event,context, callback) => {
79
79
  /*
80
80
  await recordHandlerSharedLib.validateRecord(
81
81
  record,
82
- "<%- functionName %><%- firstLetterUpperCase(handler) %>",
82
+ "<%- firstLetterUpperCase(functionName) %><%- firstLetterUpperCase(handler) %>",
83
83
  perRecordsValidatorSchema
84
84
  );
85
85
  */