@izara_project/izara-market-library-service-schemas 1.0.5 → 1.0.6
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 +155 -0
- package/src/TemplateManager/src/GenerateCode(Old).js +1 -1
- package/src/TemplateManager/src/GenerateCode.js +147 -32
- 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 +0 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/handler/template.ejs +0 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/mainFunction/createObjectComplete_main.js +172 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/mainFunction/data.js +0 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/mainFunction/template.ejs +0 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/sns-in-sqs/data.js +0 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/sns-in-sqs/template.ejs +0 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/sns-out/data.js +0 -0
- package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/sns-out/template.ejs +0 -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 +21 -1
- 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 +51 -2
- package/src/TemplateManager/src/PerActionEndpoint/FunctionYaml/HdrSqs/data.js +25 -3
- package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrApi/data.js +4 -6
- 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 +581 -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 +421 -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 +149 -28
- 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,21 +26,22 @@ 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
47
|
const functionGetYamlDataHdrInv = require('./PerActionEndpoint/FunctionYaml/HdrInv/data');
|
|
@@ -48,6 +49,16 @@ const functionGetYamlDataHdrApi = require('./PerActionEndpoint/FunctionYaml/HdrA
|
|
|
48
49
|
const functionGetYamlDataHdrSqs = require('./PerActionEndpoint/FunctionYaml/HdrSqs/data');
|
|
49
50
|
const functionGetYamlDataHdrDsq = require('./PerActionEndpoint/FunctionYaml/HdrDsq/data');
|
|
50
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
|
+
|
|
51
62
|
|
|
52
63
|
// create Main resource
|
|
53
64
|
const createSourceDataDynamoDB = require('./ResourceYaml/dynamodb/mainResourcePerObjectSchemaData');
|
|
@@ -56,6 +67,7 @@ const createSourceSnsAndSqs = require('./ResourceYaml/sns-in-sqs/snsAndSqsPerAct
|
|
|
56
67
|
const createDataForCreateSourceSnsOut = require('./ResourceYaml/sns-out/data')
|
|
57
68
|
const createFindDataAndProcessLogicalDefaultSnsInSqs = require('./ResourceYaml/sns-in-sqs/defaultSnsInSqsForFindDataAndProcessLogical');
|
|
58
69
|
const createAwaitingMultipleStepDynamoDbData = require('./ResourceYaml/dynamodb/awaitingMultipleStepData');
|
|
70
|
+
const createDefaultSnsOutForFindDataAndProcessLogical = require('./ResourceYaml/sns-out/defaultSnsOutForFindDataAndProcessLogical')
|
|
59
71
|
|
|
60
72
|
// create External Service
|
|
61
73
|
const createExternalLambdaRole = require('./externalService/LambdaRole/data');
|
|
@@ -117,6 +129,40 @@ const createRelationshipCompleteHandlerFunction = require('./CreateRelationship/
|
|
|
117
129
|
const createRelationshipCompleteMainFunction = require('./CreateRelationship/createRelationshipComplete/mainFunction/data');
|
|
118
130
|
const createRelationshipCompleteSnsInSqs = require('./CreateRelationship/createRelationshipComplete/sns-in-sqs/data');
|
|
119
131
|
const createRelationshipCompleteSnsOut = require('./CreateRelationship/createRelationshipComplete/sns-out/data');
|
|
132
|
+
|
|
133
|
+
// TranslateIdRequest
|
|
134
|
+
const createTranslateIdsCacheMainTable = require('./TranslateIdReq/TranslateIds/resourceYaml/dynamoDb/data');
|
|
135
|
+
const createTranslateIdsRequestMainFunction = require('./TranslateIdReq/TranslateIds/mainFunction/data');
|
|
136
|
+
const createTranslateIdsHandlerDsq = require('./TranslateIdReq/TranslateIds/handler/HdrDsq/data');
|
|
137
|
+
const createTranslateIdsHandlerSqs = require('./TranslateIdReq/TranslateIds/handler/HdrSqs/data');
|
|
138
|
+
const createTranslateIdFunctionYamlHdrDsq = require('./TranslateIdReq/TranslateIds/functionYaml/HdrDsq/data');
|
|
139
|
+
const createTranslateIdFunctionYamlHdrSqs = require('./TranslateIdReq/TranslateIds/functionYaml/HdrSqs/data');
|
|
140
|
+
const createSnsAndSqsTranslateId = require('./TranslateIdReq/TranslateIds/resourceYaml/sns-sqs/data');
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
// processTranslateIds
|
|
144
|
+
const createProcessTranslateIdsCompleteSnsOut = require('./TranslateIdReq/ProcessingTranslateIds/sns-out/data');
|
|
145
|
+
const createTranslateIdsProcessSnsQueue = require('./TranslateIdReq/ProcessingTranslateIds/sqs-sns/data');
|
|
146
|
+
const createTranslateIdsProcessFunctionYaml = require('./TranslateIdReq/ProcessingTranslateIds/functionYaml/data');
|
|
147
|
+
const createTranslateIdsProcessHandler = require('./TranslateIdReq/ProcessingTranslateIds/handler/dataHdrDsq');
|
|
148
|
+
const createTranslateIdsProcessMainFunction = require('./TranslateIdReq/ProcessingTranslateIds/mainFunction/data')
|
|
149
|
+
// findData
|
|
150
|
+
const createFindDataFunctionYaml = require('./FindData/FindDataYaml/data');
|
|
151
|
+
const createFindDataHandler = require('./FindData/Handler/data');
|
|
152
|
+
const createFindDataMainFunction = require('./FindData/mainFunction/data');
|
|
153
|
+
|
|
154
|
+
// processLogical
|
|
155
|
+
const createProcessLogicalHandler = require('./ProcessLogical/Handler/data');
|
|
156
|
+
const createProcessLogicalMainFunction = require('./ProcessLogical/mainFunction/data');
|
|
157
|
+
const createProcessLogicalFunctionYaml = require('./ProcessLogical/ProcessLogicalYaml/data');
|
|
158
|
+
|
|
159
|
+
// processLogicalPaginate
|
|
160
|
+
const createProcessLogicalPaginateHandlerDsq = require('./ProcessLogicalPagination/Handler/HdrDsq/data')
|
|
161
|
+
const createProcessLogicalPaginateHandlerSqs = require('./ProcessLogicalPagination/Handler/HdrSqs/data')
|
|
162
|
+
const createProcessLogicalPaginateMainFunction = require('./ProcessLogicalPagination/mainFunction/data');
|
|
163
|
+
const createProcessLogicalPaginateFunctionYamlHdrDsq = require('./ProcessLogicalPagination/FunctionYaml/HdrDsq/data')
|
|
164
|
+
const createProcessLogicalPaginateFunctionYamlHdrSqs = require('./ProcessLogicalPagination/FunctionYaml/HdrSqs/data')
|
|
165
|
+
|
|
120
166
|
/**
|
|
121
167
|
*
|
|
122
168
|
* get template and send to
|
|
@@ -138,14 +184,15 @@ async function generateCodeWithTemplate(_izContext, objSchemaPath) {
|
|
|
138
184
|
|
|
139
185
|
// define path for store yml file
|
|
140
186
|
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/
|
|
187
|
+
appYaml: join(saveFilePath, `../sls_yaml/generatedCode/`),
|
|
188
|
+
resourceYaml: join(saveFilePath, `../../resource/sls_yaml/generatedCode/`),
|
|
189
|
+
lambdaPerAction: join(saveFilePath, '../src/generatedCode/ObjectTypePerActionEndpoint/'),
|
|
144
190
|
externalService: join(saveFilePath, '../initial_setup/generatedCode/source/'),
|
|
145
191
|
resourceLocation: join(saveFilePath, 'src/generatedCode/perAction/source/'),
|
|
146
192
|
lamdaPerCombindActionPath: join(saveFilePath, `/generatedCode/lamdaPerCombindAction/source/`), // test
|
|
147
|
-
lambdaPerObjectTypePath: join(saveFilePath, `/generatedCode/lambdaPerObjectType
|
|
148
|
-
updateRelationship: join(saveFilePath, `../src/generatedCode/RelationshipPerAction
|
|
193
|
+
lambdaPerObjectTypePath: join(saveFilePath, `/generatedCode/lambdaPerObjectType/`), // test
|
|
194
|
+
updateRelationship: join(saveFilePath, `../src/generatedCode/RelationshipPerAction/`),
|
|
195
|
+
translateId: join(saveFilePath, `../src/generatedCode/TranslateId/`)
|
|
149
196
|
};
|
|
150
197
|
|
|
151
198
|
|
|
@@ -153,6 +200,11 @@ async function generateCodeWithTemplate(_izContext, objSchemaPath) {
|
|
|
153
200
|
let allObjSchemas = await getAllLocalObjectSchemasWithHierarchy(_izContext, objSchemaPath);
|
|
154
201
|
// _izContext.logger.debug("allObjSchemas: ", allObjSchemas)
|
|
155
202
|
|
|
203
|
+
const findDataFunctionYaml = await createFindDataFunctionYaml(_izContext, allObjSchemas, saveFilePath);
|
|
204
|
+
const processLogicalFunctionYaml = await createProcessLogicalFunctionYaml(_izContext, allObjSchemas, saveFilePath);
|
|
205
|
+
const processLogicalPaginateFunctionYamlHdrDsq = await createProcessLogicalPaginateFunctionYamlHdrDsq(_izContext, allObjSchemas, saveFilePath);
|
|
206
|
+
const processLogicalPaginateFunctionYamlHdrSqs = await createProcessLogicalPaginateFunctionYamlHdrSqs(_izContext, allObjSchemas, saveFilePath);
|
|
207
|
+
|
|
156
208
|
const allObjectRelationships = await getAllLocalRelationshipSchemas(_izContext, objSchemaPath);
|
|
157
209
|
|
|
158
210
|
// _izContext.logger.debug("allObjectRelationships: ", allObjectRelationships)
|
|
@@ -175,22 +227,23 @@ async function generateCodeWithTemplate(_izContext, objSchemaPath) {
|
|
|
175
227
|
|
|
176
228
|
// create External service
|
|
177
229
|
const createFunctionIamRole = await createExternalLambdaRole(_izContext, allObjSchemas.records, allObjectRelationships, saveFilePath);
|
|
178
|
-
const createSnsSubscription = await createExternalSnsSubscriptions(_izContext, allObjectRelationships, saveFilePath);
|
|
179
|
-
|
|
230
|
+
const createSnsSubscription = await createExternalSnsSubscriptions(_izContext, allObjectRelationships, allObjSchemas.records, saveFilePath);
|
|
180
231
|
for (let objectSchema of allObjSchemas.records) {
|
|
181
|
-
|
|
182
232
|
// generate handler perAction
|
|
183
|
-
const createSourceHdrInv =
|
|
184
|
-
const createSourceHdrApi =
|
|
185
|
-
const createSourceHdrSqs =
|
|
186
|
-
const createSourceHdrDsq =
|
|
233
|
+
const createSourceHdrInv = perActionGetHdrInvData(_izContext, objectSchema, saveFilePath);
|
|
234
|
+
const createSourceHdrApi = perActionGetHdrApiData(_izContext, objectSchema, saveFilePath);
|
|
235
|
+
const createSourceHdrSqs = perActionGetHdrSqsData(_izContext, objectSchema, saveFilePath);
|
|
236
|
+
const createSourceHdrDsq = perActionGetHdrDsqData(_izContext, objectSchema, saveFilePath);
|
|
187
237
|
|
|
188
238
|
// wrap Handler Function
|
|
189
239
|
const createSourceHandler = [...createSourceHdrInv, ...createSourceHdrApi, ...createSourceHdrSqs, ...createSourceHdrDsq];
|
|
190
240
|
|
|
191
241
|
// generate main function
|
|
192
242
|
const createMainFunctionGet = await mainFunctionGetData(_izContext, objectSchema, saveFilePath);
|
|
243
|
+
const createMainFunctionUpdate = await mainFunctionUpdateData(_izContext, objectSchema, saveFilePath)
|
|
244
|
+
const createMainFunctionCreate = await mainFunctionCreateData(_izContext, objectSchema, saveFilePath);
|
|
193
245
|
|
|
246
|
+
const createMainFunction = [...createMainFunctionGet, ...createMainFunctionUpdate, ...createMainFunctionCreate]
|
|
194
247
|
// generate functionYaml File
|
|
195
248
|
const createFunctionGetYamlHdrInv = functionGetYamlDataHdrInv(_izContext, objectSchema, saveFilePath);
|
|
196
249
|
const createFunctionGetYamlHdrApi = functionGetYamlDataHdrApi(_izContext, objectSchema, saveFilePath);
|
|
@@ -203,29 +256,47 @@ async function generateCodeWithTemplate(_izContext, objSchemaPath) {
|
|
|
203
256
|
// generate Resource ..via dynamoDb sns-in-sqs sns-put
|
|
204
257
|
const createResourceDynamo = createSourceDataDynamoDB(_izContext, objectSchema, saveFilePath);
|
|
205
258
|
const createResourceSnsInSqs = createSourceSnsAndSqs(_izContext, objectSchema, saveFilePath);
|
|
206
|
-
const createResourceSnsOut = createDataForCreateSourceSnsOut(_izContext, objectSchema, saveFilePath)
|
|
259
|
+
const createResourceSnsOut = createDataForCreateSourceSnsOut(_izContext, objectSchema, saveFilePath);
|
|
260
|
+
|
|
261
|
+
// translateIdsMainFunction
|
|
262
|
+
const translateIdsMainFunction = await createTranslateIdsRequestMainFunction(_izContext, objectSchema, saveFilePath);
|
|
207
263
|
|
|
208
264
|
// wrap main Resource
|
|
209
265
|
const createMainResource = [...createResourceDynamo, ...createResourceSnsInSqs, ...createResourceSnsOut];
|
|
210
266
|
|
|
267
|
+
|
|
211
268
|
createSourceParams = createSourceParams.concat([
|
|
212
269
|
// ...createSourceMainResourcesObjectSchema,
|
|
213
270
|
...createSourceHandler, // create handler function
|
|
214
|
-
...
|
|
271
|
+
...createMainFunction, // create main function
|
|
215
272
|
...createFunctionYaml, // create function.yaml
|
|
216
273
|
...createMainResource, // create resource yaml
|
|
274
|
+
...translateIdsMainFunction,
|
|
217
275
|
]);
|
|
218
276
|
|
|
219
277
|
// console.log("createSourceParams after concat: ", createSourceParams);
|
|
220
278
|
}
|
|
279
|
+
// create UpdateNodeComplete
|
|
280
|
+
const createFunctionYamlOutUpdateNodeComplete = functionYamlOutUpdateComplete(_izContext, saveFilePath);
|
|
281
|
+
const createOutUpdateCompleteHandler = outUpdateCompleteHandler(_izContext, saveFilePath);
|
|
282
|
+
const createOutUpdateCompleteMainFunction = outUpdateCompleteMainFunction(_izContext, saveFilePath);
|
|
283
|
+
const createOutUpdateCompleteSnsInSqs = outUpdateCompleteSnsInSqs(_izContext, saveFilePath);
|
|
284
|
+
const createOutUpdateCompleteSnsOut = outUpdateCompleteSnsOut(_izContext, saveFilePath);
|
|
285
|
+
|
|
286
|
+
const createOutUpdateComplete = [...createFunctionYamlOutUpdateNodeComplete, ...createOutUpdateCompleteHandler, ...createOutUpdateCompleteMainFunction, ...createOutUpdateCompleteSnsInSqs, ...createOutUpdateCompleteSnsOut]
|
|
221
287
|
|
|
288
|
+
// create CreateNodeComplete
|
|
289
|
+
const createFunctionYamlOutCreateNodeComplete = functionYamlOutCreateComplete(_izContext, saveFilePath);
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
const createCreateNodeComplete = [...createFunctionYamlOutCreateNodeComplete]
|
|
222
293
|
|
|
223
294
|
// create default data resource such as findData ProcessLogical and awaitingMultipleStep
|
|
224
295
|
const createResourceFindDataAndProcessLogical = createDefaultSourceDataDynamoDB(_izContext, saveFilePath);
|
|
225
296
|
const createResourceAwaitingMultipleStep = createAwaitingMultipleStepDynamoDbData(_izContext, saveFilePath);
|
|
226
297
|
const createResourceDefaultSnsInSqsFindDataAndProcessLogical = createFindDataAndProcessLogicalDefaultSnsInSqs(_izContext, saveFilePath);
|
|
227
|
-
|
|
228
|
-
const createMainResourceDefault = [...createResourceFindDataAndProcessLogical, ...createResourceDefaultSnsInSqsFindDataAndProcessLogical, ...createResourceAwaitingMultipleStep];
|
|
298
|
+
const createResourceDefaultSnsOutFindDataAndProcessLogical = createDefaultSnsOutForFindDataAndProcessLogical(_izContext, saveFilePath)
|
|
299
|
+
const createMainResourceDefault = [...createResourceFindDataAndProcessLogical, ...createResourceDefaultSnsInSqsFindDataAndProcessLogical, ...createResourceAwaitingMultipleStep, ...createResourceDefaultSnsOutFindDataAndProcessLogical];
|
|
229
300
|
|
|
230
301
|
// create function yaml for update relationshipSchema per handler
|
|
231
302
|
const createYamlUpdateRelationshipSchemaHdrSqs = createUpdateRelationshipFunctionYamlHdrSqs(_izContext, saveFilePath);
|
|
@@ -251,10 +322,8 @@ async function generateCodeWithTemplate(_izContext, objSchemaPath) {
|
|
|
251
322
|
const createUpdateRelationshipSchemaSnsIn = createUpdateRelationshipSchemaSnsInSqsResource(_izContext, saveFilePath);
|
|
252
323
|
// const createUpdateRelationshipSchemaSnsOut = createUpdateRelationshipSchemaSnsOutResource(_izContext, saveFilePath);
|
|
253
324
|
|
|
254
|
-
const createResourceUpdateRelationshipSchema = [...createUpdateRelationshipSchemaSnsIn,];
|
|
255
|
-
|
|
256
325
|
// warp function updateRelationshipSchemaData
|
|
257
|
-
const createUpdateRelationshipSchemaData = [...createUpdateRelationshipSchemaPerAction, ...
|
|
326
|
+
const createUpdateRelationshipSchemaData = [...createUpdateRelationshipSchemaPerAction, ...createUpdateRelationshipSchemaSnsIn, ...createMainFunctionUpdateRelationshipSchema, ...createYamlUpdateRelationshipSchema]
|
|
258
327
|
|
|
259
328
|
// create UpdateRelationshipComplete Main Function
|
|
260
329
|
const createUpdateRelationshipSchemaCompleteMain = createUpdateRelationshipSchemaCompleteMainFunction(_izContext, saveFilePath);
|
|
@@ -273,6 +342,8 @@ async function generateCodeWithTemplate(_izContext, objSchemaPath) {
|
|
|
273
342
|
const createUpdateRelationshipSchemaCompleteData = [...createUpdateRelationshipSchemaCompleteFunctionYaml, ...createUpdateRelationshipSchemaCompleteHandler, ...createUpdateRelationshipSchemaCompleteSnsInSqsResource,
|
|
274
343
|
...createUpdateRelationshipSchemaCompleteSnsOutResource, ...createUpdateRelationshipSchemaCompleteMain];
|
|
275
344
|
|
|
345
|
+
const updateRelationshipSchemaDatas = [...createUpdateRelationshipSchemaData, ...createUpdateRelationshipSchemaCompleteData];
|
|
346
|
+
|
|
276
347
|
// create CreateRelationshipSchema MainFunction
|
|
277
348
|
const createCreateRelationshipSchemaMainFunction = createRelationshipSchemaMain(_izContext, saveFilePath);
|
|
278
349
|
|
|
@@ -299,16 +370,60 @@ async function generateCodeWithTemplate(_izContext, objSchemaPath) {
|
|
|
299
370
|
const createRelationshipCompleteMain = createRelationshipCompleteMainFunction(_izContext, saveFilePath);
|
|
300
371
|
const createRelationshipCompleteQueue = createRelationshipCompleteSnsInSqs(_izContext, saveFilePath);
|
|
301
372
|
const createRelationshipCompleteOutsomething = createRelationshipCompleteSnsOut(_izContext, saveFilePath)
|
|
302
|
-
const
|
|
373
|
+
const createCreateRelationshipComplete = [...createRelationshipCompleteFunctionYml, ...createRelationshipCompleteHandler, ...createRelationshipCompleteMain, ...createRelationshipCompleteQueue, ...createRelationshipCompleteOutsomething]
|
|
303
374
|
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
375
|
+
const createRelationshipSchemaDatas = [...createCreateRelationshipComplete, ...createCreateRelationshipData];
|
|
376
|
+
|
|
377
|
+
const translateIdsCacheIdsMainTable = createTranslateIdsCacheMainTable(_izContext, saveFilePath);
|
|
378
|
+
const translateIdsHandlerFunctionDsq = createTranslateIdsHandlerDsq(_izContext, saveFilePath);
|
|
379
|
+
const translateIdsHandlerFunctionSqs = createTranslateIdsHandlerSqs(_izContext, saveFilePath);
|
|
380
|
+
const translateIdsFunctionYamlDsq = createTranslateIdFunctionYamlHdrDsq(_izContext, saveFilePath);
|
|
381
|
+
const translateIdsFunctionYamlSqs = createTranslateIdFunctionYamlHdrSqs(_izContext, saveFilePath);
|
|
382
|
+
const translateIdsSnsAndSqsResourceQueue = createSnsAndSqsTranslateId(_izContext, saveFilePath);
|
|
383
|
+
|
|
384
|
+
const createTranslateIdsResourece = [...translateIdsCacheIdsMainTable, ...translateIdsHandlerFunctionDsq, ...translateIdsHandlerFunctionSqs,
|
|
385
|
+
...translateIdsFunctionYamlDsq, ...translateIdsFunctionYamlSqs, ...translateIdsSnsAndSqsResourceQueue
|
|
386
|
+
]
|
|
387
|
+
|
|
388
|
+
const translateIdsProcessingSnsOut = createProcessTranslateIdsCompleteSnsOut(_izContext, saveFilePath);
|
|
389
|
+
const translateIdsProcessingQueue = createTranslateIdsProcessSnsQueue(_izContext, saveFilePath);
|
|
390
|
+
const translateIdsProcessingFunctionYaml = createTranslateIdsProcessFunctionYaml(_izContext, saveFilePath);
|
|
391
|
+
const translateIdsProcessingHandler = createTranslateIdsProcessHandler(_izContext, saveFilePath);
|
|
392
|
+
const translateIdsProcessingMainFunction = createTranslateIdsProcessMainFunction(_izContext, saveFilePath);
|
|
393
|
+
const createTranslateIdsProcessing = [...translateIdsProcessingQueue, ...translateIdsProcessingFunctionYaml, ...translateIdsProcessingHandler, ...translateIdsProcessingMainFunction, ...translateIdsProcessingSnsOut]
|
|
394
|
+
|
|
395
|
+
const findDataHandlerSqs = createFindDataHandler(_izContext, saveFilePath);
|
|
396
|
+
const findDataMainFunction = await createFindDataMainFunction(_izContext, saveFilePath);
|
|
397
|
+
|
|
398
|
+
const findDataResource = [findDataHandlerSqs, findDataMainFunction, findDataFunctionYaml];
|
|
399
|
+
|
|
400
|
+
const processLogicalHandler = createProcessLogicalHandler(_izContext, saveFilePath);
|
|
401
|
+
const processLogicalMainFunction = createProcessLogicalMainFunction(_izContext, saveFilePath)
|
|
402
|
+
|
|
403
|
+
const processLogicalResource = [processLogicalHandler, processLogicalMainFunction, processLogicalFunctionYaml]
|
|
404
|
+
|
|
405
|
+
const processLogicalPaginateHandlerDsq = createProcessLogicalPaginateHandlerDsq(_izContext, saveFilePath);
|
|
406
|
+
const processLogicalPaginateHandlerSqs = createProcessLogicalPaginateHandlerSqs(_izContext, saveFilePath);
|
|
407
|
+
const processLogicalPaginateMainFunction = createProcessLogicalPaginateMainFunction(_izContext, saveFilePath);
|
|
408
|
+
const processLogicalPaginateResource = [processLogicalPaginateFunctionYamlHdrDsq, processLogicalPaginateFunctionYamlHdrSqs, processLogicalPaginateHandlerDsq, processLogicalPaginateHandlerSqs, processLogicalPaginateMainFunction]
|
|
409
|
+
|
|
410
|
+
createSourceParams.push(...createMainResourceDefault,
|
|
310
411
|
createSnsSubscription,
|
|
412
|
+
createFunctionIamRole,
|
|
413
|
+
...createOutUpdateComplete,
|
|
414
|
+
// ...createCreateNodeComplete,
|
|
415
|
+
...findDataResource,
|
|
416
|
+
...processLogicalResource,
|
|
417
|
+
...processLogicalPaginateResource
|
|
311
418
|
);
|
|
419
|
+
if (allObjectRelationships.length) {
|
|
420
|
+
createSourceParams.push(
|
|
421
|
+
...updateRelationshipSchemaDatas,
|
|
422
|
+
...createRelationshipSchemaDatas,
|
|
423
|
+
...createTranslateIdsResourece,
|
|
424
|
+
...createTranslateIdsProcessing,
|
|
425
|
+
)
|
|
426
|
+
}
|
|
312
427
|
// console.log("createSourceParams", createSourceParams);
|
|
313
428
|
|
|
314
429
|
// 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.createNodeComplete)
|
|
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
|
+
} _%>
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Copyright (C) 2021 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
|
+
'use strict';
|
|
18
|
+
const asyncFlowSharedLib = require('@izara_project/izara-shared/src/AsyncFlowSharedLib');
|
|
19
|
+
const dynamodbSharedLib = require('@izara_project/izara-shared/src/DynamodbSharedLib');
|
|
20
|
+
const snsSharedLib = require('@izara_project/izara-shared/src/SnsSharedLib');
|
|
21
|
+
const sns = require('@izara_project/izara-core-library-external-request/src/resources/Sns');
|
|
22
|
+
const callingFlowSharedLib = require('@izara_project/izara-shared/src/CallingFlowSharedLib');
|
|
23
|
+
const _ = require('lodash');
|
|
24
|
+
const hash = require("object-hash")
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
const PREFIX = {
|
|
28
|
+
CREATE_OBJECT_ASYNC: "createObjectAsync",
|
|
29
|
+
CREATE_OBJECT_ASYNC_COMPLETE: "createObjectAsyncComplete"
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
*
|
|
34
|
+
* @param {*} _izContext
|
|
35
|
+
* @param {*} returnValue
|
|
36
|
+
* @param {*} status
|
|
37
|
+
* @param {*} errorsFounds
|
|
38
|
+
* @param {*} graphServiceTag
|
|
39
|
+
* @param {*} passBackProperties
|
|
40
|
+
* @param {*} callingFlowConfig
|
|
41
|
+
returnValue = {
|
|
42
|
+
queryResult: returnCreateNode,
|
|
43
|
+
objType,
|
|
44
|
+
objInstance,
|
|
45
|
+
relationships,
|
|
46
|
+
settings
|
|
47
|
+
}
|
|
48
|
+
*/
|
|
49
|
+
module.exports.createObjectComplete = async (
|
|
50
|
+
_izContext,
|
|
51
|
+
returnValue,
|
|
52
|
+
status,
|
|
53
|
+
errorsFound,
|
|
54
|
+
graphServiceTag,
|
|
55
|
+
passBackProperties,
|
|
56
|
+
callingFlowConfig
|
|
57
|
+
) => {
|
|
58
|
+
try {
|
|
59
|
+
_izContext.logger.debug("function createObjectComplete:", {
|
|
60
|
+
returnValue,
|
|
61
|
+
status,
|
|
62
|
+
errorsFound,
|
|
63
|
+
graphServiceTag,
|
|
64
|
+
passBackProperties,
|
|
65
|
+
callingFlowConfig
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
let errorFounds = [];
|
|
69
|
+
|
|
70
|
+
if (_.isEmpty(returnValue)) {
|
|
71
|
+
_izContext.logger.debug("message callingFlowProperties is empty");
|
|
72
|
+
throw new NoRetryError("message not an object")
|
|
73
|
+
};
|
|
74
|
+
// validate.
|
|
75
|
+
if (!returnValue.hasOwnProperty("queryResult")) {
|
|
76
|
+
errorFounds.push("message is not have property queryResult, should be not happen");
|
|
77
|
+
};
|
|
78
|
+
if (!returnValue.hasOwnProperty("objType")) {
|
|
79
|
+
errorFounds.push("message is not have property objType, should be not happen");
|
|
80
|
+
};
|
|
81
|
+
if (!returnValue.hasOwnProperty("objInstance")) {
|
|
82
|
+
errorFounds.push("message is not have property objInstance, should be not objInstance");
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
if (status == "error" && errorsFound.length > 0) {
|
|
86
|
+
errorFounds.push(errorsFound);
|
|
87
|
+
} else if (status == "error" && errorsFound.length == 0) {
|
|
88
|
+
errorFounds.push("[invalid]statur is error not have errorfound form graphService");
|
|
89
|
+
|
|
90
|
+
};
|
|
91
|
+
if (status === "complete" && errorsFound.length > 0) {
|
|
92
|
+
errorFounds.push("[Invalid] status is commplete should be not have errorsFound");
|
|
93
|
+
};
|
|
94
|
+
if (graphServiceTag == "") {
|
|
95
|
+
errorFounds.push("[Invalid] graphServiceTag is not empty string");
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
if (errorsFound.length > 0) {
|
|
99
|
+
_izContext.logger.debug("Have error form grapService:", errorsFound);
|
|
100
|
+
errorFounds = errorFounds.concat(errorsFound);
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
// check and remove awaitngStep finish.
|
|
104
|
+
let awaitingStepId = asyncFlowSharedLib.createAwaitingStepId((hash(
|
|
105
|
+
{
|
|
106
|
+
objType: returnValue.objType,
|
|
107
|
+
graphServerTag: graphServiceTag,
|
|
108
|
+
identifiers: returnValue.objInstance.identifiers
|
|
109
|
+
}
|
|
110
|
+
)),
|
|
111
|
+
PREFIX.CREATE_OBJECT_ASYNC
|
|
112
|
+
)
|
|
113
|
+
_izContext.logger.debug("awaitingStepId:", awaitingStepId);
|
|
114
|
+
|
|
115
|
+
let recordAwaitingSteps = await dynamodbSharedLib.query(
|
|
116
|
+
_izContext,
|
|
117
|
+
await dynamodbSharedLib.tableName(_izContext, "AwaitingMultipleSteps"),
|
|
118
|
+
{
|
|
119
|
+
awaitingStepId: awaitingStepId
|
|
120
|
+
}
|
|
121
|
+
);
|
|
122
|
+
_izContext.logger.debug("record awaitingSteps::", recordAwaitingSteps);
|
|
123
|
+
|
|
124
|
+
nextAwaitingAteps:
|
|
125
|
+
for (let listRecordAwaitingStep of recordAwaitingSteps.Items) {
|
|
126
|
+
|
|
127
|
+
_izContext.logger.debug("iterate RecordAwaitingStep:", listRecordAwaitingStep);
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
if (!await asyncFlowSharedLib.checkAllAwaitingStepsFinished(
|
|
131
|
+
_izContext,
|
|
132
|
+
listRecordAwaitingStep.pendingStepId,
|
|
133
|
+
awaitingStepId
|
|
134
|
+
)) {
|
|
135
|
+
_izContext.logger.debug("!Waiting record form other graph::")
|
|
136
|
+
// **** add step of remove awaitingMultiplestep!! ??
|
|
137
|
+
continue nextAwaitingAteps
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
await asyncFlowSharedLib.removeAwaitingMultipleStep(
|
|
141
|
+
_izContext,
|
|
142
|
+
awaitingStepId,
|
|
143
|
+
listRecordAwaitingStep.pendingStepId,
|
|
144
|
+
);
|
|
145
|
+
_izContext.logger.debug("Remove awaitingStep finish")
|
|
146
|
+
};
|
|
147
|
+
|
|
148
|
+
// seagame: problem about lambdaComplete is will missing errorsFound from request if have 2 request
|
|
149
|
+
// one send with errorsFound and one send without errorsFound
|
|
150
|
+
// this scenario can complete with or without errorsFound
|
|
151
|
+
let messageObject = {
|
|
152
|
+
objType: returnValue.objType,
|
|
153
|
+
identifierId: returnValue.objInstance.identifiers,
|
|
154
|
+
errorFounds: errorFounds
|
|
155
|
+
};
|
|
156
|
+
|
|
157
|
+
messageObject = callingFlowSharedLib.addParentPassBackPropertiesToSnsResponseMessageObject(passBackProperties, messageObject)
|
|
158
|
+
let messageAttributes = callingFlowSharedLib.addParentPassBackCallingFlowToSnsResponseMessageAttributes(passBackProperties, {})
|
|
159
|
+
|
|
160
|
+
let sendMessageOutCreateObjectComplete = {
|
|
161
|
+
Message: JSON.stringify(messageObject),
|
|
162
|
+
MessageAttributes: sns.createStringMessageAttributes(_izContext, messageAttributes),
|
|
163
|
+
TopicArn: await snsSharedLib.snsTopicArn(_izContext, "OutCreateObjectComplete")
|
|
164
|
+
};
|
|
165
|
+
_izContext.logger.debug("Send message to OutCreateObjectComplete :::>", sendMessageOutCreateObjectComplete)
|
|
166
|
+
await sns.publishAsync(_izContext, sendMessageOutCreateObjectComplete);
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
} catch (err) {
|
|
170
|
+
throw (err)
|
|
171
|
+
}
|
|
172
|
+
}
|
|
File without changes
|
package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/mainFunction/template.ejs
ADDED
|
File without changes
|
|
File without changes
|
package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/sns-in-sqs/template.ejs
ADDED
|
File without changes
|
|
File without changes
|
|
File without changes
|