@izara_project/izara-market-library-service-schemas 1.0.5 → 1.0.7
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 +2 -2
- package/src/GenerateCodeLibs/index.js +2 -1
- package/src/GenerateCodeLibs/src/Consts.js +12 -3
- package/src/GenerateCodeLibs/src/GenerateCodeLibs.js +232 -7
- package/src/GenerateCodeLibs/src/TranslateIdsLibs.js +89 -0
- package/src/MainLibs/src/Utils.js +10 -0
- package/src/TemplateManager/src/CreateRelationship/createRelationship/functionYaml/HdrApi/data.js +10 -2
- package/src/TemplateManager/src/CreateRelationship/createRelationship/functionYaml/HdrDsq/data.js +5 -4
- package/src/TemplateManager/src/CreateRelationship/createRelationship/functionYaml/HdrInv/data.js +11 -1
- package/src/TemplateManager/src/CreateRelationship/createRelationship/functionYaml/HdrSqs/data.js +4 -3
- package/src/TemplateManager/src/CreateRelationship/createRelationship/mainFunction/template.ejs +24 -22
- package/src/TemplateManager/src/CreateRelationship/createRelationship/perAction/HdrDsq/data.js +0 -1
- package/src/TemplateManager/src/CreateRelationship/createRelationship/perAction/HdrSqs/data.js +1 -1
- package/src/TemplateManager/src/CreateRelationship/createRelationship/sns-in-sqs/data.js +0 -2
- package/src/TemplateManager/src/CreateRelationship/createRelationshipComplete/functionYaml/data.js +2 -2
- package/src/TemplateManager/src/CreateRelationship/createRelationshipComplete/handler/HdrSqs/data.js +0 -1
- package/src/TemplateManager/src/CreateRelationship/createRelationshipComplete/sns-out/data.js +1 -1
- package/src/TemplateManager/src/FindData/FindDataYaml/data.js +188 -0
- package/src/TemplateManager/src/FindData/FindDataYaml/template.ejs +27 -0
- package/src/TemplateManager/src/FindData/GetByStorage/getByDynamo.ejs +53 -0
- package/src/TemplateManager/src/FindData/GetByStorage/getByGraph.ejs +99 -0
- package/src/TemplateManager/src/FindData/Handler/data.js +48 -0
- package/src/TemplateManager/src/FindData/Handler/template.ejs +140 -0
- package/src/TemplateManager/src/FindData/mainFunction/data.js +279 -0
- package/src/TemplateManager/src/FindData/mainFunction/template.ejs +158 -0
- package/src/TemplateManager/src/GenerateCode(Old).js +1 -1
- package/src/TemplateManager/src/GenerateCode.js +163 -42
- package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/functionYaml/data.js +98 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/functionYaml/template.ejs +33 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/handler/data.js +59 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/handler/template.ejs +129 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/mainFunction/createObjectComplete_main.js +172 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/mainFunction/data.js +53 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/mainFunction/template.ejs +172 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/sns-in-sqs/data.js +58 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/sns-in-sqs/template.ejs +47 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/sns-out/data.js +62 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/sns-out/template.ejs +10 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutUpdateComplete/functionYaml/data.js +98 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutUpdateComplete/functionYaml/template.ejs +33 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutUpdateComplete/handler/data.js +59 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutUpdateComplete/handler/template.ejs +129 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutUpdateComplete/mainFunction/data.js +53 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutUpdateComplete/mainFunction/template.ejs +126 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutUpdateComplete/sns-out/data.js +62 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutUpdateComplete/sqs-in-sns/data.js +58 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutUpdateComplete/sqs-in-sns/template.ejs +47 -0
- package/src/TemplateManager/src/PerActionEndpoint/FunctionYaml/HdrApi/data.js +22 -3
- package/src/TemplateManager/src/PerActionEndpoint/FunctionYaml/HdrApi/template.ejs +2 -2
- package/src/TemplateManager/src/PerActionEndpoint/FunctionYaml/HdrDsq/data.js +24 -1
- package/src/TemplateManager/src/PerActionEndpoint/FunctionYaml/HdrInv/data.js +53 -2
- package/src/TemplateManager/src/PerActionEndpoint/FunctionYaml/HdrSqs/data.js +25 -3
- package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrApi/data.js +5 -8
- package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrApi/getTemplate.ejs +76 -0
- package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrApi/updateTemplate.ejs +67 -0
- package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrDsq/data.js +47 -23
- package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrDsq/getTemplate.ejs +105 -0
- package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrDsq/updateTemplate.ejs +109 -0
- package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrInv/createTemplate.ejs +75 -0
- package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrInv/data.js +69 -21
- package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrInv/getTemplate.ejs +82 -0
- package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrInv/updateTemplate.ejs +75 -0
- package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrSqs/data.js +46 -17
- package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrSqs/getTemplate.ejs +124 -0
- package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrSqs/updateTemplate.ejs +133 -0
- package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Create/CreateObject_main.js +760 -0
- package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Create/data.js +67 -0
- package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Create/request.json +0 -0
- package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Create/template.ejs +575 -0
- package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Get/data.js +0 -6
- package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Get/template.ejs +17 -12
- package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Update/data.js +61 -0
- package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Update/request.json +0 -0
- package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Update/template.ejs +267 -0
- package/src/TemplateManager/src/ProcessLogical/Handler/data.js +49 -0
- package/src/TemplateManager/src/ProcessLogical/Handler/template.ejs +129 -0
- package/src/TemplateManager/src/ProcessLogical/ProcessLogicalYaml/data.js +175 -0
- package/src/TemplateManager/src/ProcessLogical/ProcessLogicalYaml/template.ejs +25 -0
- package/src/TemplateManager/src/ProcessLogical/mainFunction/data.js +47 -0
- package/src/TemplateManager/src/ProcessLogical/mainFunction/template.ejs +429 -0
- package/src/TemplateManager/src/ProcessLogicalPagination/DsqYaml/data.js +50 -0
- package/src/TemplateManager/src/ProcessLogicalPagination/DsqYaml/template.ejs +32 -0
- package/src/TemplateManager/src/ProcessLogicalPagination/FunctionYaml/HdrDsq/data.js +167 -0
- package/src/TemplateManager/src/ProcessLogicalPagination/FunctionYaml/HdrDsq/template.ejs +25 -0
- package/src/TemplateManager/src/ProcessLogicalPagination/FunctionYaml/HdrSqs/data.js +169 -0
- package/src/TemplateManager/src/ProcessLogicalPagination/FunctionYaml/HdrSqs/template.ejs +25 -0
- package/src/TemplateManager/src/ProcessLogicalPagination/Handler/HdrDsq/data.js +48 -0
- package/src/TemplateManager/src/ProcessLogicalPagination/Handler/HdrDsq/template.ejs +163 -0
- package/src/TemplateManager/src/ProcessLogicalPagination/Handler/HdrSqs/data.js +48 -0
- package/src/TemplateManager/src/ProcessLogicalPagination/Handler/HdrSqs/template.ejs +146 -0
- package/src/TemplateManager/src/ProcessLogicalPagination/mainFunction/data.js +48 -0
- package/src/TemplateManager/src/ProcessLogicalPagination/mainFunction/template.ejs +212 -0
- package/src/TemplateManager/src/ResourceYaml/CreateSourceData.js +2 -2
- package/src/TemplateManager/src/ResourceYaml/dynamodb/processLogicalAndFindData.js +2 -2
- package/src/TemplateManager/src/ResourceYaml/sns-in-sqs/defaultSnsInSqsForFindDataAndProcessLogical.js +27 -12
- package/src/TemplateManager/src/ResourceYaml/sns-out/data.js +1 -1
- package/src/TemplateManager/src/ResourceYaml/sns-out/defaultSnsOutForFindDataAndProcessLogical.js +75 -0
- package/src/TemplateManager/src/TranslateIdReq/ProcessingTranslateIds/functionYaml/data.js +95 -0
- package/src/TemplateManager/src/TranslateIdReq/ProcessingTranslateIds/functionYaml/template.ejs +30 -0
- package/src/TemplateManager/src/TranslateIdReq/ProcessingTranslateIds/handler/dataHdrDsq.js +52 -0
- package/src/TemplateManager/src/TranslateIdReq/ProcessingTranslateIds/handler/template.ejs +194 -0
- package/src/TemplateManager/src/TranslateIdReq/ProcessingTranslateIds/mainFunction/data.js +48 -0
- package/src/TemplateManager/src/TranslateIdReq/ProcessingTranslateIds/mainFunction/template.ejs +330 -0
- package/src/TemplateManager/src/TranslateIdReq/ProcessingTranslateIds/sns-out/data.js +47 -0
- package/src/TemplateManager/src/TranslateIdReq/ProcessingTranslateIds/sqs-sns/data.js +58 -0
- package/src/TemplateManager/src/TranslateIdReq/ProcessingTranslateIds/sqs-sns/template.ejs +43 -0
- package/src/TemplateManager/src/TranslateIdReq/TranslateIds/functionYaml/HdrDsq/data.js +116 -0
- package/src/TemplateManager/src/TranslateIdReq/TranslateIds/functionYaml/HdrSqs/data.js +116 -0
- package/src/TemplateManager/src/TranslateIdReq/TranslateIds/handler/HdrDsq/data.js +60 -0
- package/src/TemplateManager/src/TranslateIdReq/TranslateIds/handler/HdrDsq/template.ejs +157 -0
- package/src/TemplateManager/src/TranslateIdReq/TranslateIds/handler/HdrSqs/data.js +59 -0
- package/src/TemplateManager/src/TranslateIdReq/TranslateIds/handler/HdrSqs/template.ejs +175 -0
- package/src/TemplateManager/src/TranslateIdReq/TranslateIds/mainFunction/data.js +61 -0
- package/src/TemplateManager/src/TranslateIdReq/TranslateIds/mainFunction/template.ejs +155 -0
- package/src/TemplateManager/src/TranslateIdReq/TranslateIds/resourceYaml/dynamoDb/data.js +120 -0
- package/src/TemplateManager/src/TranslateIdReq/TranslateIds/resourceYaml/sns-sqs/data.js +75 -0
- package/src/TemplateManager/src/UpdateRelationshipSchema/updateRalationshipComplete/functionYaml/data.js +2 -2
- package/src/TemplateManager/src/UpdateRelationshipSchema/updateRalationshipComplete/sns-out/data.js +1 -1
- package/src/TemplateManager/src/UpdateRelationshipSchema/updateRelationship/functionYaml/HdrApi/data.js +10 -3
- package/src/TemplateManager/src/UpdateRelationshipSchema/updateRelationship/functionYaml/HdrDsq/data.js +6 -4
- package/src/TemplateManager/src/UpdateRelationshipSchema/updateRelationship/functionYaml/HdrInv/data.js +11 -1
- package/src/TemplateManager/src/UpdateRelationshipSchema/updateRelationship/functionYaml/HdrSqs/data.js +7 -5
- package/src/TemplateManager/src/externalService/LambdaRole/data.js +150 -32
- package/src/TemplateManager/src/externalService/LambdaRole/template.ejs +16 -15
- package/src/TemplateManager/src/externalService/SnsTopicSubscriotions/data.js +35 -6
- package/src/TemplateManager/src/externalService/SnsTopicSubscriotions/template.ejs +3 -4
- package/src/TemplateManager/src/libs/Consts.js +122 -11
- package/src/TemplateManager/src/PerActionEndpoint/Handler/testRequest.json +0 -5
|
@@ -26,28 +26,42 @@ const {
|
|
|
26
26
|
getAllLocalRelationshipSchemas,
|
|
27
27
|
} = require('@izara_project/izara-core-library-service-schemas/src/GetObjectSchema');
|
|
28
28
|
|
|
29
|
-
|
|
30
29
|
const {
|
|
31
30
|
getGraphServiceNameFromGraphServerTagWithCache
|
|
32
31
|
} = require('@izara_project/izara-core-library-service-schemas/src/ServiceConfig');
|
|
33
32
|
|
|
34
33
|
const { createSource } = require("../../SourceManager/src/CreateSource");
|
|
35
34
|
const { deleteFileInDir } = require("../../SourceManager/src/Utils");
|
|
36
|
-
// create handler
|
|
37
|
-
const
|
|
38
|
-
const
|
|
39
|
-
const
|
|
40
|
-
const
|
|
35
|
+
// create Get handler per ObjectType
|
|
36
|
+
const perActionGetHdrInvData = require("./PerActionEndpoint/Handler/HdrInv/data");
|
|
37
|
+
const perActionGetHdrApiData = require("./PerActionEndpoint/Handler/HdrApi/data");
|
|
38
|
+
const perActionGetHdrSqsData = require("./PerActionEndpoint/Handler/HdrSqs/data");
|
|
39
|
+
const perActionGetHdrDsqData = require("./PerActionEndpoint/Handler/HdrDsq/data");
|
|
41
40
|
|
|
42
41
|
// create Main funcion
|
|
43
42
|
const mainFunctionGetData = require('./PerActionEndpoint/MainFunction/Get/data');
|
|
43
|
+
const mainFunctionUpdateData = require('./PerActionEndpoint/MainFunction/Update/data');
|
|
44
|
+
const mainFunctionCreateData = require('./PerActionEndpoint/MainFunction/Create/data');
|
|
44
45
|
|
|
45
46
|
// create function.yaml
|
|
46
|
-
const
|
|
47
|
-
const
|
|
48
|
-
const
|
|
49
|
-
const
|
|
50
|
-
|
|
47
|
+
const functionYamlDataHdrInv = require('./PerActionEndpoint/FunctionYaml/HdrInv/data');
|
|
48
|
+
const functionYamlDataHdrApi = require('./PerActionEndpoint/FunctionYaml/HdrApi/data');
|
|
49
|
+
const functionYamlDataHdrSqs = require('./PerActionEndpoint/FunctionYaml/HdrSqs/data');
|
|
50
|
+
const functionYamlDataHdrDsq = require('./PerActionEndpoint/FunctionYaml/HdrDsq/data');
|
|
51
|
+
|
|
52
|
+
// out updateNode Complete
|
|
53
|
+
const functionYamlOutUpdateComplete = require('./OutPerActionComplete/OutUpdateComplete/functionYaml/data');
|
|
54
|
+
const outUpdateCompleteHandler = require('./OutPerActionComplete/OutUpdateComplete/handler/data');
|
|
55
|
+
const outUpdateCompleteMainFunction = require('./OutPerActionComplete/OutUpdateComplete/mainFunction/data');
|
|
56
|
+
const outUpdateCompleteSnsInSqs = require('./OutPerActionComplete/OutUpdateComplete/sqs-in-sns/data');
|
|
57
|
+
const outUpdateCompleteSnsOut = require('./OutPerActionComplete/OutUpdateComplete/sns-out/data');
|
|
58
|
+
|
|
59
|
+
// out CreateNode Complete
|
|
60
|
+
const functionYamlOutCreateComplete = require('./OutPerActionComplete/OutCreateComplete/functionYaml/data');
|
|
61
|
+
const snsInSqsCreateObjectComplete = require('./OutPerActionComplete/OutCreateComplete/sns-in-sqs/data');
|
|
62
|
+
const snsOutCreateObjectComplete = require('./OutPerActionComplete/OutCreateComplete/sns-out/data')
|
|
63
|
+
const createObjectCompleteHandler = require('./OutPerActionComplete/OutCreateComplete/handler/data');
|
|
64
|
+
const createObjectCompleteMainFunction = require('./OutPerActionComplete/OutCreateComplete/mainFunction/data');
|
|
51
65
|
|
|
52
66
|
// create Main resource
|
|
53
67
|
const createSourceDataDynamoDB = require('./ResourceYaml/dynamodb/mainResourcePerObjectSchemaData');
|
|
@@ -56,6 +70,7 @@ const createSourceSnsAndSqs = require('./ResourceYaml/sns-in-sqs/snsAndSqsPerAct
|
|
|
56
70
|
const createDataForCreateSourceSnsOut = require('./ResourceYaml/sns-out/data')
|
|
57
71
|
const createFindDataAndProcessLogicalDefaultSnsInSqs = require('./ResourceYaml/sns-in-sqs/defaultSnsInSqsForFindDataAndProcessLogical');
|
|
58
72
|
const createAwaitingMultipleStepDynamoDbData = require('./ResourceYaml/dynamodb/awaitingMultipleStepData');
|
|
73
|
+
const createDefaultSnsOutForFindDataAndProcessLogical = require('./ResourceYaml/sns-out/defaultSnsOutForFindDataAndProcessLogical')
|
|
59
74
|
|
|
60
75
|
// create External Service
|
|
61
76
|
const createExternalLambdaRole = require('./externalService/LambdaRole/data');
|
|
@@ -117,6 +132,40 @@ const createRelationshipCompleteHandlerFunction = require('./CreateRelationship/
|
|
|
117
132
|
const createRelationshipCompleteMainFunction = require('./CreateRelationship/createRelationshipComplete/mainFunction/data');
|
|
118
133
|
const createRelationshipCompleteSnsInSqs = require('./CreateRelationship/createRelationshipComplete/sns-in-sqs/data');
|
|
119
134
|
const createRelationshipCompleteSnsOut = require('./CreateRelationship/createRelationshipComplete/sns-out/data');
|
|
135
|
+
|
|
136
|
+
// TranslateIdRequest
|
|
137
|
+
const createTranslateIdsCacheMainTable = require('./TranslateIdReq/TranslateIds/resourceYaml/dynamoDb/data');
|
|
138
|
+
const createTranslateIdsRequestMainFunction = require('./TranslateIdReq/TranslateIds/mainFunction/data');
|
|
139
|
+
const createTranslateIdsHandlerDsq = require('./TranslateIdReq/TranslateIds/handler/HdrDsq/data');
|
|
140
|
+
const createTranslateIdsHandlerSqs = require('./TranslateIdReq/TranslateIds/handler/HdrSqs/data');
|
|
141
|
+
const createTranslateIdFunctionYamlHdrDsq = require('./TranslateIdReq/TranslateIds/functionYaml/HdrDsq/data');
|
|
142
|
+
const createTranslateIdFunctionYamlHdrSqs = require('./TranslateIdReq/TranslateIds/functionYaml/HdrSqs/data');
|
|
143
|
+
const createSnsAndSqsTranslateId = require('./TranslateIdReq/TranslateIds/resourceYaml/sns-sqs/data');
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
// processTranslateIds
|
|
147
|
+
const createProcessTranslateIdsCompleteSnsOut = require('./TranslateIdReq/ProcessingTranslateIds/sns-out/data');
|
|
148
|
+
const createTranslateIdsProcessSnsQueue = require('./TranslateIdReq/ProcessingTranslateIds/sqs-sns/data');
|
|
149
|
+
const createTranslateIdsProcessFunctionYaml = require('./TranslateIdReq/ProcessingTranslateIds/functionYaml/data');
|
|
150
|
+
const createTranslateIdsProcessHandler = require('./TranslateIdReq/ProcessingTranslateIds/handler/dataHdrDsq');
|
|
151
|
+
const createTranslateIdsProcessMainFunction = require('./TranslateIdReq/ProcessingTranslateIds/mainFunction/data')
|
|
152
|
+
// findData
|
|
153
|
+
const createFindDataFunctionYaml = require('./FindData/FindDataYaml/data');
|
|
154
|
+
const createFindDataHandler = require('./FindData/Handler/data');
|
|
155
|
+
const createFindDataMainFunction = require('./FindData/mainFunction/data');
|
|
156
|
+
|
|
157
|
+
// processLogical
|
|
158
|
+
const createProcessLogicalHandler = require('./ProcessLogical/Handler/data');
|
|
159
|
+
const createProcessLogicalMainFunction = require('./ProcessLogical/mainFunction/data');
|
|
160
|
+
const createProcessLogicalFunctionYaml = require('./ProcessLogical/ProcessLogicalYaml/data');
|
|
161
|
+
|
|
162
|
+
// processLogicalPaginate
|
|
163
|
+
const createProcessLogicalPaginateHandlerDsq = require('./ProcessLogicalPagination/Handler/HdrDsq/data')
|
|
164
|
+
const createProcessLogicalPaginateHandlerSqs = require('./ProcessLogicalPagination/Handler/HdrSqs/data')
|
|
165
|
+
const createProcessLogicalPaginateMainFunction = require('./ProcessLogicalPagination/mainFunction/data');
|
|
166
|
+
const createProcessLogicalPaginateFunctionYamlHdrDsq = require('./ProcessLogicalPagination/FunctionYaml/HdrDsq/data')
|
|
167
|
+
const createProcessLogicalPaginateFunctionYamlHdrSqs = require('./ProcessLogicalPagination/FunctionYaml/HdrSqs/data')
|
|
168
|
+
|
|
120
169
|
/**
|
|
121
170
|
*
|
|
122
171
|
* get template and send to
|
|
@@ -138,14 +187,15 @@ async function generateCodeWithTemplate(_izContext, objSchemaPath) {
|
|
|
138
187
|
|
|
139
188
|
// define path for store yml file
|
|
140
189
|
const GENERATECODE_SOURCE_PATH = {
|
|
141
|
-
appYaml: join(saveFilePath, `../sls_yaml/generatedCode
|
|
142
|
-
resourceYaml: join(saveFilePath, `../../resource/sls_yaml/generatedCode
|
|
143
|
-
lambdaPerAction: join(saveFilePath, '../src/generatedCode/ObjectTypePerActionEndpoint/
|
|
190
|
+
appYaml: join(saveFilePath, `../sls_yaml/generatedCode/`),
|
|
191
|
+
resourceYaml: join(saveFilePath, `../../resource/sls_yaml/generatedCode/`),
|
|
192
|
+
lambdaPerAction: join(saveFilePath, '../src/generatedCode/ObjectTypePerActionEndpoint/'),
|
|
144
193
|
externalService: join(saveFilePath, '../initial_setup/generatedCode/source/'),
|
|
145
194
|
resourceLocation: join(saveFilePath, 'src/generatedCode/perAction/source/'),
|
|
146
195
|
lamdaPerCombindActionPath: join(saveFilePath, `/generatedCode/lamdaPerCombindAction/source/`), // test
|
|
147
|
-
lambdaPerObjectTypePath: join(saveFilePath, `/generatedCode/lambdaPerObjectType
|
|
148
|
-
updateRelationship: join(saveFilePath, `../src/generatedCode/RelationshipPerAction
|
|
196
|
+
lambdaPerObjectTypePath: join(saveFilePath, `/generatedCode/lambdaPerObjectType/`), // test
|
|
197
|
+
updateRelationship: join(saveFilePath, `../src/generatedCode/RelationshipPerAction/`),
|
|
198
|
+
translateId: join(saveFilePath, `../src/generatedCode/TranslateId/`)
|
|
149
199
|
};
|
|
150
200
|
|
|
151
201
|
|
|
@@ -153,6 +203,11 @@ async function generateCodeWithTemplate(_izContext, objSchemaPath) {
|
|
|
153
203
|
let allObjSchemas = await getAllLocalObjectSchemasWithHierarchy(_izContext, objSchemaPath);
|
|
154
204
|
// _izContext.logger.debug("allObjSchemas: ", allObjSchemas)
|
|
155
205
|
|
|
206
|
+
const findDataFunctionYaml = await createFindDataFunctionYaml(_izContext, allObjSchemas, saveFilePath);
|
|
207
|
+
const processLogicalFunctionYaml = await createProcessLogicalFunctionYaml(_izContext, allObjSchemas, saveFilePath);
|
|
208
|
+
const processLogicalPaginateFunctionYamlHdrDsq = await createProcessLogicalPaginateFunctionYamlHdrDsq(_izContext, allObjSchemas, saveFilePath);
|
|
209
|
+
const processLogicalPaginateFunctionYamlHdrSqs = await createProcessLogicalPaginateFunctionYamlHdrSqs(_izContext, allObjSchemas, saveFilePath);
|
|
210
|
+
|
|
156
211
|
const allObjectRelationships = await getAllLocalRelationshipSchemas(_izContext, objSchemaPath);
|
|
157
212
|
|
|
158
213
|
// _izContext.logger.debug("allObjectRelationships: ", allObjectRelationships)
|
|
@@ -175,57 +230,79 @@ async function generateCodeWithTemplate(_izContext, objSchemaPath) {
|
|
|
175
230
|
|
|
176
231
|
// create External service
|
|
177
232
|
const createFunctionIamRole = await createExternalLambdaRole(_izContext, allObjSchemas.records, allObjectRelationships, saveFilePath);
|
|
178
|
-
const createSnsSubscription = await createExternalSnsSubscriptions(_izContext, allObjectRelationships, saveFilePath);
|
|
179
|
-
|
|
233
|
+
const createSnsSubscription = await createExternalSnsSubscriptions(_izContext, allObjectRelationships, allObjSchemas.records, saveFilePath);
|
|
180
234
|
for (let objectSchema of allObjSchemas.records) {
|
|
181
|
-
|
|
182
235
|
// generate handler perAction
|
|
183
|
-
const createSourceHdrInv =
|
|
184
|
-
const createSourceHdrApi =
|
|
185
|
-
const createSourceHdrSqs =
|
|
186
|
-
const createSourceHdrDsq =
|
|
236
|
+
const createSourceHdrInv = perActionGetHdrInvData(_izContext, objectSchema, saveFilePath);
|
|
237
|
+
const createSourceHdrApi = perActionGetHdrApiData(_izContext, objectSchema, saveFilePath);
|
|
238
|
+
const createSourceHdrSqs = perActionGetHdrSqsData(_izContext, objectSchema, saveFilePath);
|
|
239
|
+
const createSourceHdrDsq = perActionGetHdrDsqData(_izContext, objectSchema, saveFilePath);
|
|
187
240
|
|
|
188
241
|
// wrap Handler Function
|
|
189
242
|
const createSourceHandler = [...createSourceHdrInv, ...createSourceHdrApi, ...createSourceHdrSqs, ...createSourceHdrDsq];
|
|
190
243
|
|
|
191
244
|
// generate main function
|
|
192
245
|
const createMainFunctionGet = await mainFunctionGetData(_izContext, objectSchema, saveFilePath);
|
|
246
|
+
const createMainFunctionUpdate = await mainFunctionUpdateData(_izContext, objectSchema, saveFilePath)
|
|
247
|
+
const createMainFunctionCreate = await mainFunctionCreateData(_izContext, objectSchema, saveFilePath);
|
|
193
248
|
|
|
249
|
+
const createMainFunction = [...createMainFunctionGet, ...createMainFunctionUpdate, ...createMainFunctionCreate]
|
|
194
250
|
// generate functionYaml File
|
|
195
|
-
const
|
|
196
|
-
const
|
|
197
|
-
const
|
|
198
|
-
const
|
|
251
|
+
const createFunctionYamlHdrInv = functionYamlDataHdrInv(_izContext, objectSchema, saveFilePath);
|
|
252
|
+
const createFunctionYamlHdrApi = functionYamlDataHdrApi(_izContext, objectSchema, saveFilePath);
|
|
253
|
+
const createFunctionYamlHdrSqs = functionYamlDataHdrSqs(_izContext, objectSchema, saveFilePath);
|
|
254
|
+
const createFunctionYamlHdrDsq = functionYamlDataHdrDsq(_izContext, objectSchema, saveFilePath);
|
|
199
255
|
|
|
200
256
|
// wrapMain Function
|
|
201
|
-
const createFunctionYaml = [...
|
|
257
|
+
const createFunctionYaml = [...createFunctionYamlHdrApi, ...createFunctionYamlHdrDsq, ...createFunctionYamlHdrInv, ...createFunctionYamlHdrSqs];
|
|
202
258
|
|
|
203
259
|
// generate Resource ..via dynamoDb sns-in-sqs sns-put
|
|
204
260
|
const createResourceDynamo = createSourceDataDynamoDB(_izContext, objectSchema, saveFilePath);
|
|
205
261
|
const createResourceSnsInSqs = createSourceSnsAndSqs(_izContext, objectSchema, saveFilePath);
|
|
206
|
-
const createResourceSnsOut = createDataForCreateSourceSnsOut(_izContext, objectSchema, saveFilePath)
|
|
262
|
+
const createResourceSnsOut = createDataForCreateSourceSnsOut(_izContext, objectSchema, saveFilePath);
|
|
263
|
+
|
|
264
|
+
// translateIdsMainFunction
|
|
265
|
+
const translateIdsMainFunction = await createTranslateIdsRequestMainFunction(_izContext, objectSchema, saveFilePath);
|
|
207
266
|
|
|
208
267
|
// wrap main Resource
|
|
209
268
|
const createMainResource = [...createResourceDynamo, ...createResourceSnsInSqs, ...createResourceSnsOut];
|
|
210
269
|
|
|
270
|
+
|
|
211
271
|
createSourceParams = createSourceParams.concat([
|
|
212
272
|
// ...createSourceMainResourcesObjectSchema,
|
|
213
273
|
...createSourceHandler, // create handler function
|
|
214
|
-
...
|
|
274
|
+
...createMainFunction, // create main function
|
|
215
275
|
...createFunctionYaml, // create function.yaml
|
|
216
276
|
...createMainResource, // create resource yaml
|
|
277
|
+
...translateIdsMainFunction,
|
|
217
278
|
]);
|
|
218
279
|
|
|
219
280
|
// console.log("createSourceParams after concat: ", createSourceParams);
|
|
220
281
|
}
|
|
282
|
+
// create UpdateNodeComplete
|
|
283
|
+
const createFunctionYamlOutUpdateNodeComplete = functionYamlOutUpdateComplete(_izContext, saveFilePath);
|
|
284
|
+
const createOutUpdateCompleteHandler = outUpdateCompleteHandler(_izContext, saveFilePath);
|
|
285
|
+
const createOutUpdateCompleteMainFunction = outUpdateCompleteMainFunction(_izContext, saveFilePath);
|
|
286
|
+
const createOutUpdateCompleteSnsInSqs = outUpdateCompleteSnsInSqs(_izContext, saveFilePath);
|
|
287
|
+
const createOutUpdateCompleteSnsOut = outUpdateCompleteSnsOut(_izContext, saveFilePath);
|
|
288
|
+
|
|
289
|
+
const createOutUpdateComplete = [...createFunctionYamlOutUpdateNodeComplete, ...createOutUpdateCompleteHandler, ...createOutUpdateCompleteMainFunction, ...createOutUpdateCompleteSnsInSqs, ...createOutUpdateCompleteSnsOut]
|
|
221
290
|
|
|
291
|
+
// create CreateNodeComplete
|
|
292
|
+
const createFunctionYamlCreateObjectComplete = functionYamlOutCreateComplete(_izContext, saveFilePath);
|
|
293
|
+
const createSnsInSqsCreateObjectComplete = snsInSqsCreateObjectComplete(_izContext, saveFilePath)
|
|
294
|
+
const createSnsOutCreateObjectComplete = snsOutCreateObjectComplete(_izContext, saveFilePath);
|
|
295
|
+
const createHandlerCreateObjectComplete = createObjectCompleteHandler(_izContext, saveFilePath);
|
|
296
|
+
const createMainFunctionCreateObjectComplete = createObjectCompleteMainFunction(_izContext, saveFilePath)
|
|
297
|
+
|
|
298
|
+
const createCreateNodeComplete = [...createFunctionYamlCreateObjectComplete, ...createSnsInSqsCreateObjectComplete, ...createSnsOutCreateObjectComplete, ...createHandlerCreateObjectComplete, ...createMainFunctionCreateObjectComplete]
|
|
222
299
|
|
|
223
300
|
// create default data resource such as findData ProcessLogical and awaitingMultipleStep
|
|
224
301
|
const createResourceFindDataAndProcessLogical = createDefaultSourceDataDynamoDB(_izContext, saveFilePath);
|
|
225
302
|
const createResourceAwaitingMultipleStep = createAwaitingMultipleStepDynamoDbData(_izContext, saveFilePath);
|
|
226
303
|
const createResourceDefaultSnsInSqsFindDataAndProcessLogical = createFindDataAndProcessLogicalDefaultSnsInSqs(_izContext, saveFilePath);
|
|
227
|
-
|
|
228
|
-
const createMainResourceDefault = [...createResourceFindDataAndProcessLogical, ...createResourceDefaultSnsInSqsFindDataAndProcessLogical, ...createResourceAwaitingMultipleStep];
|
|
304
|
+
const createResourceDefaultSnsOutFindDataAndProcessLogical = createDefaultSnsOutForFindDataAndProcessLogical(_izContext, saveFilePath)
|
|
305
|
+
const createMainResourceDefault = [...createResourceFindDataAndProcessLogical, ...createResourceDefaultSnsInSqsFindDataAndProcessLogical, ...createResourceAwaitingMultipleStep, ...createResourceDefaultSnsOutFindDataAndProcessLogical];
|
|
229
306
|
|
|
230
307
|
// create function yaml for update relationshipSchema per handler
|
|
231
308
|
const createYamlUpdateRelationshipSchemaHdrSqs = createUpdateRelationshipFunctionYamlHdrSqs(_izContext, saveFilePath);
|
|
@@ -251,10 +328,8 @@ async function generateCodeWithTemplate(_izContext, objSchemaPath) {
|
|
|
251
328
|
const createUpdateRelationshipSchemaSnsIn = createUpdateRelationshipSchemaSnsInSqsResource(_izContext, saveFilePath);
|
|
252
329
|
// const createUpdateRelationshipSchemaSnsOut = createUpdateRelationshipSchemaSnsOutResource(_izContext, saveFilePath);
|
|
253
330
|
|
|
254
|
-
const createResourceUpdateRelationshipSchema = [...createUpdateRelationshipSchemaSnsIn,];
|
|
255
|
-
|
|
256
331
|
// warp function updateRelationshipSchemaData
|
|
257
|
-
const createUpdateRelationshipSchemaData = [...createUpdateRelationshipSchemaPerAction, ...
|
|
332
|
+
const createUpdateRelationshipSchemaData = [...createUpdateRelationshipSchemaPerAction, ...createUpdateRelationshipSchemaSnsIn, ...createMainFunctionUpdateRelationshipSchema, ...createYamlUpdateRelationshipSchema]
|
|
258
333
|
|
|
259
334
|
// create UpdateRelationshipComplete Main Function
|
|
260
335
|
const createUpdateRelationshipSchemaCompleteMain = createUpdateRelationshipSchemaCompleteMainFunction(_izContext, saveFilePath);
|
|
@@ -273,6 +348,8 @@ async function generateCodeWithTemplate(_izContext, objSchemaPath) {
|
|
|
273
348
|
const createUpdateRelationshipSchemaCompleteData = [...createUpdateRelationshipSchemaCompleteFunctionYaml, ...createUpdateRelationshipSchemaCompleteHandler, ...createUpdateRelationshipSchemaCompleteSnsInSqsResource,
|
|
274
349
|
...createUpdateRelationshipSchemaCompleteSnsOutResource, ...createUpdateRelationshipSchemaCompleteMain];
|
|
275
350
|
|
|
351
|
+
const updateRelationshipSchemaDatas = [...createUpdateRelationshipSchemaData, ...createUpdateRelationshipSchemaCompleteData];
|
|
352
|
+
|
|
276
353
|
// create CreateRelationshipSchema MainFunction
|
|
277
354
|
const createCreateRelationshipSchemaMainFunction = createRelationshipSchemaMain(_izContext, saveFilePath);
|
|
278
355
|
|
|
@@ -299,16 +376,60 @@ async function generateCodeWithTemplate(_izContext, objSchemaPath) {
|
|
|
299
376
|
const createRelationshipCompleteMain = createRelationshipCompleteMainFunction(_izContext, saveFilePath);
|
|
300
377
|
const createRelationshipCompleteQueue = createRelationshipCompleteSnsInSqs(_izContext, saveFilePath);
|
|
301
378
|
const createRelationshipCompleteOutsomething = createRelationshipCompleteSnsOut(_izContext, saveFilePath)
|
|
302
|
-
const
|
|
379
|
+
const createCreateRelationshipComplete = [...createRelationshipCompleteFunctionYml, ...createRelationshipCompleteHandler, ...createRelationshipCompleteMain, ...createRelationshipCompleteQueue, ...createRelationshipCompleteOutsomething]
|
|
303
380
|
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
381
|
+
const createRelationshipSchemaDatas = [...createCreateRelationshipComplete, ...createCreateRelationshipData];
|
|
382
|
+
|
|
383
|
+
const translateIdsCacheIdsMainTable = createTranslateIdsCacheMainTable(_izContext, saveFilePath);
|
|
384
|
+
const translateIdsHandlerFunctionDsq = createTranslateIdsHandlerDsq(_izContext, saveFilePath);
|
|
385
|
+
const translateIdsHandlerFunctionSqs = createTranslateIdsHandlerSqs(_izContext, saveFilePath);
|
|
386
|
+
const translateIdsFunctionYamlDsq = createTranslateIdFunctionYamlHdrDsq(_izContext, saveFilePath);
|
|
387
|
+
const translateIdsFunctionYamlSqs = createTranslateIdFunctionYamlHdrSqs(_izContext, saveFilePath);
|
|
388
|
+
const translateIdsSnsAndSqsResourceQueue = createSnsAndSqsTranslateId(_izContext, saveFilePath);
|
|
389
|
+
|
|
390
|
+
const createTranslateIdsResourece = [...translateIdsCacheIdsMainTable, ...translateIdsHandlerFunctionDsq, ...translateIdsHandlerFunctionSqs,
|
|
391
|
+
...translateIdsFunctionYamlDsq, ...translateIdsFunctionYamlSqs, ...translateIdsSnsAndSqsResourceQueue
|
|
392
|
+
]
|
|
393
|
+
|
|
394
|
+
const translateIdsProcessingSnsOut = createProcessTranslateIdsCompleteSnsOut(_izContext, saveFilePath);
|
|
395
|
+
const translateIdsProcessingQueue = createTranslateIdsProcessSnsQueue(_izContext, saveFilePath);
|
|
396
|
+
const translateIdsProcessingFunctionYaml = createTranslateIdsProcessFunctionYaml(_izContext, saveFilePath);
|
|
397
|
+
const translateIdsProcessingHandler = createTranslateIdsProcessHandler(_izContext, saveFilePath);
|
|
398
|
+
const translateIdsProcessingMainFunction = createTranslateIdsProcessMainFunction(_izContext, saveFilePath);
|
|
399
|
+
const createTranslateIdsProcessing = [...translateIdsProcessingQueue, ...translateIdsProcessingFunctionYaml, ...translateIdsProcessingHandler, ...translateIdsProcessingMainFunction, ...translateIdsProcessingSnsOut]
|
|
400
|
+
|
|
401
|
+
const findDataHandlerSqs = createFindDataHandler(_izContext, saveFilePath);
|
|
402
|
+
const findDataMainFunction = await createFindDataMainFunction(_izContext, saveFilePath);
|
|
403
|
+
|
|
404
|
+
const findDataResource = [findDataHandlerSqs, findDataMainFunction, findDataFunctionYaml];
|
|
405
|
+
|
|
406
|
+
const processLogicalHandler = createProcessLogicalHandler(_izContext, saveFilePath);
|
|
407
|
+
const processLogicalMainFunction = createProcessLogicalMainFunction(_izContext, saveFilePath)
|
|
408
|
+
|
|
409
|
+
const processLogicalResource = [processLogicalHandler, processLogicalMainFunction, processLogicalFunctionYaml]
|
|
410
|
+
|
|
411
|
+
const processLogicalPaginateHandlerDsq = createProcessLogicalPaginateHandlerDsq(_izContext, saveFilePath);
|
|
412
|
+
const processLogicalPaginateHandlerSqs = createProcessLogicalPaginateHandlerSqs(_izContext, saveFilePath);
|
|
413
|
+
const processLogicalPaginateMainFunction = createProcessLogicalPaginateMainFunction(_izContext, saveFilePath);
|
|
414
|
+
const processLogicalPaginateResource = [processLogicalPaginateFunctionYamlHdrDsq, processLogicalPaginateFunctionYamlHdrSqs, processLogicalPaginateHandlerDsq, processLogicalPaginateHandlerSqs, processLogicalPaginateMainFunction]
|
|
415
|
+
|
|
416
|
+
createSourceParams.push(...createMainResourceDefault,
|
|
310
417
|
createSnsSubscription,
|
|
418
|
+
createFunctionIamRole,
|
|
419
|
+
...createOutUpdateComplete,
|
|
420
|
+
...createCreateNodeComplete,
|
|
421
|
+
...findDataResource,
|
|
422
|
+
...processLogicalResource,
|
|
423
|
+
...processLogicalPaginateResource
|
|
311
424
|
);
|
|
425
|
+
if (allObjectRelationships.length) {
|
|
426
|
+
createSourceParams.push(
|
|
427
|
+
...updateRelationshipSchemaDatas,
|
|
428
|
+
...createRelationshipSchemaDatas,
|
|
429
|
+
...createTranslateIdsResourece,
|
|
430
|
+
...createTranslateIdsProcessing,
|
|
431
|
+
)
|
|
432
|
+
}
|
|
312
433
|
// console.log("createSourceParams", createSourceParams);
|
|
313
434
|
|
|
314
435
|
// delete file .yml before start to prevent confilct of data
|
|
@@ -0,0 +1,98 @@
|
|
|
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 <http://www.gnu.org/licenses/>.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
'use strict';
|
|
19
|
+
const path = require('path');
|
|
20
|
+
const fs = require('fs');
|
|
21
|
+
|
|
22
|
+
const { ACTIONS, HANDLER, STORAGE_TYPES } = require('@izara_project/izara-core-library-service-schemas/src/Consts')
|
|
23
|
+
const { getGraphServiceNameFromGraphServerTagWithCache, getServiceNameWithCache } = require('@izara_project/izara-core-library-service-schemas/src/ServiceConfig')
|
|
24
|
+
const { firstLetterLowerCase: lowerCase, firstLetterUpperCase: upperCase } = require("../../../../../MainLibs/src/Utils")
|
|
25
|
+
const { DEFAULT_HANDLER_PER_ACTION, createIamRole, resourceNames, RESOURCE_CLASSES, DEFAULT_LAMBDA_ROLE_PER_ACTION, SOURCE_PATH, externalResourceName, getGraphServiceNameFromAllRelSchema, FUNCTION_NAME, SAVE_FILE_NAME, getGraphServiceNameFromObjectSchema, defaultIamRolePerAction, SQS_RESOURCE, SNS_RESOURCE, DYNAMO_RESOURCE } = require("../../../libs/Consts");
|
|
26
|
+
|
|
27
|
+
const templatePath = path.join(__dirname, './template.ejs');
|
|
28
|
+
|
|
29
|
+
function data(_izContext, srcPath) {
|
|
30
|
+
return [createFunctionYamlOutUpdateComplete(_izContext, srcPath)]
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function createFunctionYamlOutUpdateComplete(_izContext, srcPath) {
|
|
34
|
+
let functionName = upperCase(FUNCTION_NAME.createObjectComplete)
|
|
35
|
+
let additionalResourcePermission = defaultIamRolePerAction();
|
|
36
|
+
let awaitingTables = ["AwaitingMultipleSteps", "AwaitingMultipleStepByPending"]
|
|
37
|
+
let handlerType = upperCase(HANDLER.hdrSqs)
|
|
38
|
+
|
|
39
|
+
additionalResourcePermission.push(
|
|
40
|
+
createIamRole(
|
|
41
|
+
{
|
|
42
|
+
[RESOURCE_CLASSES.sqs]: [
|
|
43
|
+
SQS_RESOURCE.deleteMessage,
|
|
44
|
+
SQS_RESOURCE.deleteMessageBatch,
|
|
45
|
+
SQS_RESOURCE.getQueueAttributes,
|
|
46
|
+
SQS_RESOURCE.getQueueUrl,
|
|
47
|
+
SQS_RESOURCE.receiveMessage,
|
|
48
|
+
SQS_RESOURCE.sendMessage
|
|
49
|
+
],
|
|
50
|
+
[RESOURCE_CLASSES.sns]: [
|
|
51
|
+
SNS_RESOURCE.publish,
|
|
52
|
+
SNS_RESOURCE.subscription
|
|
53
|
+
]
|
|
54
|
+
},
|
|
55
|
+
[
|
|
56
|
+
resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName)),
|
|
57
|
+
resourceNames(RESOURCE_CLASSES.sqs, upperCase(functionName) + "DLQ"),
|
|
58
|
+
resourceNames(RESOURCE_CLASSES.sns, "In" + upperCase(functionName)),
|
|
59
|
+
resourceNames(RESOURCE_CLASSES.sns, "Out" + upperCase(functionName)),
|
|
60
|
+
]
|
|
61
|
+
)
|
|
62
|
+
)
|
|
63
|
+
|
|
64
|
+
additionalResourcePermission.push(
|
|
65
|
+
createIamRole(
|
|
66
|
+
{
|
|
67
|
+
[RESOURCE_CLASSES.dynamoDbTable]: [
|
|
68
|
+
DYNAMO_RESOURCE.updateItem,
|
|
69
|
+
DYNAMO_RESOURCE.query,
|
|
70
|
+
DYNAMO_RESOURCE.deleteItem
|
|
71
|
+
]
|
|
72
|
+
},
|
|
73
|
+
awaitingTables.map(tableName =>
|
|
74
|
+
resourceNames(RESOURCE_CLASSES.dynamoDbTable, tableName)
|
|
75
|
+
)
|
|
76
|
+
)
|
|
77
|
+
)
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
return {
|
|
81
|
+
templatePath: templatePath,
|
|
82
|
+
templateData: {
|
|
83
|
+
functionName,
|
|
84
|
+
handlerType,
|
|
85
|
+
additionalResourcePermission,
|
|
86
|
+
resourceLocation: SOURCE_PATH.resourceLocationPerAction
|
|
87
|
+
},
|
|
88
|
+
setting: {
|
|
89
|
+
savePath: path.join(srcPath, SOURCE_PATH.appYaml),
|
|
90
|
+
saveFileName: SAVE_FILE_NAME.functionPerActionYaml,
|
|
91
|
+
fileExtension: '.yml',
|
|
92
|
+
isAppend: true
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
module.exports = data
|
package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/functionYaml/template.ejs
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
<%_ const join = require('path').join; _%>
|
|
2
|
+
<%- firstLetterUpperCase(functionName) %>:
|
|
3
|
+
handler: <%- join(resourceLocation, `${firstLetterUpperCase(functionName)}_${firstLetterUpperCase(handlerType)}.main`)%>
|
|
4
|
+
name: ${self:custom.iz_resourcePrefix}<%- firstLetterUpperCase(functionName) %>
|
|
5
|
+
events:
|
|
6
|
+
- sqs:
|
|
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}<%-firstLetterUpperCase(functionName) %>"]}}} # functionName of callingFlow
|
|
11
|
+
- body: {"MessageAttributes":{"callingFlow":{"Value":[{"exists":false}]}}}
|
|
12
|
+
iamRoleStatements:
|
|
13
|
+
<%_ additionalResourcePermission.forEach(resourcePermission => { _%>
|
|
14
|
+
- Effect: <%- resourcePermission.effect %>
|
|
15
|
+
Action:
|
|
16
|
+
<%_ Object.keys(resourcePermission.action).forEach(resourcePerAction => { _%>
|
|
17
|
+
<%_ resourcePermission.action[resourcePerAction].forEach(permission => { _%>
|
|
18
|
+
- <%- resourcePerAction %>:<%- permission %>
|
|
19
|
+
<%_}) _%>
|
|
20
|
+
<%_ }) _%>
|
|
21
|
+
Resource:
|
|
22
|
+
<%_ resourcePermission.resource.forEach(resource => { _%>
|
|
23
|
+
- <%- resource %>
|
|
24
|
+
<%_ }) _%>
|
|
25
|
+
<%_}) _%>
|
|
26
|
+
#<#<%- functionName %><%- handlerType %>IamRole#>
|
|
27
|
+
#<#/<%- functionName %><%- handlerType %>IamRole#>
|
|
28
|
+
<%_ function firstLetterUpperCase(text){
|
|
29
|
+
return text.charAt(0).toUpperCase() + text.slice(1)
|
|
30
|
+
} _%>
|
|
31
|
+
<%_ function firstLetterLowerCase(str) {
|
|
32
|
+
return str.charAt(0).toLowerCase() + str.slice(1)
|
|
33
|
+
} _%>
|
|
@@ -0,0 +1,59 @@
|
|
|
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 <http://www.gnu.org/licenses/>.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
'use strict';
|
|
19
|
+
const path = require('path');
|
|
20
|
+
const fs = require('fs');
|
|
21
|
+
|
|
22
|
+
const { ACTIONS, HANDLER } = require('@izara_project/izara-core-library-service-schemas/src/Consts')
|
|
23
|
+
|
|
24
|
+
const { firstLetterLowerCase: lowerCase, firstLetterUpperCase: upperCase, firstLetterUpperCase } = require("../../../../../MainLibs/src/Utils")
|
|
25
|
+
const { DEFAULT_HANDLER_PER_ACTION, SOURCE_PATH, FUNCTION_NAME } = require("../../../libs/Consts");
|
|
26
|
+
|
|
27
|
+
const templatePath = path.join(__dirname, "./template.ejs")
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* receive objectSchema
|
|
31
|
+
* create data for hdrInv template
|
|
32
|
+
*
|
|
33
|
+
* @return {{ templatePath, templateData, setting } }
|
|
34
|
+
*/
|
|
35
|
+
function data(_izContext, srcPath) {
|
|
36
|
+
const createSourceParams = createParamForCreateSource(srcPath)
|
|
37
|
+
return [createSourceParams];
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
function createParamForCreateSource(srcPath) {
|
|
41
|
+
const functionName = FUNCTION_NAME.createObjectComplete;
|
|
42
|
+
|
|
43
|
+
return {
|
|
44
|
+
templatePath: templatePath,
|
|
45
|
+
templateData: {
|
|
46
|
+
functionName,
|
|
47
|
+
queueName: upperCase(functionName),
|
|
48
|
+
functionName
|
|
49
|
+
},
|
|
50
|
+
setting: {
|
|
51
|
+
savePath: path.join(srcPath, SOURCE_PATH.lambdaPerAction),
|
|
52
|
+
saveFileName: `${upperCase(functionName)}_${upperCase(HANDLER.hdrSqs)}`,
|
|
53
|
+
fileExtension: ".js",
|
|
54
|
+
isAppend: false
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
module.exports = data
|
|
@@ -0,0 +1,129 @@
|
|
|
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 <http://www.gnu.org/licenses/>.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
'use strict';
|
|
19
|
+
|
|
20
|
+
// const AWS = require('aws-sdk');
|
|
21
|
+
// const sqs = new AWS.SQS({ apiVersion: '2012-11-05' });
|
|
22
|
+
|
|
23
|
+
const izara = require("@izara_project/izara-middleware");
|
|
24
|
+
const middleware = izara.middlewareHandler;
|
|
25
|
+
const izaraShared = require('@izara_project/izara-shared');
|
|
26
|
+
const recordHandlerSharedLib = izaraShared.recordHandlerSharedLib
|
|
27
|
+
const callingFlowSharedLib = izaraShared.callingFlowSharedLib;
|
|
28
|
+
|
|
29
|
+
const <%- functionName %> = require('./<%- firstLetterUpperCase(functionName) %>_Main');
|
|
30
|
+
const Logger = require('@izara_project/izara-core-library-logger');
|
|
31
|
+
// validate event properties in body.Message of sqs event
|
|
32
|
+
middleware.setValidatorSchema(recordHandlerSharedLib.baseValidatorSchema());
|
|
33
|
+
// set schema for record.body.Message
|
|
34
|
+
let perRecordsValidatorSchema = {
|
|
35
|
+
type: "object",
|
|
36
|
+
required: [
|
|
37
|
+
'returnValue',
|
|
38
|
+
'status',
|
|
39
|
+
'errorFounds'
|
|
40
|
+
],
|
|
41
|
+
properties: {
|
|
42
|
+
returnValue: {
|
|
43
|
+
type: 'object',
|
|
44
|
+
},
|
|
45
|
+
status: {
|
|
46
|
+
type: 'string',
|
|
47
|
+
},
|
|
48
|
+
errorFounds: {
|
|
49
|
+
type: 'array',
|
|
50
|
+
default: []
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
// set schema for record.body.MessageAttributes
|
|
56
|
+
// const messageAttributeValidatorSchema = {
|
|
57
|
+
// type: "object",
|
|
58
|
+
// required: ['msgAtrrParam1', 'msgAtrrParam2'],
|
|
59
|
+
// properties: {
|
|
60
|
+
// msgAtrrParam1: {
|
|
61
|
+
// type: "string"
|
|
62
|
+
// },
|
|
63
|
+
// msgAtrrParam2: {
|
|
64
|
+
// type: "object"
|
|
65
|
+
// }
|
|
66
|
+
// }
|
|
67
|
+
// };
|
|
68
|
+
|
|
69
|
+
perRecordsValidatorSchema = callingFlowSharedLib.addOptionalPassBackPropertiesToValidatorSchema(perRecordsValidatorSchema); // is Ok passBackProperties
|
|
70
|
+
module.exports.main = middleware.wrap(async (event, context, callback) => {
|
|
71
|
+
|
|
72
|
+
try {
|
|
73
|
+
|
|
74
|
+
let recordPromises = [];
|
|
75
|
+
|
|
76
|
+
// loop each record and send to mainFunction
|
|
77
|
+
await Promise.all(event.Records.map(async record => { // promise.all for map() function
|
|
78
|
+
|
|
79
|
+
let passOnProperties = []
|
|
80
|
+
record._izContext.logger.debug('record ReceiveMsgOutHdrSqs', record);
|
|
81
|
+
|
|
82
|
+
//validate message (and MessageAttributes)
|
|
83
|
+
await recordHandlerSharedLib.validateRecord(
|
|
84
|
+
record, // one record will send to mainFunction
|
|
85
|
+
"<%- firstLetterUpperCase(queueName) %>", // queue name that need to retry or send to dlq
|
|
86
|
+
perRecordsValidatorSchema, // schema for record.Message
|
|
87
|
+
// messageAttributeValidatorSchema // ----- for msgAttr default is null -> do not send this parameter if not want to validate msgAtt
|
|
88
|
+
);
|
|
89
|
+
|
|
90
|
+
// add argument (to invoke lambda) to passOnProperties[]
|
|
91
|
+
passOnProperties.push(record.body.Message.returnValue)
|
|
92
|
+
passOnProperties.push(record.body.Message.status)
|
|
93
|
+
passOnProperties.push(record.body.Message.errorFounds)
|
|
94
|
+
passOnProperties.push(callingFlowSharedLib.addPassBackPropertiesToPassOnProperties(record.body.Message)) // is Ok PassBackProperties
|
|
95
|
+
// passOnProperties.push(callingFlowSharedLib.addCallingFlowToPassOnProperties(record.body.Message)) // is Ok callinfFlow
|
|
96
|
+
record._izContext.logger.debug('passOnProperties in handler', passOnProperties);
|
|
97
|
+
|
|
98
|
+
// call recordHandlerSharedLib.recordHandler with 3 parameters and return promise(resolve)
|
|
99
|
+
let recordPromise = recordHandlerSharedLib.recordHandler(
|
|
100
|
+
record, // one record will send to mainFunction
|
|
101
|
+
<%- functionName %>.<%- functionName %>, // mainFunction that need to invoke.
|
|
102
|
+
"<%- firstLetterUpperCase(queueName) %>", // queue name that need to retry or send to dlq
|
|
103
|
+
passOnProperties, // all parameters that mainFunction needed.
|
|
104
|
+
);
|
|
105
|
+
record._izContext.logger.debug('after recordPromise in handler');
|
|
106
|
+
recordPromises.push(recordPromise); // push promise to recordPromises
|
|
107
|
+
}))
|
|
108
|
+
|
|
109
|
+
Logger.debug('before Promise.all(recordPromises) in handler');
|
|
110
|
+
try {
|
|
111
|
+
// --- main await all promises
|
|
112
|
+
await Promise.all(recordPromises); // await all promises
|
|
113
|
+
|
|
114
|
+
return event.Records // return all for local testing
|
|
115
|
+
|
|
116
|
+
} catch {
|
|
117
|
+
Logger.debug('Promise.all(recordPromises) in handler threw error (at least one record did no resolve)');
|
|
118
|
+
}
|
|
119
|
+
Logger.debug('after Promise.all(recordPromises) in handler');
|
|
120
|
+
|
|
121
|
+
} catch (err) {
|
|
122
|
+
Logger.error('Unhandled Error, updateNodeCompleteHdrSqs: ', err);
|
|
123
|
+
throw (err);
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
<%_ function firstLetterUpperCase(text){
|
|
128
|
+
return text.charAt(0).toUpperCase()+ text.slice(1)
|
|
129
|
+
} _%>
|