@izara_project/izara-market-library-service-schemas 1.0.37 → 1.0.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/GenerateCodeLibs/src/GenerateCodeLibs.js +35 -5
- package/src/MainLibs/src/Consts.js +5 -2
- package/src/MainLibs/src/GenerateCodeUtils.js +2 -0
- package/src/MainLibs/src/Utils.js +12 -0
- package/src/reStructure/GenerateCode.js +2 -2
- package/src/reStructure/TemplateData/EndpointPerService/mainFunction/create/template.ejs +36 -11
- package/src/reStructure/TemplateData/EndpointPerService/mainFunction/delete/template.ejs +24 -1
- package/src/reStructure/TemplateData/EndpointPerService/mainFunction/get/template.ejs +26 -0
- package/src/reStructure/TemplateData/EndpointPerService/mainFunction/update/template.ejs +22 -0
- package/src/reStructure/TemplateData/EndpointPerService/yaml/data.js +37 -7
- package/src/reStructure/TemplateData/findData/handler/template.ejs +2 -2
- package/src/reStructure/TemplateData/flowSchema/components/upload/confirmReserved/mainFunction/template.ejs +2 -0
- package/src/reStructure/TemplateData/flowSchema/components/upload/createObject/mainFunction/template.ejs +5 -1
- package/src/reStructure/TemplateData/flowSchema/components/upload/createObjectComplete/sns-sqs/data.js +1 -1
- package/src/reStructure/TemplateData/flowSchema/components/upload/preSignUrl/reservedLimit/sqs/data.js +3 -3
- package/src/reStructure/TemplateData/flowSchema/components/upload/preSignUrl/reservedLimit/sqs/template.ejs +1 -1
- package/src/reStructure/TemplateData/flowSchema/components/upload/relate/libs/template.ejs +1 -1
- package/src/reStructure/TemplateData/flowSchema/components/websocket/connect/functionYaml/data.js +1 -1
- package/src/reStructure/TemplateData/flowSchema/components/websocket/connect/handler/data.js +1 -1
- package/src/reStructure/TemplateData/flowSchema/externalTopic/functionYaml/data.js +127 -0
- package/src/reStructure/TemplateData/flowSchema/externalTopic/handler/data.js +121 -0
- package/src/reStructure/TemplateData/flowSchema/externalTopic/{sqs/handler → handler}/template.ejs +16 -61
- package/src/reStructure/TemplateData/flowSchema/externalTopic/mainFunction/data.js +74 -0
- package/src/reStructure/TemplateData/flowSchema/externalTopic/mainFunction/template.ejs +131 -0
- package/src/reStructure/TemplateData/flowSchema/externalTopic/sns-in-sqs/data.js +61 -34
- package/src/reStructure/TemplateData/flowSchema/externalTopic/sns-in-sqs/template.ejs +1 -1
- package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/EndpointComponent/functionYaml/data.js +3 -7
- package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/EndpointComponent/handler/data.js +2 -5
- package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/EndpointComponent/mainFunction/data.js +13 -4
- package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/EndpointComponent/mainFunction/template.ejs +15 -23
- package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/FlowSchemaComponent/functionYaml/data.js +2 -4
- package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/FlowSchemaComponent/mainFunction/data.js +2 -5
- package/src/reStructure/TemplateData/flowSchema/{externalTopic/sqs → flowSchemaOwnTopic/flowStep}/functionYaml/data.js +43 -38
- package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/flowStep/functionYaml/template.ejs +20 -0
- package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/flowStep/handler/data.js +80 -0
- package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/flowStep/handler/template.ejs +85 -0
- package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/flowStep/mainFunction/data.js +92 -0
- package/src/reStructure/TemplateData/flowSchema/{externalTopic/websocket → flowSchemaOwnTopic/flowStep}/mainFunction/template.ejs +11 -13
- package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/sns-in/data.js +46 -37
- package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/sns-out/data.js +14 -19
- package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/{FlowSchemaCompleteComponent → webSocketComplete}/functionYaml/data.js +5 -21
- package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/webSocketComplete/functionYaml/template.ejs +20 -0
- package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/{FlowSchemaCompleteComponent → webSocketComplete}/handler/data.js +2 -2
- package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/{FlowSchemaCompleteComponent → webSocketComplete}/mainFunction/data.js +2 -2
- package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/{FlowSchemaCompleteComponent → webSocketComplete}/mainFunction/template.ejs +24 -10
- package/src/reStructure/TemplateData/flowSchema/generateTemplateData.js +23 -25
- package/src/reStructure/TemplateData/flowSchema/{createRecordByStatusType → register}/complete/handler/template.ejs +1 -1
- package/src/reStructure/TemplateData/flowSchema/register/complete/mainFunction/template.ejs +172 -0
- package/src/reStructure/TemplateData/flowSchema/register/wbs/mainFunction/template.ejs +165 -0
- package/src/reStructure/TemplateData/flowSchema/templateBystatusType/storedCacheTemplate.ejs +38 -0
- package/src/reStructure/TemplateData/flowSchema/templateBystatusType/triggerCacheTemplate.ejs +39 -0
- package/src/reStructure/TemplateData/perActionComplete/get/mainFunction/template.ejs +3 -0
- package/src/reStructure/TemplateData/perActionComplete/update/mainFunction/template.ejs +3 -0
- package/src/reStructure/TemplateData/propertyValueSchema/relationshipPropertyValueSchema/data.js +2 -7
- package/src/reStructure/TemplateData/relationshipPerAction/create/action/functionYaml/api/data.js +22 -3
- package/src/reStructure/TemplateData/relationshipPerAction/create/action/functionYaml/dsq/data.js +14 -9
- package/src/reStructure/TemplateData/relationshipPerAction/create/action/functionYaml/inv/data.js +26 -6
- package/src/reStructure/TemplateData/relationshipPerAction/create/action/functionYaml/sqs/data.js +11 -7
- package/src/reStructure/TemplateData/relationshipPerAction/create/complete/functionYaml/data.js +17 -7
- package/src/reStructure/TemplateData/relationshipPerAction/delete/action/functionYaml/api/data.js +23 -4
- package/src/reStructure/TemplateData/relationshipPerAction/delete/action/functionYaml/dsq/data.js +14 -9
- package/src/reStructure/TemplateData/relationshipPerAction/delete/action/functionYaml/inv/data.js +26 -6
- package/src/reStructure/TemplateData/relationshipPerAction/delete/action/functionYaml/sqs/data.js +10 -7
- package/src/reStructure/TemplateData/relationshipPerAction/delete/complete/functionYaml/data.js +11 -7
- package/src/reStructure/TemplateData/relationshipPerAction/get/action/functionYaml/api/data.js +23 -4
- package/src/reStructure/TemplateData/relationshipPerAction/get/action/functionYaml/dsq/data.js +14 -9
- package/src/reStructure/TemplateData/relationshipPerAction/get/action/functionYaml/inv/data.js +26 -7
- package/src/reStructure/TemplateData/relationshipPerAction/get/action/functionYaml/sqs/data.js +10 -7
- package/src/reStructure/TemplateData/relationshipPerAction/get/complete/functionYaml/data.js +12 -7
- package/src/reStructure/TemplateData/relationshipPerAction/update/action/functionYaml/api/data.js +22 -3
- package/src/reStructure/TemplateData/relationshipPerAction/update/action/functionYaml/dsq/data.js +14 -6
- package/src/reStructure/TemplateData/relationshipPerAction/update/action/functionYaml/inv/data.js +20 -3
- package/src/reStructure/TemplateData/relationshipPerAction/update/action/functionYaml/sqs/data.js +9 -3
- package/src/reStructure/TemplateData/relationshipPerAction/update/complete/functionYaml/data.js +12 -6
- package/src/reStructure/TemplateData/resourceYaml/dynamodb/mainResourcePerObjectSchemaData.js +6 -2
- package/src/reStructure/TemplateData/flowSchema/createRecordByStatusType/complete/mainFunction/template.ejs +0 -184
- package/src/reStructure/TemplateData/flowSchema/createRecordByStatusType/storedCacheTemplate.ejs +0 -11
- package/src/reStructure/TemplateData/flowSchema/createRecordByStatusType/wbs/mainFunction/template.ejs +0 -210
- package/src/reStructure/TemplateData/flowSchema/externalTopic/sns-out/data.js +0 -77
- package/src/reStructure/TemplateData/flowSchema/externalTopic/sns-out/template.ejs +0 -8
- package/src/reStructure/TemplateData/flowSchema/externalTopic/sqs/functionYaml/template.ejs +0 -17
- package/src/reStructure/TemplateData/flowSchema/externalTopic/sqs/handler/data.js +0 -64
- package/src/reStructure/TemplateData/flowSchema/externalTopic/sqs/mainFunction/data.js +0 -61
- package/src/reStructure/TemplateData/flowSchema/externalTopic/sqs/mainFunction/template.ejs +0 -74
- package/src/reStructure/TemplateData/flowSchema/externalTopic/websocket/functionYaml/data.js +0 -110
- package/src/reStructure/TemplateData/flowSchema/externalTopic/websocket/functionYaml/template.ejs +0 -18
- package/src/reStructure/TemplateData/flowSchema/externalTopic/websocket/handler/data.js +0 -57
- package/src/reStructure/TemplateData/flowSchema/externalTopic/websocket/handler/template.ejs +0 -85
- package/src/reStructure/TemplateData/flowSchema/externalTopic/websocket/mainFunction/data.js +0 -67
- /package/src/reStructure/TemplateData/flowSchema/{flowSchemaOwnTopic/FlowSchemaCompleteComponent → externalTopic}/functionYaml/template.ejs +0 -0
- /package/src/reStructure/TemplateData/flowSchema/flowSchemaOwnTopic/{FlowSchemaCompleteComponent → webSocketComplete}/handler/template.ejs +0 -0
- /package/src/reStructure/TemplateData/flowSchema/{createRecordByStatusType → register}/complete/functionYaml/data.js +0 -0
- /package/src/reStructure/TemplateData/flowSchema/{createRecordByStatusType → register}/complete/functionYaml/template.ejs +0 -0
- /package/src/reStructure/TemplateData/flowSchema/{createRecordByStatusType → register}/complete/handler/data.js +0 -0
- /package/src/reStructure/TemplateData/flowSchema/{createRecordByStatusType → register}/complete/mainFunction/data.js +0 -0
- /package/src/reStructure/TemplateData/flowSchema/{createRecordByStatusType → register}/dynamoDB/register.js +0 -0
- /package/src/reStructure/TemplateData/flowSchema/{createRecordByStatusType → register}/sns-in/data.js +0 -0
- /package/src/reStructure/TemplateData/flowSchema/{createRecordByStatusType → register}/sns-in/template.ejs +0 -0
- /package/src/reStructure/TemplateData/flowSchema/{createRecordByStatusType → register}/subscriptionOutAll/data.js +0 -0
- /package/src/reStructure/TemplateData/flowSchema/{createRecordByStatusType → register}/subscriptionOutAll/template.ejs +0 -0
- /package/src/reStructure/TemplateData/flowSchema/{createRecordByStatusType → register}/wbs/functionYaml/data.js +0 -0
- /package/src/reStructure/TemplateData/flowSchema/{createRecordByStatusType → register}/wbs/functionYaml/template.ejs +0 -0
- /package/src/reStructure/TemplateData/flowSchema/{createRecordByStatusType → register}/wbs/handler/data.js +0 -0
- /package/src/reStructure/TemplateData/flowSchema/{createRecordByStatusType → register}/wbs/handler/template.ejs +0 -0
- /package/src/reStructure/TemplateData/flowSchema/{createRecordByStatusType → register}/wbs/mainFunction/data.js +0 -0
- /package/src/reStructure/TemplateData/flowSchema/{createRecordByStatusType → templateBystatusType}/statusFieldTemplate.ejs +0 -0
package/src/reStructure/TemplateData/relationshipPerAction/delete/action/functionYaml/sqs/data.js
CHANGED
|
@@ -66,9 +66,6 @@ function createParamForCreateSource(allObjectRelationships, srcPath) {
|
|
|
66
66
|
let additionalResourcePermission = defaultIamRolePerAction();
|
|
67
67
|
|
|
68
68
|
additionalResourcePermission.push(
|
|
69
|
-
// createIamRole(
|
|
70
|
-
// { [RESOURCE_CLASSES.lambda]: ["InvokeFunction"] },
|
|
71
|
-
// [resourceNames(RESOURCE_CLASSES.lambda, "*GetNodeHdrInv")]),
|
|
72
69
|
createIamRole(
|
|
73
70
|
{
|
|
74
71
|
[RESOURCE_CLASSES.sqs]: [
|
|
@@ -78,17 +75,23 @@ function createParamForCreateSource(allObjectRelationships, srcPath) {
|
|
|
78
75
|
SQS_RESOURCE.sendMessage,
|
|
79
76
|
SQS_RESOURCE.getQueueUrl,
|
|
80
77
|
SQS_RESOURCE.deleteMessageBatch
|
|
81
|
-
],
|
|
82
|
-
[SNS_RESOURCE.publish, SNS_RESOURCE.subscribe]
|
|
78
|
+
],
|
|
83
79
|
},
|
|
84
80
|
[
|
|
85
81
|
resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(HANDLER.hdrSqs)),
|
|
86
82
|
resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(HANDLER.hdrSqs) + "DLQ"),
|
|
83
|
+
]
|
|
84
|
+
),
|
|
85
|
+
createIamRole(
|
|
86
|
+
{
|
|
87
|
+
[RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish, SNS_RESOURCE.subscribe]
|
|
88
|
+
},
|
|
89
|
+
[
|
|
90
|
+
resourceNames(RESOURCE_CLASSES.sns, upperCase(FUNCTION_NAME.deleteRelComplete) + "_Out"),
|
|
87
91
|
resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_In"),
|
|
88
92
|
resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_Out"),
|
|
89
|
-
resourceNames(RESOURCE_CLASSES.sns, upperCase(FUNCTION_NAME.createRelComplete) + "_Out")
|
|
90
93
|
]
|
|
91
|
-
)
|
|
94
|
+
)
|
|
92
95
|
)
|
|
93
96
|
additionalResourcePermission.push(awaitingMultipleStepsRole())
|
|
94
97
|
|
package/src/reStructure/TemplateData/relationshipPerAction/delete/complete/functionYaml/data.js
CHANGED
|
@@ -71,18 +71,22 @@ function createParamForCreateSource(srcPath) {
|
|
|
71
71
|
SQS_RESOURCE.sendMessage,
|
|
72
72
|
SQS_RESOURCE.deleteMessageBatch,
|
|
73
73
|
SQS_RESOURCE.getQueueUrl,
|
|
74
|
-
]
|
|
75
|
-
[RESOURCE_CLASSES.sns]:
|
|
76
|
-
[
|
|
77
|
-
SNS_RESOURCE.publish, SNS_RESOURCE.subscribe
|
|
78
|
-
]
|
|
74
|
+
]
|
|
79
75
|
},
|
|
80
76
|
[
|
|
81
77
|
resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName)),
|
|
82
78
|
resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + "DLQ"),
|
|
83
|
-
resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_In"),
|
|
84
|
-
resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_Out")
|
|
85
79
|
],
|
|
80
|
+
),
|
|
81
|
+
createIamRole(
|
|
82
|
+
{
|
|
83
|
+
[RESOURCE_CLASSES.sns]:
|
|
84
|
+
[
|
|
85
|
+
SNS_RESOURCE.publish, SNS_RESOURCE.subscribe
|
|
86
|
+
]
|
|
87
|
+
},
|
|
88
|
+
resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_In"),
|
|
89
|
+
resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_Out")
|
|
86
90
|
))
|
|
87
91
|
additionalResourcePermission.push(awaitingMultipleStepsRole())
|
|
88
92
|
|
package/src/reStructure/TemplateData/relationshipPerAction/get/action/functionYaml/api/data.js
CHANGED
|
@@ -36,8 +36,9 @@ const {
|
|
|
36
36
|
SOURCE_GENERATE_IAM_ROLE,
|
|
37
37
|
checkDynamoTypeRelationship,
|
|
38
38
|
createDynamoDbComponentByLinks,
|
|
39
|
-
DYNAMO_RESOURCE
|
|
40
|
-
|
|
39
|
+
DYNAMO_RESOURCE,
|
|
40
|
+
SQS_RESOURCE
|
|
41
|
+
} = require("../../../../../../../MainLibs/src/Consts.js");
|
|
41
42
|
|
|
42
43
|
const templatePath = path.join(__dirname, "./template.ejs")
|
|
43
44
|
|
|
@@ -70,10 +71,28 @@ function createParamForCreateSource(allObjectRelationships, srcPath) {
|
|
|
70
71
|
additionalResourcePermission.push(
|
|
71
72
|
createIamRole(
|
|
72
73
|
{
|
|
73
|
-
[RESOURCE_CLASSES.
|
|
74
|
+
[RESOURCE_CLASSES.sqs]: [
|
|
75
|
+
SQS_RESOURCE.deleteMessage,
|
|
76
|
+
SQS_RESOURCE.getQueueAttributes,
|
|
77
|
+
SQS_RESOURCE.receiveMessage,
|
|
78
|
+
SQS_RESOURCE.sendMessage,
|
|
79
|
+
SQS_RESOURCE.getQueueUrl,
|
|
80
|
+
SQS_RESOURCE.deleteMessageBatch
|
|
81
|
+
],
|
|
74
82
|
},
|
|
75
83
|
[
|
|
76
|
-
resourceNames(RESOURCE_CLASSES.
|
|
84
|
+
resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(HANDLER.hdrSqs)),
|
|
85
|
+
resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(HANDLER.hdrSqs) + "DLQ"),
|
|
86
|
+
]
|
|
87
|
+
),
|
|
88
|
+
createIamRole(
|
|
89
|
+
{
|
|
90
|
+
[RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish, SNS_RESOURCE.subscribe]
|
|
91
|
+
},
|
|
92
|
+
[
|
|
93
|
+
resourceNames(RESOURCE_CLASSES.sns, upperCase(FUNCTION_NAME.getRelComplete) + "_Out"),
|
|
94
|
+
resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_In"),
|
|
95
|
+
resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_Out"),
|
|
77
96
|
]
|
|
78
97
|
)
|
|
79
98
|
)
|
package/src/reStructure/TemplateData/relationshipPerAction/get/action/functionYaml/dsq/data.js
CHANGED
|
@@ -67,9 +67,6 @@ function createParamForCreateSource(allObjectRelationships, srcPath) {
|
|
|
67
67
|
let additionalResourcePermission = defaultIamRolePerAction();
|
|
68
68
|
|
|
69
69
|
additionalResourcePermission.push(
|
|
70
|
-
// createIamRole(
|
|
71
|
-
// { [RESOURCE_CLASSES.lambda]: ["InvokeFunction"] },
|
|
72
|
-
// [resourceNames(RESOURCE_CLASSES.lambda, "*GetNodeHdrInv")]),
|
|
73
70
|
createIamRole(
|
|
74
71
|
{
|
|
75
72
|
[RESOURCE_CLASSES.sqs]: [
|
|
@@ -77,15 +74,23 @@ function createParamForCreateSource(allObjectRelationships, srcPath) {
|
|
|
77
74
|
SQS_RESOURCE.getQueueAttributes,
|
|
78
75
|
SQS_RESOURCE.receiveMessage,
|
|
79
76
|
SQS_RESOURCE.sendMessage,
|
|
80
|
-
SQS_RESOURCE.
|
|
81
|
-
SQS_RESOURCE.
|
|
77
|
+
SQS_RESOURCE.getQueueUrl,
|
|
78
|
+
SQS_RESOURCE.deleteMessageBatch
|
|
82
79
|
],
|
|
83
|
-
[RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish]
|
|
84
80
|
},
|
|
85
81
|
[
|
|
86
|
-
resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(HANDLER.
|
|
87
|
-
resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(HANDLER.
|
|
88
|
-
|
|
82
|
+
resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(HANDLER.hdrSqs)),
|
|
83
|
+
resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(HANDLER.hdrSqs) + "DLQ"),
|
|
84
|
+
]
|
|
85
|
+
),
|
|
86
|
+
createIamRole(
|
|
87
|
+
{
|
|
88
|
+
[RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish, SNS_RESOURCE.subscribe]
|
|
89
|
+
},
|
|
90
|
+
[
|
|
91
|
+
resourceNames(RESOURCE_CLASSES.sns, upperCase(FUNCTION_NAME.getRelComplete) + "_Out"),
|
|
92
|
+
resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_In"),
|
|
93
|
+
resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_Out"),
|
|
89
94
|
]
|
|
90
95
|
)
|
|
91
96
|
)
|
package/src/reStructure/TemplateData/relationshipPerAction/get/action/functionYaml/inv/data.js
CHANGED
|
@@ -18,7 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
18
18
|
'use strict';
|
|
19
19
|
const path = require('path');
|
|
20
20
|
|
|
21
|
-
const { ACTIONS, HANDLER, STORAGE_TYPES } = require('@izara_project/izara-core-library-service-schemas/src/Consts')
|
|
21
|
+
const { ACTIONS, HANDLER, STORAGE_TYPES } = require('@izara_project/izara-core-library-service-schemas/src/Consts');
|
|
22
22
|
|
|
23
23
|
const { firstLetterLowerCase: lowerCase, firstLetterUpperCase: upperCase } = require("../../../../../../../MainLibs/index.js").utils;
|
|
24
24
|
const {
|
|
@@ -36,7 +36,8 @@ const {
|
|
|
36
36
|
SOURCE_GENERATE_IAM_ROLE,
|
|
37
37
|
checkDynamoTypeRelationship,
|
|
38
38
|
createDynamoDbComponentByLinks,
|
|
39
|
-
DYNAMO_RESOURCE
|
|
39
|
+
DYNAMO_RESOURCE,
|
|
40
|
+
SQS_RESOURCE
|
|
40
41
|
} = require("../../../../../../../MainLibs/index.js").consts;
|
|
41
42
|
|
|
42
43
|
const templatePath = path.join(__dirname, './template.ejs')
|
|
@@ -66,13 +67,31 @@ function createParamForCreateSource(allObjectRelationships, srcPath) {
|
|
|
66
67
|
let additionalResourcePermission = defaultIamRolePerAction();
|
|
67
68
|
|
|
68
69
|
additionalResourcePermission.push(awaitingMultipleStepsRole())
|
|
69
|
-
|
|
70
70
|
additionalResourcePermission.push(
|
|
71
|
-
createIamRole(
|
|
72
|
-
|
|
73
|
-
|
|
71
|
+
createIamRole(
|
|
72
|
+
{
|
|
73
|
+
[RESOURCE_CLASSES.sqs]: [
|
|
74
|
+
SQS_RESOURCE.deleteMessage,
|
|
75
|
+
SQS_RESOURCE.getQueueAttributes,
|
|
76
|
+
SQS_RESOURCE.receiveMessage,
|
|
77
|
+
SQS_RESOURCE.sendMessage,
|
|
78
|
+
SQS_RESOURCE.getQueueUrl,
|
|
79
|
+
SQS_RESOURCE.deleteMessageBatch
|
|
80
|
+
],
|
|
81
|
+
},
|
|
82
|
+
[
|
|
83
|
+
resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(HANDLER.hdrSqs)),
|
|
84
|
+
resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(HANDLER.hdrSqs) + "DLQ"),
|
|
85
|
+
]
|
|
86
|
+
),
|
|
87
|
+
createIamRole(
|
|
88
|
+
{
|
|
89
|
+
[RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish, SNS_RESOURCE.subscribe]
|
|
90
|
+
},
|
|
74
91
|
[
|
|
75
|
-
resourceNames(RESOURCE_CLASSES.sns, upperCase(FUNCTION_NAME.getRelComplete) + "_Out")
|
|
92
|
+
resourceNames(RESOURCE_CLASSES.sns, upperCase(FUNCTION_NAME.getRelComplete) + "_Out"),
|
|
93
|
+
resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_In"),
|
|
94
|
+
resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_Out"),
|
|
76
95
|
]
|
|
77
96
|
)
|
|
78
97
|
)
|
package/src/reStructure/TemplateData/relationshipPerAction/get/action/functionYaml/sqs/data.js
CHANGED
|
@@ -66,9 +66,6 @@ function createParamForCreateSource(allObjectRelationships, srcPath) {
|
|
|
66
66
|
let additionalResourcePermission = defaultIamRolePerAction();
|
|
67
67
|
|
|
68
68
|
additionalResourcePermission.push(
|
|
69
|
-
// createIamRole(
|
|
70
|
-
// { [RESOURCE_CLASSES.lambda]: ["InvokeFunction"] },
|
|
71
|
-
// [resourceNames(RESOURCE_CLASSES.lambda, "*GetNodeHdrInv")]),
|
|
72
69
|
createIamRole(
|
|
73
70
|
{
|
|
74
71
|
[RESOURCE_CLASSES.sqs]: [
|
|
@@ -78,17 +75,23 @@ function createParamForCreateSource(allObjectRelationships, srcPath) {
|
|
|
78
75
|
SQS_RESOURCE.sendMessage,
|
|
79
76
|
SQS_RESOURCE.getQueueUrl,
|
|
80
77
|
SQS_RESOURCE.deleteMessageBatch
|
|
81
|
-
],
|
|
82
|
-
[SNS_RESOURCE.publish, SNS_RESOURCE.subscribe]
|
|
78
|
+
],
|
|
83
79
|
},
|
|
84
80
|
[
|
|
85
81
|
resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(HANDLER.hdrSqs)),
|
|
86
82
|
resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(HANDLER.hdrSqs) + "DLQ"),
|
|
83
|
+
]
|
|
84
|
+
),
|
|
85
|
+
createIamRole(
|
|
86
|
+
{
|
|
87
|
+
[RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish, SNS_RESOURCE.subscribe]
|
|
88
|
+
},
|
|
89
|
+
[
|
|
90
|
+
resourceNames(RESOURCE_CLASSES.sns, upperCase(FUNCTION_NAME.getRelComplete) + "_Out"),
|
|
87
91
|
resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_In"),
|
|
88
92
|
resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_Out"),
|
|
89
|
-
resourceNames(RESOURCE_CLASSES.sns, upperCase(FUNCTION_NAME.getRelComplete) + "_Out")
|
|
90
93
|
]
|
|
91
|
-
)
|
|
94
|
+
)
|
|
92
95
|
)
|
|
93
96
|
additionalResourcePermission.push(awaitingMultipleStepsRole())
|
|
94
97
|
|
package/src/reStructure/TemplateData/relationshipPerAction/get/complete/functionYaml/data.js
CHANGED
|
@@ -71,19 +71,24 @@ function createParamForCreateSource(srcPath) {
|
|
|
71
71
|
SQS_RESOURCE.sendMessage,
|
|
72
72
|
SQS_RESOURCE.deleteMessageBatch,
|
|
73
73
|
SQS_RESOURCE.getQueueUrl,
|
|
74
|
-
]
|
|
75
|
-
[RESOURCE_CLASSES.sns]:
|
|
76
|
-
[
|
|
77
|
-
SNS_RESOURCE.publish, SNS_RESOURCE.subscribe
|
|
78
|
-
]
|
|
74
|
+
]
|
|
79
75
|
},
|
|
80
76
|
[
|
|
81
77
|
resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName)),
|
|
82
78
|
resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + "DLQ"),
|
|
83
|
-
resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_In"),
|
|
84
|
-
resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_Out")
|
|
85
79
|
],
|
|
80
|
+
),
|
|
81
|
+
createIamRole(
|
|
82
|
+
{
|
|
83
|
+
[RESOURCE_CLASSES.sns]:
|
|
84
|
+
[
|
|
85
|
+
SNS_RESOURCE.publish, SNS_RESOURCE.subscribe
|
|
86
|
+
]
|
|
87
|
+
},
|
|
88
|
+
resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_In"),
|
|
89
|
+
resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_Out")
|
|
86
90
|
))
|
|
91
|
+
|
|
87
92
|
additionalResourcePermission.push(awaitingMultipleStepsRole())
|
|
88
93
|
|
|
89
94
|
return {
|
package/src/reStructure/TemplateData/relationshipPerAction/update/action/functionYaml/api/data.js
CHANGED
|
@@ -73,13 +73,32 @@ function createParamForCreateSource(allObjectRelationships, srcPath) {
|
|
|
73
73
|
|
|
74
74
|
additionalResourcePermission.push(
|
|
75
75
|
createIamRole(
|
|
76
|
-
{
|
|
76
|
+
{
|
|
77
|
+
[RESOURCE_CLASSES.sqs]: [
|
|
78
|
+
SQS_RESOURCE.deleteMessage,
|
|
79
|
+
SQS_RESOURCE.getQueueAttributes,
|
|
80
|
+
SQS_RESOURCE.receiveMessage,
|
|
81
|
+
SQS_RESOURCE.sendMessage,
|
|
82
|
+
SQS_RESOURCE.getQueueUrl,
|
|
83
|
+
SQS_RESOURCE.deleteMessageBatch
|
|
84
|
+
],
|
|
85
|
+
},
|
|
77
86
|
[
|
|
78
|
-
resourceNames(RESOURCE_CLASSES.
|
|
87
|
+
resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(HANDLER.hdrSqs)),
|
|
88
|
+
resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(HANDLER.hdrSqs) + "DLQ"),
|
|
89
|
+
]
|
|
90
|
+
),
|
|
91
|
+
createIamRole(
|
|
92
|
+
{
|
|
93
|
+
[RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish, SNS_RESOURCE.subscribe]
|
|
94
|
+
},
|
|
95
|
+
[
|
|
96
|
+
resourceNames(RESOURCE_CLASSES.sns, upperCase(FUNCTION_NAME.updateRelComplete) + "_Out"),
|
|
97
|
+
resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_In"),
|
|
98
|
+
resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_Out"),
|
|
79
99
|
]
|
|
80
100
|
)
|
|
81
101
|
)
|
|
82
|
-
|
|
83
102
|
for (const relationship of allObjectRelationships) {
|
|
84
103
|
let [storageType, relationshipTag, links] = checkDynamoTypeRelationship(relationship)
|
|
85
104
|
if (storageType === STORAGE_TYPES.dynamoDB) {
|
package/src/reStructure/TemplateData/relationshipPerAction/update/action/functionYaml/dsq/data.js
CHANGED
|
@@ -95,15 +95,23 @@ function createParamForCreateSource(allObjectRelationships, srcPath) {
|
|
|
95
95
|
SQS_RESOURCE.getQueueAttributes,
|
|
96
96
|
SQS_RESOURCE.receiveMessage,
|
|
97
97
|
SQS_RESOURCE.sendMessage,
|
|
98
|
-
SQS_RESOURCE.
|
|
99
|
-
SQS_RESOURCE.
|
|
98
|
+
SQS_RESOURCE.getQueueUrl,
|
|
99
|
+
SQS_RESOURCE.deleteMessageBatch
|
|
100
100
|
],
|
|
101
|
-
[RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish]
|
|
102
101
|
},
|
|
103
102
|
[
|
|
104
|
-
resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(HANDLER.
|
|
105
|
-
resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(HANDLER.
|
|
106
|
-
|
|
103
|
+
resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(HANDLER.hdrSqs)),
|
|
104
|
+
resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(HANDLER.hdrSqs) + "DLQ"),
|
|
105
|
+
]
|
|
106
|
+
),
|
|
107
|
+
createIamRole(
|
|
108
|
+
{
|
|
109
|
+
[RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish, SNS_RESOURCE.subscribe]
|
|
110
|
+
},
|
|
111
|
+
[
|
|
112
|
+
resourceNames(RESOURCE_CLASSES.sns, upperCase(FUNCTION_NAME.updateRelComplete) + "_Out"),
|
|
113
|
+
resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_In"),
|
|
114
|
+
resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_Out"),
|
|
107
115
|
]
|
|
108
116
|
)
|
|
109
117
|
)
|
package/src/reStructure/TemplateData/relationshipPerAction/update/action/functionYaml/inv/data.js
CHANGED
|
@@ -93,14 +93,31 @@ function createParamForCreateSource(allObjectRelationships, srcPath) {
|
|
|
93
93
|
additionalResourcePermission.push(
|
|
94
94
|
createIamRole(
|
|
95
95
|
{
|
|
96
|
-
[RESOURCE_CLASSES.
|
|
96
|
+
[RESOURCE_CLASSES.sqs]: [
|
|
97
|
+
SQS_RESOURCE.deleteMessage,
|
|
98
|
+
SQS_RESOURCE.getQueueAttributes,
|
|
99
|
+
SQS_RESOURCE.receiveMessage,
|
|
100
|
+
SQS_RESOURCE.sendMessage,
|
|
101
|
+
SQS_RESOURCE.getQueueUrl,
|
|
102
|
+
SQS_RESOURCE.deleteMessageBatch
|
|
103
|
+
],
|
|
97
104
|
},
|
|
98
105
|
[
|
|
99
|
-
resourceNames(RESOURCE_CLASSES.
|
|
106
|
+
resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(HANDLER.hdrSqs)),
|
|
107
|
+
resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(HANDLER.hdrSqs) + "DLQ"),
|
|
108
|
+
]
|
|
109
|
+
),
|
|
110
|
+
createIamRole(
|
|
111
|
+
{
|
|
112
|
+
[RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish, SNS_RESOURCE.subscribe]
|
|
113
|
+
},
|
|
114
|
+
[
|
|
115
|
+
resourceNames(RESOURCE_CLASSES.sns, upperCase(FUNCTION_NAME.updateRelComplete) + "_Out"),
|
|
116
|
+
resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_In"),
|
|
117
|
+
resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_Out"),
|
|
100
118
|
]
|
|
101
119
|
)
|
|
102
120
|
)
|
|
103
|
-
|
|
104
121
|
for (const relationship of allObjectRelationships) {
|
|
105
122
|
let [storageType, relationshipTag, links] = checkDynamoTypeRelationship(relationship)
|
|
106
123
|
if (storageType === STORAGE_TYPES.dynamoDB) {
|
package/src/reStructure/TemplateData/relationshipPerAction/update/action/functionYaml/sqs/data.js
CHANGED
|
@@ -99,16 +99,22 @@ function createParamForCreateSource(allObjectRelationships, srcPath) {
|
|
|
99
99
|
SQS_RESOURCE.getQueueUrl,
|
|
100
100
|
SQS_RESOURCE.deleteMessageBatch
|
|
101
101
|
],
|
|
102
|
-
[RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish]
|
|
103
102
|
},
|
|
104
103
|
[
|
|
105
104
|
resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(HANDLER.hdrSqs)),
|
|
106
105
|
resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + upperCase(HANDLER.hdrSqs) + "DLQ"),
|
|
106
|
+
]
|
|
107
|
+
),
|
|
108
|
+
createIamRole(
|
|
109
|
+
{
|
|
110
|
+
[RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish, SNS_RESOURCE.subscribe]
|
|
111
|
+
},
|
|
112
|
+
[
|
|
113
|
+
resourceNames(RESOURCE_CLASSES.sns, upperCase(FUNCTION_NAME.updateRelComplete) + "_Out"),
|
|
107
114
|
resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_In"),
|
|
108
115
|
resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_Out"),
|
|
109
|
-
resourceNames(RESOURCE_CLASSES.sns, upperCase(FUNCTION_NAME.updateRelComplete) + "_Out")
|
|
110
116
|
]
|
|
111
|
-
)
|
|
117
|
+
)
|
|
112
118
|
)
|
|
113
119
|
|
|
114
120
|
additionalResourcePermission.push(awaitingMultipleStepsRole())
|
package/src/reStructure/TemplateData/relationshipPerAction/update/complete/functionYaml/data.js
CHANGED
|
@@ -62,7 +62,6 @@ function createParamForCreateSource(srcPath) {
|
|
|
62
62
|
let additionalResourcePermission = defaultIamRolePerAction();
|
|
63
63
|
|
|
64
64
|
additionalResourcePermission.push(
|
|
65
|
-
|
|
66
65
|
createIamRole(
|
|
67
66
|
{
|
|
68
67
|
[RESOURCE_CLASSES.sqs]: [
|
|
@@ -72,19 +71,26 @@ function createParamForCreateSource(srcPath) {
|
|
|
72
71
|
SQS_RESOURCE.sendMessage,
|
|
73
72
|
SQS_RESOURCE.deleteMessageBatch,
|
|
74
73
|
SQS_RESOURCE.getQueueUrl,
|
|
75
|
-
],
|
|
76
|
-
[RESOURCE_CLASSES.sns]: [
|
|
77
|
-
SNS_RESOURCE.publish, SNS_RESOURCE.subscribe
|
|
78
74
|
]
|
|
79
75
|
},
|
|
80
76
|
[
|
|
81
77
|
resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName)),
|
|
82
78
|
resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + "DLQ"),
|
|
83
|
-
resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_In"),
|
|
84
|
-
resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_Out")
|
|
85
79
|
],
|
|
80
|
+
),
|
|
81
|
+
createIamRole(
|
|
82
|
+
{
|
|
83
|
+
[RESOURCE_CLASSES.sns]:
|
|
84
|
+
[
|
|
85
|
+
SNS_RESOURCE.publish, SNS_RESOURCE.subscribe
|
|
86
|
+
]
|
|
87
|
+
},
|
|
88
|
+
resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_In"),
|
|
89
|
+
resourceNames(RESOURCE_CLASSES.sns, upperCase(functionName) + "_Out")
|
|
86
90
|
))
|
|
91
|
+
|
|
87
92
|
additionalResourcePermission.push(awaitingMultipleStepsRole())
|
|
93
|
+
|
|
88
94
|
return {
|
|
89
95
|
templatePath: templatePath,
|
|
90
96
|
templateData: {
|
package/src/reStructure/TemplateData/resourceYaml/dynamodb/mainResourcePerObjectSchemaData.js
CHANGED
|
@@ -33,7 +33,7 @@ const STORAGE_TYPES = {
|
|
|
33
33
|
const { firstLetterUpperCase: upperCase } = require('../../../../MainLibs/src/Utils.js')
|
|
34
34
|
const { SOURCE_PATH, SAVE_FILE_NAME } = require('../../../../MainLibs/index.js').consts
|
|
35
35
|
const templatePath = path.join(__dirname, './template.ejs')
|
|
36
|
-
|
|
36
|
+
const { getLocalServiceTag } = require('../../../../MainLibs/src/Utils.js')
|
|
37
37
|
// ---------- End Per Lambda Handler IamRole Data ----------
|
|
38
38
|
|
|
39
39
|
|
|
@@ -116,9 +116,13 @@ function dataForMainDynamoDbYamlFromObjectSchema(_izContext, objectSchema, srcPa
|
|
|
116
116
|
// }
|
|
117
117
|
|
|
118
118
|
for (let storageResource of Object.values(objectSchema.storageResources)) {
|
|
119
|
+
// if (storageResource.hasOwnProperty("serviceTag") && storageResource.serviceTag !== getLocalServiceTag(srcPath)) {
|
|
120
|
+
// continue; // if serviceTag of storageResource not own service will skip
|
|
121
|
+
// }
|
|
119
122
|
if (storageResource.storageType === STORAGE_TYPES.dynamoDB) {
|
|
120
123
|
let templateData = {
|
|
121
124
|
tableName: storageResource.tableName,
|
|
125
|
+
resourceName: storageResource.tableName,
|
|
122
126
|
attributes: []
|
|
123
127
|
};
|
|
124
128
|
if (storageResource.hasOwnProperty("groupByPartitionKeyField")) {
|
|
@@ -140,7 +144,7 @@ function dataForMainDynamoDbYamlFromObjectSchema(_izContext, objectSchema, srcPa
|
|
|
140
144
|
)
|
|
141
145
|
}
|
|
142
146
|
}
|
|
143
|
-
templateData.resourceName = upperCase(objectSchema.objectType)
|
|
147
|
+
// templateData.resourceName = upperCase(objectSchema.objectType)
|
|
144
148
|
dynamoDbYamlTempleteData.push(templateData)
|
|
145
149
|
}
|
|
146
150
|
}
|
|
@@ -1,184 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
Copyright (C) 2020 Sven Mason <http: //izara.io>
|
|
3
|
-
|
|
4
|
-
This program is free software: you can redistribute it and/or modify
|
|
5
|
-
it under the terms of the GNU Affero General Public License as
|
|
6
|
-
published by the Free Software Foundation, either version 3 of the
|
|
7
|
-
License, or (at your option) any later version.
|
|
8
|
-
|
|
9
|
-
This program is distributed in the hope that it will be useful,
|
|
10
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
-
GNU Affero General Public License for more details.
|
|
13
|
-
|
|
14
|
-
You should have received a copy of the GNU Affero General Public License
|
|
15
|
-
along with this program. If not, see
|
|
16
|
-
<http: //www.gnu.org/licenses />.
|
|
17
|
-
*/
|
|
18
|
-
|
|
19
|
-
'use strict';
|
|
20
|
-
|
|
21
|
-
const hash = require('@izara_project/izara-shared-core').objectHash;
|
|
22
|
-
const { getObjectSchema } = require('@izara_project/izara-core-library-service-schemas');
|
|
23
|
-
|
|
24
|
-
const dynamodbSharedLib = require('@izara_project/izara-core-library-dynamodb');
|
|
25
|
-
const snsSharedLib = require('@izara_project/izara-core-library-sns');
|
|
26
|
-
const asyncFlowSharedLib = require('@izara_project/izara-core-library-asynchronous-flow');
|
|
27
|
-
const callingFlowSharedLib = require('@izara_project/izara-core-library-calling-flow');
|
|
28
|
-
const lambdaSharedLib = require('@izara_project/izara-core-library-lambda');
|
|
29
|
-
|
|
30
|
-
const externalRequest = require('@izara_project/izara-core-library-external-request');
|
|
31
|
-
const sns = externalRequest.sns
|
|
32
|
-
const { postToConnection } = require("../../../libs/source/GenerateCodeLibs");
|
|
33
|
-
|
|
34
|
-
const utils = require('@izara_project/izara-market-library-service-schemas/src/MainLibs/src/Utils')
|
|
35
|
-
const { NoRetryError } = require('@izara_project/izara-core-library-core')
|
|
36
|
-
const { v4: uuidv4 } = require('uuid')
|
|
37
|
-
const coreConsts = require("@izara_project/izara-core-library-core/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
|
-
|
|
41
|
-
/**
|
|
42
|
-
* description of function.
|
|
43
|
-
* @param {Object} _izContext
|
|
44
|
-
* @param {CorrelationIds} _izContext.correlationIds - property of _izContext
|
|
45
|
-
* @param {Logger} _izContext.logger - property of _izContext
|
|
46
|
-
* @param {Object} requestParams - request params
|
|
47
|
-
* @param {Object} requestParams.identifiers - identifiers for get data
|
|
48
|
-
* @param {Object} requestParams.additionalRequest - additionalRequest
|
|
49
|
-
*
|
|
50
|
-
* @returns {object} description of return value
|
|
51
|
-
*/
|
|
52
|
-
module.exports.registerCompleteMain = async (
|
|
53
|
-
_izContext,
|
|
54
|
-
requestParams,
|
|
55
|
-
callingFlowConfig = {},
|
|
56
|
-
//(<additionalParams>)
|
|
57
|
-
//(</additionalParams>)
|
|
58
|
-
) => {
|
|
59
|
-
try {
|
|
60
|
-
_izContext.logger.debug("WebSocketInvoke _izContext", _izContext)
|
|
61
|
-
_izContext.logger.debug("WebSocketInvoke requestParams", requestParams)
|
|
62
|
-
_izContext.logger.debug("WebSocketInvoke callingFlowConfig", callingFlowConfig)
|
|
63
|
-
|
|
64
|
-
const connectionId = requestContext.connectionId;
|
|
65
|
-
let correlationId = _izContext.correlationIds.get(consts.X_CORRELATION_ID);
|
|
66
|
-
|
|
67
|
-
const getRegisterRecords = await dynamodbSharedLib.getItem(
|
|
68
|
-
_izContext,
|
|
69
|
-
await dynamodbSharedLib.tableName(_izContext, "RegisterRecords"),
|
|
70
|
-
{
|
|
71
|
-
identifierTask: correlationId,
|
|
72
|
-
connectionId: connectionId,
|
|
73
|
-
}
|
|
74
|
-
);
|
|
75
|
-
_izContext.logger.debug("getRegisterRecords", getRegisterRecords)
|
|
76
|
-
if (!getRegisterRecords) {
|
|
77
|
-
throw new NoRetryError(`connectionId not found ${connectionId}`)
|
|
78
|
-
}
|
|
79
|
-
|
|
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}`)
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
// get data from dynamoDB of objectType of flowSchema
|
|
92
|
-
const getStoredCache = async (objectType) => {
|
|
93
|
-
const objectSchema = await getObjectSchema.getObjSchemaS3WithCache(
|
|
94
|
-
_izContext,
|
|
95
|
-
{
|
|
96
|
-
objectType: objectType,
|
|
97
|
-
serviceTag: process.env.iz_serviceTag,
|
|
98
|
-
})
|
|
99
|
-
|
|
100
|
-
_izContext.logger.debug("==> objectSchema", objectSchema)
|
|
101
|
-
|
|
102
|
-
// this returns the table name of the first storage resource with storageType "dynamoDB"
|
|
103
|
-
const tableName = Object.values(objectSchema.storageResources).find(
|
|
104
|
-
(storageResource) => storageResource.storageType === "dynamoDB"
|
|
105
|
-
)?.tableName
|
|
106
|
-
_izContext.logger.debug("==> tableName", tableName)
|
|
107
|
-
|
|
108
|
-
let identifierPK = null
|
|
109
|
-
let identifierSK = null
|
|
110
|
-
objectSchema.identifiers.map((identifier) => {
|
|
111
|
-
if (identifier.type === "partitionKey") {
|
|
112
|
-
identifierPK = identifier.fieldName
|
|
113
|
-
} else if (identifier.type === "sortKey") {
|
|
114
|
-
identifierSK = identifier.fieldName
|
|
115
|
-
}
|
|
116
|
-
})
|
|
117
|
-
|
|
118
|
-
_izContext.logger.debug("==> identifierPK", identifierPK)
|
|
119
|
-
_izContext.logger.debug("==> identifierSK", identifierSK)
|
|
120
|
-
|
|
121
|
-
const payloadGetStoredCache = {
|
|
122
|
-
[identifierPK]: requestParams.identifiers[identifierPK],
|
|
123
|
-
}
|
|
124
|
-
if (identifierSK) {
|
|
125
|
-
payloadGetStoredCache[identifierSK] = requestParams.identifiers[identifierSK]
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
_izContext.logger.debug("==> payloadGetStoredCache", payloadGetStoredCache)
|
|
129
|
-
|
|
130
|
-
// const getStoredCache = await dynamodbSharedLib.getItem(
|
|
131
|
-
// _izContext,
|
|
132
|
-
// await dynamodbSharedLib.tableName(_izContext, tableName),
|
|
133
|
-
// payloadGetStoredCache
|
|
134
|
-
// )
|
|
135
|
-
|
|
136
|
-
const getStoredCache = await dynamodbSharedLib.query(
|
|
137
|
-
_izContext,
|
|
138
|
-
await dynamodbSharedLib.tableName(_izContext, tableName),
|
|
139
|
-
payloadGetStoredCache
|
|
140
|
-
)
|
|
141
|
-
_izContext.logger.debug("==> getStoredCache:::", getStoredCache)
|
|
142
|
-
return ({
|
|
143
|
-
data: getStoredCache.Items[0],
|
|
144
|
-
identifierPK: identifierPK,
|
|
145
|
-
})
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
switch (getFlowSchema.statusType) {
|
|
149
|
-
case "statusField":
|
|
150
|
-
let payload = {
|
|
151
|
-
identifiers: requestParams.identifiers,
|
|
152
|
-
objectType: getFlowSchema.objType.objectType
|
|
153
|
-
}
|
|
154
|
-
let result = await externalRequest.lambda.invokeSync(
|
|
155
|
-
_izContext,
|
|
156
|
-
await lambdaSharedLib.lambdaFunctionName(_izContext, "GetHdrInv", getFlowSchema.objType.serviceTag),
|
|
157
|
-
payload
|
|
158
|
-
)
|
|
159
|
-
if (!result) {
|
|
160
|
-
throw new NoRetryError(`statusField not found ${requestParams.identifiers}`)
|
|
161
|
-
}
|
|
162
|
-
await postToConnection({message:result}, connectionId)
|
|
163
|
-
return result
|
|
164
|
-
case "storedCache":
|
|
165
|
-
// if statusType=storedCache then query storedCache > post message to client -> remove connectionId if status = error || complete
|
|
166
|
-
const resultStoredCache = resultStoredCache(getFlowSchema.objType.objectType)
|
|
167
|
-
|
|
168
|
-
if (!resultStoredCache) {
|
|
169
|
-
throw new NoRetryError(`storedCache not found ${requestParams.identifiers}`)
|
|
170
|
-
}
|
|
171
|
-
await postToConnection({message:resultStoredCache }, connectionId)
|
|
172
|
-
return resultStoredCache
|
|
173
|
-
case "none":
|
|
174
|
-
// if statusType=none -> post message to client ---- not remove connectionId when post message, can remove connectionId when cannot use connectionId only(user disconnect)
|
|
175
|
-
break
|
|
176
|
-
default:
|
|
177
|
-
throw new NoRetryError(`statusType not found ${getFlowSchema.statusType}`)
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
} catch (err) {
|
|
181
|
-
_izContext.logger.error('error WebSocketInvoke: ', err)
|
|
182
|
-
throw (err)
|
|
183
|
-
}
|
|
184
|
-
}
|