@izara_project/izara-market-library-service-schemas 1.0.35 → 1.0.37

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 (139) hide show
  1. package/package.json +8 -7
  2. package/src/GenerateCodeLibs/src/Consts.js +2 -2
  3. package/src/GenerateCodeLibs/src/GenerateCodeLibs.js +3 -2
  4. package/src/MainLibs/src/Consts.js +8 -8
  5. package/src/MainLibs/src/GenerateCodeUtils.js +3 -1
  6. package/src/{reStructure/TemplateData → TemplateManager/src}/attributeTreeSchema/generateTemplateData.js +35 -20
  7. package/src/TemplateManager/src/attributeTreeSchema/referenceRelationshipSchema/data.js +84 -0
  8. package/src/TemplateManager/src/attributeTreeSchema/referenceRelationshipSchema/tempReferenceRelationshipSchema.ejs +9 -0
  9. package/src/{reStructure/TemplateData → TemplateManager/src}/attributeTreeSchema/relationshipSchema/data.js +1 -1
  10. package/src/TemplateManager/src/flowSchema/DefaultWebSocketResource/webSocketConnect/handler/template.ejs +1 -1
  11. package/src/TemplateManager/src/flowSchema/FlowSchemaEndpoint/InProcessFlowSchema/handler/template.ejs +1 -1
  12. package/src/TemplateManager/src/flowSchema/UploadS3Case/createObject/handler/template.ejs +1 -1
  13. package/src/TemplateManager/src/flowSchema/UploadS3Case/createObject/mainFunction/template.ejs +1 -1
  14. package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/getsignUrlsAcc/mainFunction/template.ejs +1 -1
  15. package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/reservedLimitComplete/mainFunction/template.ejs +1 -1
  16. package/src/TemplateManager/src/flowSchema/UploadS3Case/processFileS3AfterUpload/mainFunction/template.ejs +1 -1
  17. package/src/TemplateManager/src/flowSchema/UploadS3Case/relate/libs/template.ejs +1 -1
  18. package/src/reStructure/SchemaConfig.js +1 -4
  19. package/src/reStructure/TemplateData/EndpointPerService/mainFunction/create/backupTemplate.ejs +701 -0
  20. package/src/reStructure/TemplateData/EndpointPerService/mainFunction/create/template.ejs +35 -163
  21. package/src/reStructure/TemplateData/EndpointPerService/mainFunction/delete/template.ejs +3 -1
  22. package/src/reStructure/TemplateData/EndpointPerService/mainFunction/get/template.ejs +3 -4
  23. package/src/reStructure/TemplateData/EndpointPerService/mainFunction/update/template.ejs +3 -1
  24. package/src/reStructure/TemplateData/externalService/lambdaRole/data.js +45 -19
  25. package/src/reStructure/TemplateData/externalService/lambdaRole/template.ejs +5 -2
  26. package/src/reStructure/TemplateData/externalService/snsTopicSubscriptions/data.js +24 -14
  27. package/src/reStructure/TemplateData/externalService/snsTopicSubscriptions/template.ejs +4 -1
  28. package/src/reStructure/TemplateData/findData/GetByStorage/getByGraph.ejs +4 -3
  29. package/src/reStructure/TemplateData/findData/handler/template.ejs +2 -1
  30. package/src/reStructure/TemplateData/flowSchema/CreateRecordComplete/mainFunction/data.js +4 -10
  31. package/src/reStructure/TemplateData/flowSchema/CreateRecordComplete/mainFunction/template.ejs +69 -34
  32. package/src/reStructure/TemplateData/flowSchema/components/upload/confirmReserved/mainFunction/template.ejs +1 -1
  33. package/src/reStructure/TemplateData/flowSchema/components/upload/createObject/handler/data.js +3 -2
  34. package/src/reStructure/TemplateData/flowSchema/components/upload/createObject/handler/template.ejs +3 -12
  35. package/src/reStructure/TemplateData/flowSchema/components/upload/createObject/mainFunction/template.ejs +2 -2
  36. package/src/reStructure/TemplateData/flowSchema/components/upload/createObjectComplete/mainFunction/template.ejs +18 -2
  37. package/src/reStructure/TemplateData/flowSchema/components/upload/preSignUrl/createPresignUrl/mainFunction/template.ejs +10 -7
  38. package/src/reStructure/TemplateData/flowSchema/components/upload/preSignUrl/reservedLimit/mainFunction/template.ejs +2 -2
  39. package/src/reStructure/TemplateData/flowSchema/components/upload/preSignUrl/reservedLimit/sqs/data.js +1 -1
  40. package/src/reStructure/TemplateData/flowSchema/components/upload/processFile/mainFunction/template.ejs +2 -2
  41. package/src/reStructure/TemplateData/flowSchema/components/upload/relate/libs/data.js +12 -4
  42. package/src/reStructure/TemplateData/flowSchema/components/upload/relate/libs/template.ejs +14 -9
  43. package/src/reStructure/TemplateData/flowSchema/components/websocket/connect/handler/template.ejs +1 -1
  44. package/src/reStructure/TemplateData/flowSchema/createRecordByStatusType/complete/functionYaml/data.js +16 -40
  45. package/src/reStructure/TemplateData/flowSchema/createRecordByStatusType/complete/functionYaml/template.ejs +9 -9
  46. package/src/reStructure/TemplateData/flowSchema/createRecordByStatusType/complete/handler/data.js +1 -1
  47. package/src/reStructure/TemplateData/flowSchema/createRecordByStatusType/complete/mainFunction/data.js +3 -3
  48. package/src/reStructure/TemplateData/flowSchema/createRecordByStatusType/complete/mainFunction/template.ejs +78 -27
  49. package/src/reStructure/TemplateData/flowSchema/createRecordByStatusType/dynamoDB/register.js +82 -0
  50. package/src/reStructure/TemplateData/flowSchema/createRecordByStatusType/sns-in/data.js +1 -1
  51. package/src/reStructure/TemplateData/flowSchema/createRecordByStatusType/sns-in/template.ejs +34 -1
  52. package/src/reStructure/TemplateData/flowSchema/createRecordByStatusType/storedCacheTemplate.ejs +9 -32
  53. package/src/reStructure/TemplateData/flowSchema/createRecordByStatusType/subscriptionOutAll/data.js +30 -20
  54. package/src/reStructure/TemplateData/flowSchema/createRecordByStatusType/subscriptionOutAll/template.ejs +6 -6
  55. package/src/reStructure/TemplateData/flowSchema/createRecordByStatusType/wbs/functionYaml/data.js +32 -32
  56. package/src/reStructure/TemplateData/flowSchema/createRecordByStatusType/wbs/functionYaml/template.ejs +5 -5
  57. package/src/reStructure/TemplateData/flowSchema/createRecordByStatusType/wbs/handler/template.ejs +8 -9
  58. package/src/reStructure/TemplateData/flowSchema/createRecordByStatusType/wbs/mainFunction/template.ejs +116 -26
  59. package/src/reStructure/TemplateData/flowSchema/dynamoDb/data.js +83 -44
  60. package/src/reStructure/TemplateData/flowSchema/externalTopic/sns-in-sqs/data.js +4 -5
  61. package/src/reStructure/TemplateData/flowSchema/externalTopic/sns-in-sqs/template.ejs +1 -7
  62. package/src/reStructure/TemplateData/flowSchema/externalTopic/sns-out/data.js +6 -4
  63. package/src/reStructure/TemplateData/flowSchema/externalTopic/sns-out/template.ejs +2 -4
  64. package/src/reStructure/TemplateData/flowSchema/externalTopic/sqs/functionYaml/data.js +31 -3
  65. package/src/reStructure/TemplateData/flowSchema/externalTopic/sqs/functionYaml/template.ejs +4 -4
  66. package/src/reStructure/TemplateData/flowSchema/externalTopic/sqs/handler/data.js +7 -8
  67. package/src/reStructure/TemplateData/flowSchema/externalTopic/sqs/handler/template.ejs +13 -13
  68. package/src/reStructure/TemplateData/flowSchema/externalTopic/sqs/mainFunction/data.js +4 -4
  69. package/src/reStructure/TemplateData/flowSchema/externalTopic/sqs/mainFunction/template.ejs +43 -39
  70. package/src/reStructure/TemplateData/flowSchema/externalTopic/websocket/functionYaml/data.js +5 -7
  71. package/src/reStructure/TemplateData/flowSchema/externalTopic/websocket/functionYaml/template.ejs +2 -2
  72. package/src/reStructure/TemplateData/flowSchema/externalTopic/websocket/handler/data.js +2 -9
  73. package/src/reStructure/TemplateData/flowSchema/externalTopic/websocket/handler/template.ejs +46 -48
  74. package/src/reStructure/TemplateData/flowSchema/externalTopic/websocket/mainFunction/data.js +5 -4
  75. package/src/reStructure/TemplateData/flowSchema/externalTopic/websocket/mainFunction/template.ejs +3 -11
  76. package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/EndpointComplete/functionYaml/data.js +17 -3
  77. package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/EndpointComplete/functionYaml/template.ejs +2 -2
  78. package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/EndpointComplete/mainFunction/data.js +6 -2
  79. package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/EndpointComplete/mainFunction/template.ejs +49 -84
  80. package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/EndpointComponent/functionYaml/data.js +60 -10
  81. package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/EndpointComponent/functionYaml/template.ejs +1 -1
  82. package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/EndpointComponent/handler/data.js +7 -3
  83. package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/EndpointComponent/handler/template.ejs +1 -1
  84. package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/EndpointComponent/mainFunction/data.js +22 -7
  85. package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/EndpointComponent/mainFunction/template.ejs +27 -34
  86. package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/FlowSchemaCompleteComponent/functionYaml/data.js +21 -5
  87. package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/FlowSchemaCompleteComponent/functionYaml/template.ejs +1 -3
  88. package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/FlowSchemaCompleteComponent/handler/data.js +2 -2
  89. package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/FlowSchemaCompleteComponent/handler/template.ejs +5 -5
  90. package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/FlowSchemaCompleteComponent/mainFunction/data.js +5 -3
  91. package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/FlowSchemaCompleteComponent/mainFunction/template.ejs +10 -6
  92. package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/FlowSchemaComponent/functionYaml/data.js +6 -3
  93. package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/FlowSchemaComponent/functionYaml/template.ejs +0 -2
  94. package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/FlowSchemaComponent/handler/data.js +2 -2
  95. package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/FlowSchemaComponent/handler/template.ejs +4 -4
  96. package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/FlowSchemaComponent/mainFunction/data.js +8 -3
  97. package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/FlowSchemaComponent/mainFunction/template.ejs +21 -14
  98. package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/sns-in/data.js +23 -8
  99. package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/sns-out/data.js +11 -6
  100. package/src/reStructure/TemplateData/flowSchema/generateTemplateData.js +50 -45
  101. package/src/reStructure/TemplateData/generateRole/createSharedResource.js +3 -2
  102. package/src/reStructure/TemplateData/generateRole/sharedResourceTemplate.ejs +2 -28
  103. package/src/reStructure/TemplateData/perActionComplete/create/mainFunction/createObjectComplete_main.js +1 -1
  104. package/src/reStructure/TemplateData/perActionComplete/create/mainFunction/template.ejs +10 -9
  105. package/src/reStructure/TemplateData/perActionComplete/delete/mainFunction/template.ejs +6 -2
  106. package/src/reStructure/TemplateData/perActionComplete/get/mainFunction/template.ejs +3 -2
  107. package/src/reStructure/TemplateData/perActionComplete/update/mainFunction/template.ejs +3 -2
  108. package/src/reStructure/TemplateData/perActionEndpoint/libs/template.ejs +1 -1
  109. package/src/reStructure/TemplateData/perActionEndpoint/mainFunction/create/template.ejs +1 -1
  110. package/src/reStructure/TemplateData/perActionEndpoint/mainFunction/delete/template.ejs +1 -1
  111. package/src/reStructure/TemplateData/perActionEndpoint/mainFunction/update/template.ejs +1 -1
  112. package/src/reStructure/TemplateData/processLogical/mainFunction/template.ejs +1 -0
  113. package/src/reStructure/TemplateData/{propertyNodeSchema → propertyValueSchema}/generateTemplateData.js +4 -4
  114. package/src/reStructure/TemplateData/propertyValueSchema/objectPropertyValueSchema/data.js +131 -0
  115. package/src/reStructure/TemplateData/{propertyNodeSchema/relationshipPropertyNodeSchema → propertyValueSchema/relationshipPropertyValueSchema}/data.js +32 -55
  116. package/src/reStructure/TemplateData/propertyValueSchema/relationshipPropertyValueSchema/tempRelationship.ejs +13 -0
  117. package/src/reStructure/TemplateData/propertyValueSchema/relationshipPropertyValueSchema/templateRelationshipPropertyValueSchema.ejs +7 -0
  118. package/src/reStructure/TemplateData/relationshipPerAction/create/action/mainFunction/template.ejs +3 -2
  119. package/src/reStructure/TemplateData/relationshipPerAction/create/complete/mainFunction/template.ejs +3 -2
  120. package/src/reStructure/TemplateData/relationshipPerAction/delete/action/mainFunction/template.ejs +3 -2
  121. package/src/reStructure/TemplateData/relationshipPerAction/delete/complete/handler/sqs/template.ejs +5 -5
  122. package/src/reStructure/TemplateData/relationshipPerAction/delete/complete/mainFunction/template.ejs +6 -5
  123. package/src/reStructure/TemplateData/relationshipPerAction/get/action/mainFunction/template.ejs +3 -3
  124. package/src/reStructure/TemplateData/relationshipPerAction/get/complete/handler/sqs/template.ejs +4 -4
  125. package/src/reStructure/TemplateData/relationshipPerAction/get/complete/mainFunction/template.ejs +5 -4
  126. package/src/reStructure/TemplateData/relationshipPerAction/update/action/mainFunction/template.ejs +3 -2
  127. package/src/reStructure/TemplateData/relationshipPerAction/update/complete/mainFunction/template.ejs +3 -2
  128. package/src/reStructure/TemplateData/resourceYaml/dynamodb/template.ejs +1 -3
  129. package/src/reStructure/TemplateData/resourceYaml/filterGenerateResource/data.js +61 -0
  130. package/src/reStructure/TemplateData/resourceYaml/generateTemplateData.js +13 -4
  131. package/src/reStructure/TemplateData/propertyNodeSchema/objectPropertyNodeSchema/data.js +0 -151
  132. package/src/reStructure/TemplateData/propertyNodeSchema/relationshipPropertyNodeSchema/templateRelationshipPropertyNodeSchema.ejs +0 -7
  133. package/src/reStructure/TemplateData/testTemplate/data.js +0 -27
  134. package/src/reStructure/TemplateData/testTemplate/template.ejs +0 -0
  135. /package/src/{reStructure/TemplateData → TemplateManager/src}/attributeTreeSchema/mainAttributeTree/attributeLinkTemplate.ejs +0 -0
  136. /package/src/{reStructure/TemplateData → TemplateManager/src}/attributeTreeSchema/mainAttributeTree/data.js +0 -0
  137. /package/src/{reStructure/TemplateData → TemplateManager/src}/attributeTreeSchema/mainAttributeTree/request.json +0 -0
  138. /package/src/{reStructure/TemplateData → TemplateManager/src}/attributeTreeSchema/relationshipSchema/template.ejs +0 -0
  139. /package/src/reStructure/TemplateData/{propertyNodeSchema/objectPropertyNodeSchema/templateObjectPropertyNodeSchema.ejs → propertyValueSchema/objectPropertyValueSchema/templateObjectPropertyValueSchema.ejs} +0 -0
@@ -18,8 +18,8 @@ along with this program. If not, see
18
18
 
19
19
  'use strict';
20
20
 
21
- const hash = require("object-hash");
22
- const getObjectSchema = require('@izara_project/izara-core-library-service-schemas/src/GetObjectSchema');
21
+ const hash = require('@izara_project/izara-shared-core').objectHash;
22
+ const { getObjectSchema } = require('@izara_project/izara-core-library-service-schemas');
23
23
 
24
24
  const dynamodbSharedLib = require('@izara_project/izara-core-library-dynamodb');
25
25
  const snsSharedLib = require('@izara_project/izara-core-library-sns');
@@ -29,15 +29,16 @@ const lambdaSharedLib = require('@izara_project/izara-core-library-lambda');
29
29
 
30
30
  const externalRequest = require('@izara_project/izara-core-library-external-request');
31
31
  const sns = externalRequest.sns
32
- const { postToConnection } = require("../../../../libs/source/GenerateCodeLibs");
32
+ const { postToConnection } = require("../../../libs/source/GenerateCodeLibs");
33
+
33
34
  const utils = require('@izara_project/izara-market-library-service-schemas/src/MainLibs/src/Utils')
34
- const NoRetryError = require('@izara_project/izara-core-library-core').NoRetryError
35
+ const { NoRetryError } = require('@izara_project/izara-core-library-core')
35
36
  const { v4: uuidv4 } = require('uuid')
36
37
  const coreConsts = require("@izara_project/izara-core-library-core/src/Consts");
37
- const { TOPIC_NAME_GENERATE_CODE } = require('@izara_project/izara-market-library-service-schemas/src/GenerateCodeLibs/src/Consts')
38
+ // const { TOPIC_NAME_GENERATE_CODE } = require('@izara_project/izara-market-library-service-schemas/src/GenerateCodeLibs/src/Consts')
39
+ const { generateCodeLibs: { consts: TOPIC_NAME_GENERATE_CODE } } = require('@izara_project/izara-market-library-service-schemas')
40
+
38
41
  /**
39
- *
40
- *
41
42
  * description of function.
42
43
  * @param {Object} _izContext
43
44
  * @param {CorrelationIds} _izContext.correlationIds - property of _izContext
@@ -46,51 +47,85 @@ const { TOPIC_NAME_GENERATE_CODE } = require('@izara_project/izara-market-librar
46
47
  * @param {Object} requestParams.identifiers - identifiers for get data
47
48
  * @param {Object} requestParams.additionalRequest - additionalRequest
48
49
  *
49
- *
50
50
  * @returns {object} description of return value
51
51
  */
52
-
53
- module.exports.createRecordComplete = async (
52
+ module.exports.<%- functionMain%> = async (
54
53
  _izContext,
55
54
  requestParams,
56
55
  callingFlowConfig = {},
57
56
  //(<additionalParams>)
58
57
  //(</additionalParams>)
59
58
  ) => {
60
-
61
59
  try {
62
- _izContext.logger.debug("createRecordComplete _izContext", _izContext)
63
- _izContext.logger.debug("createRecordComplete requestParams", requestParams)
64
- _izContext.logger.debug("createRecordComplete callingFlowConfig", callingFlowConfig)
60
+ _izContext.logger.debug("WebSocketInvoke _izContext", _izContext)
61
+ _izContext.logger.debug("WebSocketInvoke requestParams", requestParams)
62
+ _izContext.logger.debug("WebSocketInvoke callingFlowConfig", callingFlowConfig)
65
63
 
66
- //(<endpointCompleteHookMainFunction>)
67
- //(</endpointCompleteHookMainFunction>)
64
+ const connectionId = requestContext.connectionId;
65
+ let correlationId = _izContext.correlationIds.get(consts.X_CORRELATION_ID);
68
66
 
69
- await dynamodbSharedLib.updateItem(_izContext,
70
- await dynamodbSharedLib.tableName(_izContext, "WebSocketTask"),
71
- {
72
- taskKey: _izContext.correlationIds.get(coreConsts.X_CORRELATION_ID),
73
- connectionId: _izContext.correlationIds.get(coreConsts.CONNECTION_ID)
74
- },
67
+ const getRegisterRecords = await dynamodbSharedLib.getItem(
68
+ _izContext,
69
+ await dynamodbSharedLib.tableName(_izContext, "RegisterRecords"),
75
70
  {
76
- identifiersTask: requestParams.objInstaceFull.identifiers
71
+ taskKey: correlationId,
72
+ connectionId: connectionId,
77
73
  }
78
- )
74
+ );
75
+ _izContext.logger.debug("getRegisterRecords", getRegisterRecords)
76
+ if (!getRegisterRecords) {
77
+ throw new NoRetryError(`connectionId not found ${connectionId}`)
78
+ }
79
79
 
80
- let messageObject = {
81
- //(<messageObjectHook>)
82
- //(</messageObjectHook>)
80
+ const flowType = getRegisterRecords.flowType;
81
+ const flowTag = flowType.split('_')[0];
82
+ const getFlowSchema = await getObjectSchema.getFlowSchemaS3WithCache(_izContext, {
83
+ flowTag: flowTag,
84
+ serviceTag: process.env.iz_serviceTag
85
+ })
86
+ _izContext.logger.debug("getFlowSchema", getFlowSchema)
87
+ if (!getFlowSchema) {
88
+ throw new NoRetryError(`flowTag not found ${flowTag}`)
83
89
  }
84
90
 
85
- let sendMessageToOutFlowSchema = {
86
- Message: JSON.stringify(messageObject),
87
- TopicArn: await snsSharedLib.snsTopicArnByFlowSchema(_izContext, "<%- topicArn %>", <% if (serviceTag) { %> "<%- serviceTag %>" <% } %> %>)
88
- };
89
- _izContext.logger.debug("before sendMessageToOutFlowSchema::", sendMessageToOutFlowSchema);
90
- await sns.publishAsync(_izContext, sendMessageToOutFlowSchema)
91
+ switch (flowSchema.statusType) {
92
+ case "statusField":
93
+ let payload = {
94
+ identifiers: requestParams.identifiers,
95
+ objectType: flowSchema.objType.objectType
96
+ }
97
+ let result = await externalRequest.lambda.invokeSync(
98
+ _izContext,
99
+ await lambdaSharedLib.lambdaFunctionName(_izContext, "GetHdrInv", flowSchema.objType.serviceTag),
100
+ payload
101
+ )
102
+ if (!result) {
103
+ throw new NoRetryError(`statusField not found ${requestParams.identifiers}`)
104
+ }
105
+ return result
106
+ case "storedCache":
107
+ // if statusType=storedCache then query storedCache > post message to client -> remove connectionId if status = error || complete
108
+ const getStoredCache = await dynamodbSharedLib.getItem(
109
+ _izContext,
110
+ await dynamodbSharedLib.tableName(_izContext, flowSchema.flowTag + "Main"),
111
+ {
112
+ taskKey: requestParams.identifiers,
113
+ connectionId: requestParams.connectionId
114
+ }
115
+ )
116
+ if (!getStoredCache) {
117
+ throw new NoRetryError(`storedCache not found ${requestParams.identifiers}`)
118
+ }
119
+ return getStoredCache
120
+ case "none":
121
+ // if statusType=none -> post message to client ---- not remove connectionId when post message, can remove connectionId when cannot use connectionId only(user disconnect)
122
+ break
123
+ default:
124
+ throw new NoRetryError(`statusType not found ${flowSchema.statusType}`)
125
+ }
91
126
 
92
127
  } catch (err) {
93
- _izContext.logger.error('error FlowSchemaOwnTopicEndpointComplete: ', err)
128
+ _izContext.logger.error('error WebSocketInvoke: ', err)
94
129
  throw (err)
95
130
  }
96
131
  }
@@ -21,7 +21,7 @@ const dynamodbSharedLib = require('@izara_project/izara-core-library-dynamodb')
21
21
  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
- const { getNestObject } = require('../../libs/source/GenerateCodeLibs')
24
+ const { getNestObject } = require('../../../../libs/source/GenerateCodeLibs');
25
25
  /**
26
26
  * description of function.
27
27
  * @param {Object} _izContext
@@ -38,12 +38,13 @@ function data(_izContext, flowSchema, srcPath) {
38
38
  function createParamsForCreateSource(_izContext, flowSchema, srcPath) {
39
39
  let functionName = upperCase(FUNCTION_NAME.createObjectS3)
40
40
  let handlerType = "HdrWbs"
41
-
41
+ let route = flowSchema.flowTag
42
42
  return {
43
43
  templatePath: templatePath,
44
44
  templateData: {
45
45
  functionName,
46
- handlerType
46
+ handlerType,
47
+ route
47
48
  },
48
49
  setting: {
49
50
  savePath: path.join(srcPath, SOURCE_PATH.webSocket, flowSchema.flowTag, "source/"),
@@ -23,10 +23,10 @@ const middleware = izara.middlewareHandler;
23
23
  // const api = new AWS.ApiGatewayManagementApi({ endpoint: process.env.iz_webSocketEndpoint });
24
24
  const dynamodbSharedLib = require('@izara_project/izara-core-library-dynamodb')
25
25
  const callingFlowSharedLib = require('@izara_project/izara-core-library-calling-flow')
26
- const hash = require('object-hash')
26
+ const hash = require('@izara_project/izara-shared-core').objectHash;
27
27
  // const coreConsts = require("@izara_project/izara-core-library-core/src/Consts");
28
28
  const consts = require('@izara_project/izara-middleware/src/MiddlewareCore/Consts')
29
- const { postToConnection } = require("../../libs/source/GenerateCodeLibs");
29
+ const { postToConnection } = require('../../../../libs/source/GenerateCodeLibs');
30
30
  const createObject = require('./CreateObjectS3_Main');
31
31
  module.exports.main = middleware.wrap(async (event, context, callback) => {
32
32
 
@@ -40,16 +40,7 @@ module.exports.main = middleware.wrap(async (event, context, callback) => {
40
40
  let correlationId = event._izContext.correlationIds.get(consts.X_CORRELATION_ID)
41
41
 
42
42
  switch (route) {
43
- case "$connect":
44
- console.log("webSocket Connect");
45
- break
46
- case "$disconnect":
47
- console.log("webSocket Disconnect");
48
- break
49
- case '$default':
50
- console.log('Received unknown route:', route);
51
- break
52
- case 'uploadS3':
43
+ case '<%- route %>':
53
44
  console.log("event in route webSocket", event);
54
45
  let eventParams = JSON.parse(event.body)
55
46
 
@@ -18,7 +18,7 @@ along with this program. If not, see
18
18
 
19
19
  'use strict';
20
20
 
21
- const hash = require("object-hash");
21
+ const hash = require('@izara_project/izara-shared-core').objectHash;
22
22
  const getObjectSchema = require('@izara_project/izara-core-library-service-schemas/src/GetObjectSchema');
23
23
 
24
24
  const dynamodbSharedLib = require('@izara_project/izara-core-library-dynamodb');
@@ -120,7 +120,7 @@ module.exports.createObject = async (
120
120
  // send message to ImportBatchCreateHdrSqs
121
121
  let sendMessageToCreateEndpoint = {
122
122
  Message: JSON.stringify(messageObject),
123
- TopicArn: await snsSharedLib.snsTopicArn(_izContext, `In${utils.firstLetterUpperCase(objectSchema.objectType)}Create`)
123
+ TopicArn: await snsSharedLib.snsTopicArnByFlowSchema(_izContext, Create_In)
124
124
  }
125
125
  _izContext.logger.debug("sendMessageToCreateEndpoint", sendMessageToCreateEndpoint);
126
126
  await sns.publishAsync(_izContext, sendMessageToCreateEndpoint);
@@ -21,10 +21,26 @@ const snsSharedLib = require('@izara_project/izara-core-library-sns');
21
21
  const asyncFlowSharedLib = require('@izara_project/izara-core-library-asynchronous-flow');
22
22
  let coreConsts = require('@izara_project/izara-middleware/src/MiddlewareCore/Consts')
23
23
 
24
- const { postToConnection } = require('../../libs/source/GenerateCodeLibs')
24
+ const { postToConnection } = require('../../../../libs/source/GenerateCodeLibs')
25
25
  module.exports.webSocketTaskComplete = async (
26
26
  _izContext,
27
- objType,
27
+ objType,{
28
+ flowTag: "TranslateIds2",
29
+ handleObj: "one", // "one" | "multi",
30
+ statusType: "statusField", // "statusField" | "storedCache" | "none",
31
+ event: ["s3"], // "ownTopic" | "extTopic" | "s3" | "eventBridge"
32
+ outputTopic: true,
33
+ objType: {
34
+ objectType: "TranslateIds",
35
+ serviceTag: "TranslateIds"
36
+ },
37
+ // storedCacheTable: {
38
+ // tableName: "",
39
+ // partitionKey: "",
40
+ // sortKey: ""
41
+ // },
42
+ // flowSteps: {}
43
+ },
28
44
  updateItem
29
45
  ) => {
30
46
  try {
@@ -32,8 +32,8 @@ const client = new S3Client({ region: 'us-east-2' });
32
32
  const { createPresignedPost } = require('@aws-sdk/s3-presigned-post');
33
33
  const consts = require('@izara_project/izara-middleware/src/MiddlewareCore/Consts')
34
34
 
35
- const { postToConnection,getNestObject } = require("../../libs/source/GenerateCodeLibs");
36
- const hash = require('object-hash');
35
+ const { postToConnection,getNestObject } = require('../../../../libs/source/GenerateCodeLibs')
36
+ const hash = require('@izara_project/izara-shared-core').objectHash;
37
37
  const utils = require('@izara_project/izara-market-library-service-schemas/src/MainLibs/src/Utils');
38
38
  const coreConsts = require('@izara_project/izara-core-library-core/src/Consts');
39
39
  const { EXTERNAL_SERVICE_NAME } = require('@izara_project/izara-market-library-service-schemas/src/GenerateCodeLibs/src/Consts');
@@ -77,11 +77,12 @@ module.exports.createPresignUrl = async (
77
77
 
78
78
  // getImportBatchMain from table
79
79
  let importBatchMain = await lambda.invokeSync(_izContext,
80
- await lambdaSharedLib.lambdaFunctionName(_izContext, "ImportBatchMainGetHdrInv"),
80
+ await lambdaSharedLib.lambdaFunctionName(_izContext, "GetHdrInv"),
81
81
  {
82
82
  identifiers: {
83
83
  importBatchId: servicePendingId
84
- }
84
+ },
85
+ objectType: objType.objectType
85
86
  }
86
87
  )
87
88
  _izContext.logger.debug("importBatchMain", importBatchMain);
@@ -134,12 +135,13 @@ module.exports.createPresignUrl = async (
134
135
  importBatchStatus: "error",
135
136
  errorsFound: errorsFound
136
137
  }
137
- }
138
+ },
139
+ objType: objType.objectType
138
140
  }
139
141
 
140
142
  let sendMessageToUpdateImportBatch = {
141
143
  Message: JSON.stringify(updateImportBatchMainMsg),
142
- TopicArn: await snsSharedLib.snsTopicArn(_izContext, `InImportBatchMainUpdate`)
144
+ TopicArn: await snsSharedLib.snsTopicArn(_izContext, `Update_In`)
143
145
  }
144
146
  _izContext.logger.debug("sendMessageToUpdateImportBatch", sendMessageToUpdateImportBatch);
145
147
 
@@ -212,7 +214,8 @@ module.exports.createPresignUrl = async (
212
214
  importBatchStatus: "waitingToUpload",
213
215
  expiryTimestamp: (startTime + (createPresignUrlParam.expires * 1000))
214
216
  }
215
- }
217
+ },
218
+ objectType: objType,objectType
216
219
  }
217
220
 
218
221
  updateImportBatchMainMsg = callingFlowSharedLib.addCallingFlowToSnsRequestMessageObject(
@@ -26,8 +26,8 @@ const sns = externalRequest.sns;
26
26
  const lambda = externalRequest.lambda
27
27
  const consts = require('@izara_project/izara-market-library-service-schemas/src/GenerateCodeLibs/src/Consts')
28
28
  const coreConsts = require('@izara_project/izara-middleware/src/MiddlewareCore/Consts')
29
- const hash = require('object-hash');
30
- const importDataLibs = require('../../libs/source/GenerateCodeLibs')
29
+ const hash = require('@izara_project/izara-shared-core').objectHash;
30
+ const importDataLibs = require('../../../../libs/source/GenerateCodeLibs');
31
31
  /**
32
32
  * description of function.
33
33
  * @param {Object} _izContext
@@ -49,7 +49,7 @@ function data(_izContext, srcPath) {
49
49
  WebSocketSqsQueueNames.push(
50
50
  {
51
51
  queueName: upperCase(FUNCTION_NAME.reservedLimit),
52
- subscription: "Out" + upperCase(FUNCTION_NAME.createObjectComplete)
52
+ queueNameSubscription: "Out" + upperCase(FUNCTION_NAME.createObjectComplete)
53
53
  }
54
54
  )
55
55
 
@@ -31,9 +31,9 @@ const utils = require('@izara_project/izara-market-library-service-schemas/src/M
31
31
  const { S3Client, GetObjectCommand, DeleteObjectCommand, PutObjectCommand, CopyObjectCommand } = require('@aws-sdk/client-s3');
32
32
  const s3 = new S3Client({ region: 'us-east-2' });
33
33
 
34
- const hash = require('object-hash');
34
+ const hash = require('@izara_project/izara-shared-core').objectHash;
35
35
  const Readable = require('stream');
36
- const { isValidCsv, getNestObject } = require('../../libs/source/GenerateCodeLibs')
36
+ const { isValidCsv, getNestObject } = require('../../../../libs/source/GenerateCodeLibs');
37
37
  const consts = require('@izara_project/izara-market-library-service-schemas/src/GenerateCodeLibs/src/Consts')
38
38
  const coreConsts = require('@izara_project/izara-core-library-core/src/Consts');
39
39
 
@@ -22,14 +22,22 @@ const { SOURCE_PATH, SAVE_FILE_NAME } = require('../../../../../../../MainLibs/s
22
22
 
23
23
  const templatePath = path.join(__dirname, "./template.ejs")
24
24
 
25
- function data(_izContext, srcPath) {
26
- return [createSourceParams(_izContext, srcPath)]
25
+ function data(_izContext, flowSchema, srcPath) {
26
+ return [createSourceParams(_izContext,flowSchema, srcPath)]
27
27
  };
28
28
 
29
- function createSourceParams(_izContext, srcPath) {
29
+ function createSourceParams(_izContext, flowSchema, srcPath) {
30
+ let uploadS3 = false;
31
+ for (const event of flowSchema.event) {
32
+ if (event.includes("s3")) {
33
+ uploadS3 = true
34
+ }
35
+ }
30
36
  return {
31
37
  templatePath: templatePath,
32
- templateData: {},
38
+ templateData: {
39
+ uploadS3
40
+ },
33
41
  setting: {
34
42
  saveFileName: "GenerateCodeLibs",
35
43
  savePath: path.join(srcPath, SOURCE_PATH.generateCodeLib),
@@ -21,14 +21,15 @@ const externalRequest = require('@izara_project/izara-core-library-external-requ
21
21
  const lambda = externalRequest.lambda;
22
22
 
23
23
  const { ApiGatewayManagementApiClient, PostToConnectionCommand } = require("@aws-sdk/client-apigatewaymanagementapi");
24
- const { inMemoryCacheLib } = require('@izara_project/izara-shared');
25
- const hash = require("object-hash")
26
- const csv = require('csv-parser');
27
- const streamifier = require('streamifier');
28
- const NoRetryError = require('@izara_project/izara-core-library-core').NoRetryError;
24
+ const hash = require('@izara_project/izara-shared-core').objectHash;
25
+ <% if (uploadS3) { %>
26
+ const csv = require('csv-parser');
27
+ const streamifier = require('streamifier');
28
+ <% } %>
29
+ const { NoRetryError,inMemoryCacheLib } = require('@izara_project/izara-core-library-core');
29
30
 
30
31
  const client = new ApiGatewayManagementApiClient({
31
- endpoint: `https://${process.env.iz_webSocketEndpoint}`
32
+ endpoint: `${process.env.iz_webSocketEndpoint}`
32
33
  })
33
34
 
34
35
  async function postToConnection(message, connectionId) {
@@ -60,7 +61,7 @@ async function getDataFromInvokeFunction(_izContext, functionName, payload) {
60
61
  return await lambda.invokeSync(_izContext, functionName, payload)
61
62
  }
62
63
 
63
- const getDataFromInvokeFunctionWithCache = inMemoryCacheLib.inMemoryCacheLib(
64
+ const getDataFromInvokeFunctionWithCache = inMemoryCacheLib(
64
65
  getDataFromInvokeFunction,
65
66
  {
66
67
  max: 100,
@@ -73,6 +74,7 @@ const getDataFromInvokeFunctionWithCache = inMemoryCacheLib.inMemoryCacheLib(
73
74
  }
74
75
  )
75
76
 
77
+ <% if (uploadS3) { %>
76
78
  /**
77
79
  *
78
80
  * @param {Object} _izContext
@@ -108,6 +110,7 @@ async function isValidCsv(_izContext, data) {
108
110
 
109
111
  return [validCsv, errorCheckCsv]
110
112
  }
113
+ <% } %>
111
114
 
112
115
  /**
113
116
  *
@@ -132,6 +135,8 @@ module.exports = {
132
135
  postToConnection,
133
136
  getDataFromInvokeFunction,
134
137
  getDataFromInvokeFunctionWithCache,
135
- isValidCsv,
136
- getNestObject
138
+ getNestObject,
139
+ <% if (uploadS3) { %>
140
+ isValidCsv,
141
+ <% } %>
137
142
  }
@@ -21,7 +21,7 @@ const izaraShared = require('@izara_project/izara-shared');
21
21
  const dynamodbSharedLib = izaraShared.dynamodbSharedLib;
22
22
  const izara = require("@izara_project/izara-middleware");
23
23
  const middleware = izara.middlewareHandler;
24
- const hash = require('object-hash')
24
+ const hash = require('@izara_project/izara-shared-core').objectHash;
25
25
  module.exports.main = middleware.wrap(async (event, context, callback) => {
26
26
 
27
27
  event._izContext.logger.debug('Event:', event);
@@ -34,7 +34,8 @@ const {
34
34
  FUNCTION_NAME,
35
35
  shortNameHandler,
36
36
  externalResourceYaml,
37
- SOURCE_GENERATE_IAM_ROLE
37
+ SOURCE_GENERATE_IAM_ROLE,
38
+ SQS_RESOURCE
38
39
  } = require("../../../../../../MainLibs/src/Consts");
39
40
 
40
41
  const templatePath = path.join(__dirname, "template.ejs");
@@ -48,20 +49,22 @@ const hookTemplate = path.join(__dirname, "./hookTemplate.ejs");
48
49
  */
49
50
  function data(_izContext, srcPath) {
50
51
  const handlerType = upperCase("hdrSqs");
51
- const functionName = FUNCTION_NAME.flowSchemaRegister;
52
+ const functionName = upperCase(FUNCTION_NAME.flowSchemaRegister);
52
53
  let functionNameConfig = upperCase(functionName) + upperCase(shortNameHandler(handlerType));
53
54
  let additionalResourcePermission = defaultIamRolePerAction();
54
55
  additionalResourcePermission.push(
55
- // createIamRole(
56
- // {
57
- // [RESOURCE_CLASSES.sns]: [
58
- // SNS_RESOURCE.publish
59
- // ]
60
- // },
61
- // [
62
- // resourceNames(RESOURCE_CLASSES.sns, "InImportBatchMainCreate")
63
- // ]
64
- // ),
56
+ createIamRole(
57
+ {
58
+ [RESOURCE_CLASSES.sqs]: [
59
+ SQS_RESOURCE.getQueueAttributes,
60
+ SQS_RESOURCE.receiveMessage,
61
+ SQS_RESOURCE.deleteMessage,
62
+ ]
63
+ },
64
+ [
65
+ resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName))
66
+ ]
67
+ ),
65
68
  createIamRole(
66
69
  {
67
70
  [RESOURCE_CLASSES.dynamoDbTable]: [
@@ -88,38 +91,11 @@ function data(_izContext, srcPath) {
88
91
  )
89
92
  )
90
93
 
91
- // if (flowSchema?.hook) {
92
- // for (const [hookName, hookProperties] of Object.entries(flowSchema.hook)) {
93
- // if (hookName === FLOW_SCHEMA_HOOK_STATE.beforeCreate) {
94
- // for (const hookFunction of hookProperties.functionList) {
95
- // if ((hookFunction.event.hasOwnProperty("initialEvent") && (hookFunction.event.initialEvent === true))) {
96
- // if (hookFunction?.permission) {
97
- // for (const permission of hookFunction.permission) {
98
- // additionalResourcePermission.push(
99
- // createIamRole(
100
- // permission.action,
101
- // permission.resource.map(resource =>
102
- // externalResourceYaml(
103
- // resource.resource,
104
- // resource.resourceName,
105
- // resource.serviceTag),
106
- // permission.effect
107
- // )
108
- // )
109
- // )
110
- // }
111
- // }
112
- // }
113
- // }
114
- // }
115
- // }
116
- // }
117
-
118
94
  // console.log("additionalResourcePermission in createObjectS3", JSON.stringify(additionalResourcePermission))
119
95
  return [{
120
96
  templatePath: templatePath,
121
97
  templateData: {
122
- resourceLocation: SOURCE_PATH.resourceLocationFlowSchemaRegister,
98
+ resourceLocation: path.join(SOURCE_PATH.resourceLocationFlowSchemaRegister, "source/"),
123
99
  additionalResourcePermission,
124
100
  functionName,
125
101
  handlerType,
@@ -1,17 +1,17 @@
1
1
  <%_ const join = require('path').join; _%>
2
2
  <%- firstLetterUpperCase(functionNameConfig) %>:
3
- handler: <%- join(resourceLocation, `${firstLetterUpperCase(functionName)}_${firstLetterUpperCase(handlerType)}.main`)%>
4
- name: ${self:custom.iz_resourcePrefix}<%- firstLetterUpperCase(functionName) %><%- firstLetterUpperCase(handlerType) %>
3
+ handler: <%- join(resourceLocation, `${firstLetterUpperCase(functionName)}Complete_${firstLetterUpperCase(handlerType)}.main`)%>
4
+ name: ${self:custom.iz_resourcePrefix}<%- firstLetterUpperCase(functionName) %>Complete<%- firstLetterUpperCase(handlerType) %>
5
5
  events:
6
6
  - sqs:
7
- arn: arn:aws:sqs:${self:custom.iz_region}:${self:custom.iz_accountId}:${self:custom.iz_resourcePrefix}<%- functionName %>
8
- batchSize: 10
9
- filterPatterns: #**** need to update serverless framwork upper v.2.69.1
10
- - body: {"MessageAttributes":{"callingFlow":{"Value":["${self:custom.iz_resourcePrefix}<%- functionName %>"]}}} # functionName of callingFlow
11
- - body: {"MessageAttributes":{"callingFlow":{"Value":[{"exists":false}]}}}
7
+ arn: arn:aws:sqs:${self:custom.iz_region}:${self:custom.iz_accountId}:${self:custom.iz_resourcePrefix}<%- firstLetterUpperCase(functionName) %>
8
+ batchSize: 10
9
+ filterPatterns: #**** need to update serverless framwork upper v.2.69.1
10
+ - body: {"MessageAttributes":{"callingFlow":{"Value":["${self:custom.iz_resourcePrefix}<%- functionName %>"]}}} # functionName of callingFlow
11
+ - body: {"MessageAttributes":{"callingFlow":{"Value":[{"exists":false}]}}}
12
12
  role: <%- roleName %>Role
13
- #<#<%- functionName %><%- handlerType %>IamRole#>
14
- #<#/<%- functionName %><%- handlerType %>IamRole#>
13
+ #<#<%- functionName %><%- handlerType %>IamRole#>
14
+ #<#/<%- functionName %><%- handlerType %>IamRole#>
15
15
  <%_ function firstLetterUpperCase(text){
16
16
  return text.charAt(0).toUpperCase() + text.slice(1)
17
17
  } _%>
@@ -32,7 +32,7 @@ const templatePath = path.join(__dirname, "template.ejs")
32
32
  * @return {{templatePath, templateData,setting}}
33
33
  */
34
34
  function data(_izContext, srcPath) {
35
- let queueName = FUNCTION_NAME.flowSchemaRegister + upperCase(HANDLER.hdrSqs);
35
+ let queueName = FUNCTION_NAME.flowSchemaRegister;
36
36
  let functionName = FUNCTION_NAME.flowSchemaRegister + 'Complete'
37
37
  let handlerType = upperCase(HANDLER.hdrSqs);
38
38
  return [{
@@ -33,11 +33,11 @@ const getObjectSchema = require('@izara_project/izara-core-library-service-schem
33
33
  */
34
34
 
35
35
 
36
- function data(_izContext, flowSchema, srcPath) {
37
- return [createParamsForCreateSource(_izContext, flowSchema, srcPath)]
36
+ async function data(_izContext, allFlowSchemas, srcPath) {
37
+ return [await createParamsForCreateSource(_izContext, allFlowSchemas, srcPath)]
38
38
  }
39
39
 
40
- function createParamsForCreateSource(_izContext, srcPath) {
40
+ async function createParamsForCreateSource(_izContext, allFlowSchemas, srcPath) {
41
41
  const functionName = FUNCTION_NAME.flowSchemaRegister + 'Complete'
42
42
  return {
43
43
  templatePath: templatePath,