@izara_project/izara-market-library-service-schemas 1.0.18 → 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 (105) hide show
  1. package/package.json +2 -2
  2. package/src/GenerateCodeLibs/src/Consts.js +32 -2
  3. package/src/GenerateCodeLibs/src/GenerateCodeLibs.js +3 -61
  4. package/src/SourceManager/src/Utils.js +16 -1
  5. package/src/TemplateManager/src/GenerateCode.js +134 -45
  6. package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/functionYaml/data.js +1 -1
  7. package/src/TemplateManager/src/OutPerActionComplete/OutDeleteComplete/functionYaml/data.js +1 -1
  8. package/src/TemplateManager/src/OutPerActionComplete/OutUpdateComplete/functionYaml/data.js +1 -1
  9. package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Create/template.ejs +42 -23
  10. package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Delete/template.ejs +0 -1
  11. package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Get/template.ejs +13 -11
  12. package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Update/template.ejs +34 -18
  13. package/src/TemplateManager/src/{flowTag/webSocket/websocketHandler/mainFunction → PerActionEndpoint/libs}/data.js +12 -23
  14. package/src/TemplateManager/src/PerActionEndpoint/libs/template.ejs +46 -0
  15. package/src/TemplateManager/src/externalService/LambdaRole/data.js +114 -4
  16. package/src/TemplateManager/src/externalService/LambdaRole/template.ejs +3 -4
  17. package/src/TemplateManager/src/externalService/SnsTopicSubscriotions/data.js +31 -6
  18. package/src/TemplateManager/src/flowSchema/DefaultWebSocketResource/dynamoDb/ReservedTableData.js +65 -0
  19. package/src/TemplateManager/src/{flowTag/webSocket → flowSchema/DefaultWebSocketResource}/webSocketConnect/functionYaml/data.js +3 -2
  20. package/src/TemplateManager/src/{flowTag/webSocket → flowSchema/DefaultWebSocketResource}/webSocketConnect/handler/data.js +1 -1
  21. package/src/TemplateManager/src/flowSchema/FlowSchemaEndpoint/InProcessFlowSchema/functionYaml/data.js +77 -0
  22. package/src/TemplateManager/src/{flowTag/webSocket/websocketHandler → flowSchema/FlowSchemaEndpoint/InProcessFlowSchema}/functionYaml/template.ejs +9 -3
  23. package/src/TemplateManager/src/flowSchema/FlowSchemaEndpoint/InProcessFlowSchema/handler/data.js +47 -0
  24. package/src/TemplateManager/src/{flowTag/webSocket/websocketHandler → flowSchema/FlowSchemaEndpoint/InProcessFlowSchema}/handler/template.ejs +25 -52
  25. package/src/TemplateManager/src/flowSchema/FlowSchemaEndpoint/InProcessFlowSchema/mainFunction/data.js +46 -0
  26. package/src/TemplateManager/src/flowSchema/FlowSchemaEndpoint/InProcessFlowSchema/mainFunction/template.ejs +0 -0
  27. package/src/TemplateManager/src/flowSchema/FlowSchemaEndpoint/InProcessFlowSchema/sns-sqs/data.js +36 -0
  28. package/src/TemplateManager/src/flowSchema/FlowSchemaEndpoint/InProcessFlowSchema/sns-sqs/template.ejs +0 -0
  29. package/src/TemplateManager/src/flowSchema/FlowSchemaEndpoint/OutComplete/functionYaml/data.js +35 -0
  30. package/src/TemplateManager/src/flowSchema/FlowSchemaEndpoint/OutComplete/functionYaml/template.ejs +0 -0
  31. package/src/TemplateManager/src/flowSchema/FlowSchemaEndpoint/OutComplete/handler/data.js +35 -0
  32. package/src/TemplateManager/src/flowSchema/FlowSchemaEndpoint/OutComplete/handler/template.ejs +0 -0
  33. package/src/TemplateManager/src/flowSchema/FlowSchemaEndpoint/OutComplete/mainFunction/data.js +35 -0
  34. package/src/TemplateManager/src/flowSchema/FlowSchemaEndpoint/OutComplete/mainFunction/template.ejs +0 -0
  35. package/src/TemplateManager/src/flowSchema/FlowSchemaEndpoint/OutComplete/sns-sqs/data.js +35 -0
  36. package/src/TemplateManager/src/flowSchema/FlowSchemaEndpoint/OutComplete/sns-sqs/template.ejs +0 -0
  37. package/src/TemplateManager/src/flowSchema/UploadS3Case/confirmReservedAfterUpload/functionYaml/data.js +102 -0
  38. package/src/TemplateManager/src/flowSchema/UploadS3Case/confirmReservedAfterUpload/functionYaml/template.ejs +30 -0
  39. package/src/TemplateManager/src/flowSchema/UploadS3Case/confirmReservedAfterUpload/handler/data.js +58 -0
  40. package/src/TemplateManager/src/flowSchema/UploadS3Case/confirmReservedAfterUpload/handler/template.ejs +126 -0
  41. package/src/TemplateManager/src/flowSchema/UploadS3Case/confirmReservedAfterUpload/mainFunction/data.js +51 -0
  42. package/src/TemplateManager/src/flowSchema/UploadS3Case/confirmReservedAfterUpload/mainFunction/template.ejs +121 -0
  43. package/src/TemplateManager/src/flowSchema/UploadS3Case/confirmReservedAfterUpload/queue/data.js +64 -0
  44. package/src/TemplateManager/src/flowSchema/UploadS3Case/confirmReservedAfterUpload/queue/template.ejs +45 -0
  45. package/src/TemplateManager/src/{flowTag/webSocket/websocketHandler → flowSchema/UploadS3Case/createObject}/functionYaml/data.js +35 -12
  46. package/src/TemplateManager/src/flowSchema/UploadS3Case/createObject/functionYaml/template.ejs +37 -0
  47. package/src/TemplateManager/src/flowSchema/UploadS3Case/createObject/handler/data.js +72 -0
  48. package/src/TemplateManager/src/flowSchema/UploadS3Case/createObject/handler/template.ejs +107 -0
  49. package/src/TemplateManager/src/{flowTag/webSocket/websocketHandler/handler → flowSchema/UploadS3Case/createObject/mainFunction}/data.js +11 -15
  50. package/src/TemplateManager/src/{flowTag/webSocket/websocketHandler → flowSchema/UploadS3Case/createObject}/mainFunction/template.ejs +4 -4
  51. package/src/TemplateManager/src/{flowTag/webSocket/webSocketComplete → flowSchema/UploadS3Case/createObjectComplete}/functionYaml/data.js +6 -4
  52. package/src/TemplateManager/src/flowSchema/UploadS3Case/createObjectComplete/functionYaml/template.ejs +30 -0
  53. package/src/TemplateManager/src/{flowTag/webSocket/webSocketComplete → flowSchema/UploadS3Case/createObjectComplete}/handler/data.js +1 -1
  54. package/src/TemplateManager/src/{flowTag/webSocket/webSocketComplete → flowSchema/UploadS3Case/createObjectComplete}/handler/template.ejs +10 -10
  55. package/src/TemplateManager/src/{flowTag/webSocket/webSocketComplete → flowSchema/UploadS3Case/createObjectComplete}/mainFunction/data.js +3 -4
  56. package/src/TemplateManager/src/flowSchema/UploadS3Case/createObjectComplete/mainFunction/template.ejs +86 -0
  57. package/src/TemplateManager/src/{flowTag/webSocket/webSocketComplete → flowSchema/UploadS3Case/createObjectComplete}/sns-sqs/data.js +4 -2
  58. package/src/TemplateManager/src/flowSchema/UploadS3Case/createObjectComplete/sns-sqs/template.ejs +49 -0
  59. package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/getsignUrlsAcc/functionYaml/data.js +85 -0
  60. package/src/TemplateManager/src/{flowTag/webSocket/webSocketComplete → flowSchema/UploadS3Case/createPresignUrl/getsignUrlsAcc}/functionYaml/template.ejs +1 -1
  61. package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/getsignUrlsAcc/handler/data.js +57 -0
  62. package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/getsignUrlsAcc/handler/template.ejs +120 -0
  63. package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/getsignUrlsAcc/mainFunction/data.js +51 -0
  64. package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/getsignUrlsAcc/mainFunction/template.ejs +164 -0
  65. package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/getsignUrlsAcc/sqs/data.js +65 -0
  66. package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/getsignUrlsAcc/sqs/template.ejs +53 -0
  67. package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/reservedLimitComplete/functionYaml/data.js +112 -0
  68. package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/reservedLimitComplete/functionYaml/template.ejs +30 -0
  69. package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/reservedLimitComplete/handler/data.js +57 -0
  70. package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/reservedLimitComplete/handler/template.ejs +126 -0
  71. package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/reservedLimitComplete/mainFunction/data.js +54 -0
  72. package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/reservedLimitComplete/mainFunction/template.ejs +254 -0
  73. package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/reservedLimitComplete/queue/data.js +64 -0
  74. package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/reservedLimitComplete/queue/template.ejs +45 -0
  75. package/src/TemplateManager/src/flowSchema/UploadS3Case/hookCode/handler/data.js +94 -0
  76. package/src/TemplateManager/src/flowSchema/UploadS3Case/hookCode/handler/templateAsyncHandler.ejs +110 -0
  77. package/src/TemplateManager/src/flowSchema/UploadS3Case/hookCode/handler/templateSyncHandler.ejs +49 -0
  78. package/src/TemplateManager/src/flowSchema/UploadS3Case/hookCode/hookLogic/data.js +44 -0
  79. package/src/TemplateManager/src/flowSchema/UploadS3Case/hookCode/mainFunction/data.js +66 -0
  80. package/src/TemplateManager/src/flowSchema/UploadS3Case/hookCode/mainFunction/template.ejs +7 -0
  81. package/src/TemplateManager/src/flowSchema/UploadS3Case/hookCode/queue/data.js +73 -0
  82. package/src/TemplateManager/src/flowSchema/UploadS3Case/hookCode/queue/snsTemplate.ejs +59 -0
  83. package/src/TemplateManager/src/flowSchema/UploadS3Case/processFileS3AfterUpload/functionYml/HdrDsq/data.js +87 -0
  84. package/src/TemplateManager/src/flowSchema/UploadS3Case/processFileS3AfterUpload/functionYml/HdrDsq/template.ejs +30 -0
  85. package/src/TemplateManager/src/flowSchema/UploadS3Case/processFileS3AfterUpload/functionYml/HdrS3/data.js +112 -0
  86. package/src/TemplateManager/src/flowSchema/UploadS3Case/processFileS3AfterUpload/functionYml/HdrS3/template.ejs +38 -0
  87. package/src/TemplateManager/src/flowSchema/UploadS3Case/processFileS3AfterUpload/handler/handlerDsq/data.js +45 -0
  88. package/src/TemplateManager/src/flowSchema/UploadS3Case/processFileS3AfterUpload/handler/handlerDsq/template.ejs +151 -0
  89. package/src/TemplateManager/src/flowSchema/UploadS3Case/processFileS3AfterUpload/handler/handlerS3/data.js +43 -0
  90. package/src/TemplateManager/src/flowSchema/UploadS3Case/processFileS3AfterUpload/handler/handlerS3/template.ejs +68 -0
  91. package/src/TemplateManager/src/flowSchema/UploadS3Case/processFileS3AfterUpload/mainFunction/data.js +43 -0
  92. package/src/TemplateManager/src/flowSchema/UploadS3Case/processFileS3AfterUpload/mainFunction/template.ejs +392 -0
  93. package/src/TemplateManager/src/flowSchema/UploadS3Case/processFileS3AfterUpload/queue/data.js +77 -0
  94. package/src/TemplateManager/src/flowSchema/UploadS3Case/processFileS3AfterUpload/queue/dsqTemplatePath.ejs +32 -0
  95. package/src/TemplateManager/src/flowSchema/UploadS3Case/processFileS3AfterUpload/queue/s3Template.ejs +59 -0
  96. package/src/TemplateManager/src/flowSchema/UploadS3Case/relate/S3/data.js +51 -0
  97. package/src/TemplateManager/src/flowSchema/UploadS3Case/relate/S3/template.ejs +13 -0
  98. package/src/TemplateManager/src/flowSchema/UploadS3Case/relate/libs/data.js +42 -0
  99. package/src/TemplateManager/src/flowSchema/UploadS3Case/relate/libs/template.ejs +137 -0
  100. package/src/TemplateManager/src/libs/Consts.js +57 -28
  101. package/src/TemplateManager/src/flowTag/webSocket/webSocketComplete/mainFunction/template.ejs +0 -180
  102. /package/src/TemplateManager/src/{flowTag/resources/dynamoDb/data.js → flowSchema/DefaultWebSocketResource/dynamoDb/WebSocketTaskData.js} +0 -0
  103. /package/src/TemplateManager/src/{flowTag/webSocket → flowSchema/DefaultWebSocketResource}/webSocketConnect/functionYaml/template.ejs +0 -0
  104. /package/src/TemplateManager/src/{flowTag/webSocket → flowSchema/DefaultWebSocketResource}/webSocketConnect/handler/template.ejs +0 -0
  105. /package/src/TemplateManager/src/{flowTag/webSocket/webSocketComplete/sns-sqs/template.ejs → flowSchema/UploadS3Case/hookCode/queue/sqsTemplate.ejs} +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.18",
3
+ "version": "1.0.19",
4
4
  "description": "Schemas for Izara Market project",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -22,7 +22,7 @@
22
22
  "dependencies": {
23
23
  "@izara_project/izara-core-library-core": "^1.0.14",
24
24
  "@izara_project/izara-core-library-external-request": "^1.0.17",
25
- "@izara_project/izara-core-library-service-schemas": "^1.0.35",
25
+ "@izara_project/izara-core-library-service-schemas": "^1.0.37",
26
26
  "@izara_project/izara-shared": "^1.0.116",
27
27
  "ejs": "^3.1.10",
28
28
  "js-beautify": "^1.15.1",
@@ -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');
@@ -803,60 +802,6 @@ async function createDataDetailsLib(
803
802
  for (let [keyFieldName, settingFieldName] of Object.entries(objectSchemas.fieldNames)) {
804
803
  // _izContext.logger.debug("Loop fieldNamesObjectSchemas", { keyFieldName });
805
804
 
806
- // check field is identifier
807
- if (objectSchemas.identifierFieldNames.includes(keyFieldName)) {
808
-
809
- if (Object.keys(objectSchemas.fieldNames).length == 1) {
810
-
811
- for (const storageIdentifiers of settingFieldName.storageResourceTags) {
812
- // _izContext.logger.debug("case only 1 fieldNames identifiers in ObjectSchema")
813
- if (storageResources[storageIdentifiers].storageType === consts.STORAGE_TYPES.dynamoDB) {
814
- if (createDataDetails.hasOwnProperty(storageIdentifiers)) {
815
- // _izContext.logger.debug("same table")
816
- createDataDetails[storageIdentifiers].fieldNames.push(keyFieldName);
817
- } else {
818
- // _izContext.logger.debug("new table")
819
- Object.assign(createDataDetails, {
820
- [storageResources[storageIdentifiers]]: {
821
- storageType: consts.STORAGE_TYPES.dynamoDB,
822
- tableName: storageResources[storageIdentifiers].tableName,
823
- fieldNames: [keyFieldName]
824
- }
825
- })
826
- if (storageResources[storageIdentifiers].hasOwnProperty("groupByPartitionKeyField")) {
827
- Object.assign(createDataDetails[storageIdentifiers], {
828
- groupByPartitionKeyField: storageResources[storageIdentifiers].groupByPartitionKeyField
829
- })
830
- }
831
- }
832
- } else if (storageResources[storageIdentifiers].storageType === consts.STORAGE_TYPES.graph) {
833
- let getGraphServerTag = await serviceConfig.getGraphServiceTag(
834
- _izContext,
835
- storageResources[storageIdentifiers].graphServerTag
836
- );
837
- if (getGraphServerTag) {
838
- if (createDataDetails.hasOwnProperty(getGraphServerTag)) {
839
- createDataDetails[getGraphServerTag].fieldNames.push(keyFieldName)
840
- } else {
841
- Object.assign(createDataDetails, {
842
- [getGraphServerTag]: {
843
- storageType: consts.STORAGE_TYPES.graph,
844
- fieldNames: [keyFieldName]
845
- }
846
- })
847
- }
848
- }
849
- }
850
- }
851
- } else {
852
- continue
853
- }
854
- continue
855
- };
856
- // _izContext.logger.debug("case multiple fieldName");
857
- // validate storageResourceTags.
858
- // _izContext.logger.debug("storageResourceTags is", settingFieldName.storageResourceTags);
859
-
860
805
  for (let eachStorageResourceTag of settingFieldName.storageResourceTags) {
861
806
  // _izContext.logger.debug("Loop eachStorageResourceTags", eachStorageResourceTag);
862
807
 
@@ -886,7 +831,7 @@ async function createDataDetailsLib(
886
831
  }
887
832
 
888
833
  } else if (storageResources[eachStorageResourceTag].storageType == consts.STORAGE_TYPES.graph) {
889
- let checkGraphServerTags = await serviceConfig.getGraphServiceTag(
834
+ let checkGraphServerTags = await serviceConfig.getGraphServiceTagWithCache(
890
835
  _izContext,
891
836
  storageResources[eachStorageResourceTag].graphServerTag
892
837
  );
@@ -910,7 +855,6 @@ async function createDataDetailsLib(
910
855
  }; // end loop storageResourceTags
911
856
 
912
857
  }; // end loop
913
- _izContext.logger.debug("_______All createDataDetails_____", createDataDetails);
914
858
  return createDataDetails;
915
859
  };
916
860
 
@@ -961,7 +905,7 @@ async function createDeleteDataDetail(_izContext, objectSchema) {
961
905
  }
962
906
 
963
907
  function createFieldForUpdateDynamoDb(_izContext, objectSchema, dynamoDataDetail, fields) {
964
- console.log("createFieldForUpdateDynamoDb", {
908
+ _izContext.logger.debug("createFieldForUpdateDynamoDb", {
965
909
  objectSchema,
966
910
  dynamoDataDetail,
967
911
  fields
@@ -974,14 +918,12 @@ function createFieldForUpdateDynamoDb(_izContext, objectSchema, dynamoDataDetail
974
918
  if (dynamoDataDetail.fieldNames.includes(fieldName)) {
975
919
  if (fields[fieldName]) {
976
920
  if (!fieldsForUpdateDynamo.hasOwnProperty(fields[fieldName])) {
977
- console.log(fields[fieldName])
921
+ _izContext.logger.debug("assign new fieldName", (fields[fieldName]))
978
922
  Object.assign(fieldsForUpdateDynamo, {
979
923
  [fieldName]: fields[fieldName]
980
924
  }
981
925
  )
982
926
  }
983
- } else {
984
- fieldsForUpdateDynamo = {}
985
927
  }
986
928
  }
987
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
 
@@ -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,24 +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/handler/data');
192
- const createWebSocketMainFunction = require('./flowTag/webSocket/websocketHandler/mainFunction/data');
193
- const createWebSocketCompleteFunctionYaml = require('./flowTag/webSocket/webSocketComplete/functionYaml/data');
194
- const createWebSocketCompleteSqs = require('./flowTag/webSocket/webSocketComplete/sns-sqs/data');
195
- const createWebSocketCompleteHandler = require('./flowTag/webSocket/webSocketComplete/handler/data');
196
- const createWebSocketCompleteMainFunction = require('./flowTag/webSocket/webSocketComplete/mainFunction/data')
197
-
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');
198
220
  //get functionNameConfig
199
221
  const functionNameConfigYamldata = require('./externalService/FunctionNameConfig/data');
200
222
 
@@ -225,14 +247,13 @@ async function generateCodeWithTemplate(_izContext, objSchemaPath) {
225
247
 
226
248
  // define path for store yml file
227
249
  const GENERATECODE_SOURCE_PATH = {
228
- appYaml: join(saveFilePath, `../sls_yaml/generatedCode/source/`),
229
- resourceYaml: join(saveFilePath, `../../resource/sls_yaml/generatedCode/source/`),
230
- lambdaPerAction: join(saveFilePath, '../src/generatedCode/ObjectTypePerActionEndpoint/source/'),
231
- externalService: join(saveFilePath, '../initial_setup/generatedCode/source/'),
232
- resourceLocation: join(saveFilePath, 'src/generatedCode/perAction/source/'),
233
- lamdaPerCombindActionPath: join(saveFilePath, `/generatedCode/lamdaPerCombindAction/source/`), // test
234
- lambdaPerObjectTypePath: join(saveFilePath, `/generatedCode/lambdaPerObjectType/source/`), // test
235
- 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)
236
257
  };
237
258
 
238
259
  let createSourceParams = [];
@@ -252,30 +273,98 @@ async function generateCodeWithTemplate(_izContext, objSchemaPath) {
252
273
  // _izContext.logger.debug("allObjectRelationships::", allObjectRelationships);
253
274
 
254
275
  const allLocalFlowSchemas = await getAllLocalFlowSchemas(_izContext, objSchemaPath);
255
- // _izContext.logger.debug("allLocalFlowSchemas::", allLocalFlowSchemas)
256
- for (const flowSchema of allLocalFlowSchemas.records) {
276
+ // console.log("allLocalFlowSchemas::", allLocalFlowSchemas)
257
277
 
258
- }
278
+ // default webSocket setting
259
279
  const webSocketTaskTable = createWebSocketDynamoDb(_izContext, saveFilePath);
260
- const webSocketConnectYaml = createWebSocketConnectYaml(_izContext, saveFilePath);
261
- const webSocketConnectHandler = createWebSocketConnectHandler(_izContext, saveFilePath);
262
- const webSocketHandlerYaml = createWebSocketHandlerYaml(_izContext, saveFilePath);
263
- const webSocketHandler = createWebSocketHandler(_izContext, saveFilePath);
264
- const webSocketMainFunction = createWebSocketMainFunction(_izContext, saveFilePath);
265
- const webSocketCompleteFunctionYaml = createWebSocketCompleteFunctionYaml(_izContext, saveFilePath);
266
- const webSocketCompleteQueue = createWebSocketCompleteSqs(_izContext, saveFilePath);
267
- const webSocketCompleteHandler = createWebSocketCompleteHandler(_izContext, saveFilePath);
268
- const webSocketCompleteMainFunction = createWebSocketCompleteMainFunction(_izContext, saveFilePath);
269
- // const webSocketHandler
270
-
271
- const webSocketResource = [...webSocketTaskTable, ...webSocketConnectYaml, ...webSocketConnectHandler, ...webSocketHandler, ...webSocketHandlerYaml,
272
- ...webSocketMainFunction, ...webSocketCompleteQueue, ...webSocketCompleteFunctionYaml, ...webSocketCompleteHandler, ...webSocketCompleteMainFunction]
280
+ // const webSocketConnectYaml = createWebSocketConnectYaml(_izContext, saveFilePath);
281
+ // const webSocketConnectHandler = createWebSocketConnectHandler(_izContext, saveFilePath);
282
+
283
+
284
+ const webSocketResource = [...webSocketTaskTable
285
+ // ...webSocketConnectYaml, ...webSocketConnectHandler,
286
+ ]
273
287
  if (allLocalFlowSchemas.records.length) {
274
288
  createSourceParams.push(
275
289
  ...webSocketResource
276
290
  )
277
291
  }
278
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
+
279
368
 
280
369
  /*
281
370
  Should we generateCode with objectSchema that not in hierarchy or not?
@@ -297,8 +386,8 @@ async function generateCodeWithTemplate(_izContext, objSchemaPath) {
297
386
 
298
387
 
299
388
  // create External service
300
- const createFunctionIamRole = await createExternalLambdaRole(_izContext, allObjSchemas.records, allObjectRelationships, saveFilePath);
301
- const createSnsSubscription = await createExternalSnsSubscriptions(_izContext, allObjSchemas.records, allObjectRelationships, 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);
302
391
  for (let objectSchema of allObjSchemas.records) {
303
392
 
304
393
  // generate handler perAction
@@ -508,8 +597,8 @@ async function generateCodeWithTemplate(_izContext, objSchemaPath) {
508
597
  // const getNodeCompleteMainFunction = createGetNodeCompleteMainFunction(_izContext, saveFilePath);
509
598
  // const getNodeCompleteSnsInSqs = createGetNodeSnsInSqs(_izContext, saveFilePath);
510
599
  const getNodeCompleteSnsOut = createGetNodeSnsOut(_izContext, saveFilePath);
511
-
512
- const getNodeCompleteResource = [...getNodeCompleteSnsOut]
600
+ const generateCodeLib = createGenerateCodeLibs(_izContext, saveFilePath);
601
+ const getNodeCompleteResource = [...getNodeCompleteSnsOut, ...generateCodeLib]
513
602
  createSourceParams.push(...createMainResourceDefault,
514
603
  createSnsSubscription,
515
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
  [
@@ -16,13 +16,17 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
16
16
  */
17
17
 
18
18
  'use strict';
19
- const asyncFlowSharedLib = require('@izara_project/izara-shared/src/AsyncFlowSharedLib');
20
- const dynamodbSharedLib = require('@izara_project/izara-shared/src/DynamodbSharedLib');
21
- const lambdaSharedLib = require('@izara_project/izara-shared/src/LambdaSharedLib')
22
- const callingFlowSharedLib = require('@izara_project/izara-shared/src/CallingFlowSharedLib');
23
-
24
- const sns = require('@izara_project/izara-core-library-external-request/src/resources/Sns');
19
+ const izaraShared = require('@izara_project/izara-shared');
20
+ const asyncFlowSharedLib = izaraShared.asyncFlowSharedLib;
21
+ const dynamodbSharedLib = izaraShared.dynamodbSharedLib;
22
+ const lambdaSharedLib = izaraShared.lambdaSharedLib;
23
+ const callingFlowSharedLib = izaraShared.callingFlowSharedLib;
25
24
  const snsSharedLib = require('@izara_project/izara-shared/src/SnsSharedLib');
25
+
26
+ const externalRequest = require('@izara_project/izara-core-library-external-request');
27
+ const sns = externalRequest.sns;
28
+ const lambda = externalRequest.lambda
29
+
26
30
  const getObjectSchema = require('@izara_project/izara-core-library-service-schemas/src/GetObjectSchema');
27
31
  const serviceConfigLib = require('@izara_project/izara-core-library-service-schemas/src/ServiceConfig')
28
32
 
@@ -59,6 +63,8 @@ const { createDataDetailsLib } = require('@izara_project/izara-market-library-se
59
63
  const { createLinkTypeId } = require('@izara_project/izara-core-library-service-schemas/src/Utils');
60
64
  const { findLinksByObjTypes } = require("@izara_project/izara-core-library-service-schemas/src/libs/RelSchemaLib")
61
65
  const lodash = require("lodash")
66
+
67
+
62
68
  /**
63
69
  - all storageType( DB and Graph) use objInstance({identifiers,fields})
64
70
  - storageType[DB] async
@@ -95,6 +101,7 @@ module.exports.<%- functionName %>Main = async (
95
101
  let errorsFound = [];
96
102
 
97
103
  const userId = _izContext.correlationIds.get(coreConsts.BASE_USER_ID);
104
+ const targetId = _izContext.correlationIds.get(coreConsts.TARGET_ID)
98
105
  if (!userId) {
99
106
  errorsFound.push("Not have userId")
100
107
  }
@@ -103,12 +110,10 @@ module.exports.<%- functionName %>Main = async (
103
110
  const SERVICE_TAG = process.env.iz_serviceTag;
104
111
  //(<beforeQuery>)
105
112
  //(</beforeQuery>)
106
-
107
113
  const MAIN_OBJTYPE = {
108
114
  objectType: OBJECT_TYPE,
109
115
  serviceTag: SERVICE_TAG
110
116
  }
111
- //test npm install from local
112
117
  let objectSchema = await getObjectSchema.getObjSchemaS3WithCache(
113
118
  _izContext,
114
119
  MAIN_OBJTYPE
@@ -121,6 +126,10 @@ module.exports.<%- functionName %>Main = async (
121
126
  );
122
127
  _izContext.logger.debug("objectSchemas", objectSchemas);
123
128
 
129
+ if (objectSchema.hasOwnProperty("belongTo") && !targetId) {
130
+ errorsFound.push('not have targetId')
131
+ }
132
+
124
133
  let createDataDetails = await createDataDetailsLib(_izContext, objectSchemas);
125
134
  _izContext.logger.debug("createDataDetails is =", createDataDetails);
126
135
 
@@ -181,7 +190,7 @@ module.exports.<%- functionName %>Main = async (
181
190
  errorsFound.push(`relationship direction ${JSON.stringify(requestParams.relationships[index])} is invalid`)
182
191
  }
183
192
  }
184
-
193
+ _izContext.logger.debug("finish validate Relationships from RequestParams")
185
194
  let requiredOnCreateLinks = {};
186
195
  let createLinkTypeIds = [];
187
196
  // validate relationships link
@@ -230,24 +239,27 @@ module.exports.<%- functionName %>Main = async (
230
239
  })
231
240
  }
232
241
 
233
- for (const createRelationship of requestParams.relationships) {
234
- const onCreateLinkTypeId = createLinkTypeId(
235
- _izContext,
236
- MAIN_OBJTYPE,
237
- createRelationship.targetObjType,
238
- createRelationship.relType,
239
- createRelationship.relationshipDirection
240
- );
242
+ if (requestParams.hasOwnProperty("relationships") && requestParams.relationships.length) {
243
+ for (const createRelationship of requestParams.relationships) {
244
+ const onCreateLinkTypeId = createLinkTypeId(
245
+ _izContext,
246
+ MAIN_OBJTYPE,
247
+ createRelationship.targetObjType,
248
+ createRelationship.relType,
249
+ createRelationship.relationshipDirection
250
+ );
241
251
 
242
- if (!requiredOnCreateLinks.hasOwnProperty(onCreateLinkTypeId)) {
243
- errorsFound.push(`relType:${JSON.stringify(createRelationship.relType)} not allow to create when use create action`)
244
- continue;
245
- } else {
246
- createLinkTypeIds.push(onCreateLinkTypeId);
252
+ if (!requiredOnCreateLinks.hasOwnProperty(onCreateLinkTypeId)) {
253
+ errorsFound.push(`relType:${JSON.stringify(createRelationship.relType)} not allow to create when use create action`)
254
+ continue;
255
+ } else {
256
+ createLinkTypeIds.push(onCreateLinkTypeId);
257
+ }
247
258
  }
248
259
  }
249
260
  }
250
261
 
262
+
251
263
  // validate missing relType when create that should create
252
264
  const remainRequiredOnCreateLinkTypeIds = Object.keys(requiredOnCreateLinks)
253
265
  .filter(requiredInCreateLinkTypeId => !createLinkTypeIds.includes(requiredInCreateLinkTypeId))
@@ -477,7 +489,7 @@ module.exports.<%- functionName %>Main = async (
477
489
  messageObject = {
478
490
  objType: MAIN_OBJTYPE,
479
491
  objInstanceFull: objecForCreate.objInstanceFull,
480
- relationships: requestParams.relationships
492
+ relationships: requestParams.relationships || []
481
493
  };
482
494
  };
483
495
 
@@ -583,6 +595,13 @@ module.exports.<%- functionName %>Main = async (
583
595
  await sns.publishAsync(_izContext, messageParams);
584
596
  }
585
597
  }
598
+ return {
599
+ objType: MAIN_OBJTYPE,
600
+ fieldNames: requestParams.fieldNames,
601
+ relationship: requestParams.relationships,
602
+ status: "complete",
603
+ errorsFound: errorsFound
604
+ }
586
605
  }
587
606
  } catch (err) {
588
607
  throw (err)
@@ -28,7 +28,6 @@ const serviceConfigLib = require('@izara_project/izara-core-library-service-sche
28
28
 
29
29
  const uploadUseCase = require('@izara_project/izara-core-library-service-schemas/src/libs/UploadUseCase')
30
30
 
31
-
32
31
  const hash = require("object-hash")
33
32
  const NoRetryError = require('@izara_project/izara-core-library-core/src/NoRetryError');
34
33
  const path = require('path')