@izara_project/izara-market-library-service-schemas 1.0.18 → 1.0.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/src/GenerateCodeLibs/src/Consts.js +32 -2
- package/src/GenerateCodeLibs/src/GenerateCodeLibs.js +3 -61
- package/src/SourceManager/src/Utils.js +16 -1
- package/src/TemplateManager/src/GenerateCode.js +134 -45
- package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/functionYaml/data.js +1 -1
- package/src/TemplateManager/src/OutPerActionComplete/OutDeleteComplete/functionYaml/data.js +1 -1
- package/src/TemplateManager/src/OutPerActionComplete/OutUpdateComplete/functionYaml/data.js +1 -1
- package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Create/template.ejs +42 -23
- package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Delete/template.ejs +0 -1
- package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Get/template.ejs +13 -11
- package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Update/template.ejs +34 -18
- package/src/TemplateManager/src/{flowTag/webSocket/websocketHandler/mainFunction → PerActionEndpoint/libs}/data.js +12 -23
- package/src/TemplateManager/src/PerActionEndpoint/libs/template.ejs +46 -0
- package/src/TemplateManager/src/externalService/LambdaRole/data.js +114 -4
- package/src/TemplateManager/src/externalService/LambdaRole/template.ejs +3 -4
- package/src/TemplateManager/src/externalService/SnsTopicSubscriotions/data.js +31 -6
- package/src/TemplateManager/src/flowSchema/DefaultWebSocketResource/dynamoDb/ReservedTableData.js +65 -0
- package/src/TemplateManager/src/{flowTag/webSocket → flowSchema/DefaultWebSocketResource}/webSocketConnect/functionYaml/data.js +3 -2
- package/src/TemplateManager/src/{flowTag/webSocket → flowSchema/DefaultWebSocketResource}/webSocketConnect/handler/data.js +1 -1
- package/src/TemplateManager/src/flowSchema/FlowSchemaEndpoint/InProcessFlowSchema/functionYaml/data.js +77 -0
- package/src/TemplateManager/src/{flowTag/webSocket/websocketHandler → flowSchema/FlowSchemaEndpoint/InProcessFlowSchema}/functionYaml/template.ejs +9 -3
- package/src/TemplateManager/src/flowSchema/FlowSchemaEndpoint/InProcessFlowSchema/handler/data.js +47 -0
- package/src/TemplateManager/src/{flowTag/webSocket/websocketHandler → flowSchema/FlowSchemaEndpoint/InProcessFlowSchema}/handler/template.ejs +25 -52
- package/src/TemplateManager/src/flowSchema/FlowSchemaEndpoint/InProcessFlowSchema/mainFunction/data.js +46 -0
- package/src/TemplateManager/src/flowSchema/FlowSchemaEndpoint/InProcessFlowSchema/mainFunction/template.ejs +0 -0
- package/src/TemplateManager/src/flowSchema/FlowSchemaEndpoint/InProcessFlowSchema/sns-sqs/data.js +36 -0
- package/src/TemplateManager/src/flowSchema/FlowSchemaEndpoint/InProcessFlowSchema/sns-sqs/template.ejs +0 -0
- package/src/TemplateManager/src/flowSchema/FlowSchemaEndpoint/OutComplete/functionYaml/data.js +35 -0
- package/src/TemplateManager/src/flowSchema/FlowSchemaEndpoint/OutComplete/functionYaml/template.ejs +0 -0
- package/src/TemplateManager/src/flowSchema/FlowSchemaEndpoint/OutComplete/handler/data.js +35 -0
- package/src/TemplateManager/src/flowSchema/FlowSchemaEndpoint/OutComplete/handler/template.ejs +0 -0
- package/src/TemplateManager/src/flowSchema/FlowSchemaEndpoint/OutComplete/mainFunction/data.js +35 -0
- package/src/TemplateManager/src/flowSchema/FlowSchemaEndpoint/OutComplete/mainFunction/template.ejs +0 -0
- package/src/TemplateManager/src/flowSchema/FlowSchemaEndpoint/OutComplete/sns-sqs/data.js +35 -0
- package/src/TemplateManager/src/flowSchema/FlowSchemaEndpoint/OutComplete/sns-sqs/template.ejs +0 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/confirmReservedAfterUpload/functionYaml/data.js +102 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/confirmReservedAfterUpload/functionYaml/template.ejs +30 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/confirmReservedAfterUpload/handler/data.js +58 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/confirmReservedAfterUpload/handler/template.ejs +126 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/confirmReservedAfterUpload/mainFunction/data.js +51 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/confirmReservedAfterUpload/mainFunction/template.ejs +121 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/confirmReservedAfterUpload/queue/data.js +64 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/confirmReservedAfterUpload/queue/template.ejs +45 -0
- package/src/TemplateManager/src/{flowTag/webSocket/websocketHandler → flowSchema/UploadS3Case/createObject}/functionYaml/data.js +35 -12
- package/src/TemplateManager/src/flowSchema/UploadS3Case/createObject/functionYaml/template.ejs +37 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/createObject/handler/data.js +72 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/createObject/handler/template.ejs +107 -0
- package/src/TemplateManager/src/{flowTag/webSocket/websocketHandler/handler → flowSchema/UploadS3Case/createObject/mainFunction}/data.js +11 -15
- package/src/TemplateManager/src/{flowTag/webSocket/websocketHandler → flowSchema/UploadS3Case/createObject}/mainFunction/template.ejs +4 -4
- package/src/TemplateManager/src/{flowTag/webSocket/webSocketComplete → flowSchema/UploadS3Case/createObjectComplete}/functionYaml/data.js +6 -4
- package/src/TemplateManager/src/flowSchema/UploadS3Case/createObjectComplete/functionYaml/template.ejs +30 -0
- package/src/TemplateManager/src/{flowTag/webSocket/webSocketComplete → flowSchema/UploadS3Case/createObjectComplete}/handler/data.js +1 -1
- package/src/TemplateManager/src/{flowTag/webSocket/webSocketComplete → flowSchema/UploadS3Case/createObjectComplete}/handler/template.ejs +10 -10
- package/src/TemplateManager/src/{flowTag/webSocket/webSocketComplete → flowSchema/UploadS3Case/createObjectComplete}/mainFunction/data.js +3 -4
- package/src/TemplateManager/src/flowSchema/UploadS3Case/createObjectComplete/mainFunction/template.ejs +86 -0
- package/src/TemplateManager/src/{flowTag/webSocket/webSocketComplete → flowSchema/UploadS3Case/createObjectComplete}/sns-sqs/data.js +4 -2
- package/src/TemplateManager/src/flowSchema/UploadS3Case/createObjectComplete/sns-sqs/template.ejs +49 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/getsignUrlsAcc/functionYaml/data.js +85 -0
- package/src/TemplateManager/src/{flowTag/webSocket/webSocketComplete → flowSchema/UploadS3Case/createPresignUrl/getsignUrlsAcc}/functionYaml/template.ejs +1 -1
- package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/getsignUrlsAcc/handler/data.js +57 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/getsignUrlsAcc/handler/template.ejs +120 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/getsignUrlsAcc/mainFunction/data.js +51 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/getsignUrlsAcc/mainFunction/template.ejs +164 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/getsignUrlsAcc/sqs/data.js +65 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/getsignUrlsAcc/sqs/template.ejs +53 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/reservedLimitComplete/functionYaml/data.js +112 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/reservedLimitComplete/functionYaml/template.ejs +30 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/reservedLimitComplete/handler/data.js +57 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/reservedLimitComplete/handler/template.ejs +126 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/reservedLimitComplete/mainFunction/data.js +54 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/reservedLimitComplete/mainFunction/template.ejs +254 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/reservedLimitComplete/queue/data.js +64 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/createPresignUrl/reservedLimitComplete/queue/template.ejs +45 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/hookCode/handler/data.js +94 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/hookCode/handler/templateAsyncHandler.ejs +110 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/hookCode/handler/templateSyncHandler.ejs +49 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/hookCode/hookLogic/data.js +44 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/hookCode/mainFunction/data.js +66 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/hookCode/mainFunction/template.ejs +7 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/hookCode/queue/data.js +73 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/hookCode/queue/snsTemplate.ejs +59 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/processFileS3AfterUpload/functionYml/HdrDsq/data.js +87 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/processFileS3AfterUpload/functionYml/HdrDsq/template.ejs +30 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/processFileS3AfterUpload/functionYml/HdrS3/data.js +112 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/processFileS3AfterUpload/functionYml/HdrS3/template.ejs +38 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/processFileS3AfterUpload/handler/handlerDsq/data.js +45 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/processFileS3AfterUpload/handler/handlerDsq/template.ejs +151 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/processFileS3AfterUpload/handler/handlerS3/data.js +43 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/processFileS3AfterUpload/handler/handlerS3/template.ejs +68 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/processFileS3AfterUpload/mainFunction/data.js +43 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/processFileS3AfterUpload/mainFunction/template.ejs +392 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/processFileS3AfterUpload/queue/data.js +77 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/processFileS3AfterUpload/queue/dsqTemplatePath.ejs +32 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/processFileS3AfterUpload/queue/s3Template.ejs +59 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/relate/S3/data.js +51 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/relate/S3/template.ejs +13 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/relate/libs/data.js +42 -0
- package/src/TemplateManager/src/flowSchema/UploadS3Case/relate/libs/template.ejs +137 -0
- package/src/TemplateManager/src/libs/Consts.js +57 -28
- package/src/TemplateManager/src/flowTag/webSocket/webSocketComplete/mainFunction/template.ejs +0 -180
- /package/src/TemplateManager/src/{flowTag/resources/dynamoDb/data.js → flowSchema/DefaultWebSocketResource/dynamoDb/WebSocketTaskData.js} +0 -0
- /package/src/TemplateManager/src/{flowTag/webSocket → flowSchema/DefaultWebSocketResource}/webSocketConnect/functionYaml/template.ejs +0 -0
- /package/src/TemplateManager/src/{flowTag/webSocket → flowSchema/DefaultWebSocketResource}/webSocketConnect/handler/template.ejs +0 -0
- /package/src/TemplateManager/src/{flowTag/webSocket/webSocketComplete/sns-sqs/template.ejs → flowSchema/UploadS3Case/hookCode/queue/sqsTemplate.ejs} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@izara_project/izara-market-library-service-schemas",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.19",
|
|
4
4
|
"description": "Schemas for Izara Market project",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"@izara_project/izara-core-library-core": "^1.0.14",
|
|
24
24
|
"@izara_project/izara-core-library-external-request": "^1.0.17",
|
|
25
|
-
"@izara_project/izara-core-library-service-schemas": "^1.0.
|
|
25
|
+
"@izara_project/izara-core-library-service-schemas": "^1.0.37",
|
|
26
26
|
"@izara_project/izara-shared": "^1.0.116",
|
|
27
27
|
"ejs": "^3.1.10",
|
|
28
28
|
"js-beautify": "^1.15.1",
|
|
@@ -56,17 +56,47 @@ const TOPIC_NAME_GENERATE_CODE = {
|
|
|
56
56
|
deleteNodeComplete: "DeleteNodeComplete",
|
|
57
57
|
outDeleteNodeComplete: "OutDeleteNodeComplete",
|
|
58
58
|
getNodeComplete: "GetNodeComplete",
|
|
59
|
-
outGetNodeComplete: "OutGetNodeComplete"
|
|
59
|
+
outGetNodeComplete: "OutGetNodeComplete",
|
|
60
|
+
reservedLimitComplete: "ReservedLimitComplete"
|
|
60
61
|
}
|
|
61
62
|
|
|
62
63
|
const GRAPH_HANDLER_SERVICE_NAME = {
|
|
63
64
|
graphHandler: "GraphHandler"
|
|
64
65
|
}
|
|
65
66
|
|
|
67
|
+
const ACCOUNTLIMIT_TAG = {
|
|
68
|
+
staticLimit: "staticLimit",
|
|
69
|
+
reservedDynamic: "reservedDynamic"
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
const LIMIT_TAG = {
|
|
73
|
+
uploadImage: "uploadImageS3",
|
|
74
|
+
uploadData: "uploadDataS3"
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
const RBAC_TYPE = {
|
|
78
|
+
appLevel: "AppLevel",
|
|
79
|
+
userLevel: "UserLevel"
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
const TOPIC_NAME_EXTERNAL_SERVICE = {
|
|
83
|
+
staticLimitProcessComplete: "OutStaticLimitProcessComplete",
|
|
84
|
+
reservedDynamicUsageComplete: "OutReservedDynamicUsageComplete"
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
const EXTERNAL_SERVICE_NAME = {
|
|
88
|
+
accountLimits: "AccountLimits"
|
|
89
|
+
}
|
|
90
|
+
|
|
66
91
|
|
|
67
92
|
module.exports = {
|
|
68
93
|
TOPIC_NAME_GENERATE_CODE,
|
|
69
94
|
TOPIC_NAME_GRAPH_HANDLER,
|
|
70
95
|
PREFIX,
|
|
71
|
-
GRAPH_HANDLER_SERVICE_NAME
|
|
96
|
+
GRAPH_HANDLER_SERVICE_NAME,
|
|
97
|
+
ACCOUNTLIMIT_TAG,
|
|
98
|
+
LIMIT_TAG,
|
|
99
|
+
RBAC_TYPE,
|
|
100
|
+
TOPIC_NAME_EXTERNAL_SERVICE,
|
|
101
|
+
EXTERNAL_SERVICE_NAME
|
|
72
102
|
}
|
|
@@ -20,7 +20,6 @@ along with this program.If not, see < http://www.gnu.org/licenses/>.
|
|
|
20
20
|
const lodash = require('lodash');
|
|
21
21
|
const hash = require("object-hash")
|
|
22
22
|
|
|
23
|
-
|
|
24
23
|
const sqsSharedLib = require('@izara_project/izara-shared/src/SqsSharedLib');
|
|
25
24
|
const snsSharedLib = require('@izara_project/izara-shared/src/SnsSharedLib');
|
|
26
25
|
const inMemoryCacheLib = require('@izara_project/izara-shared/src/InMemoryCacheLib');
|
|
@@ -803,60 +802,6 @@ async function createDataDetailsLib(
|
|
|
803
802
|
for (let [keyFieldName, settingFieldName] of Object.entries(objectSchemas.fieldNames)) {
|
|
804
803
|
// _izContext.logger.debug("Loop fieldNamesObjectSchemas", { keyFieldName });
|
|
805
804
|
|
|
806
|
-
// check field is identifier
|
|
807
|
-
if (objectSchemas.identifierFieldNames.includes(keyFieldName)) {
|
|
808
|
-
|
|
809
|
-
if (Object.keys(objectSchemas.fieldNames).length == 1) {
|
|
810
|
-
|
|
811
|
-
for (const storageIdentifiers of settingFieldName.storageResourceTags) {
|
|
812
|
-
// _izContext.logger.debug("case only 1 fieldNames identifiers in ObjectSchema")
|
|
813
|
-
if (storageResources[storageIdentifiers].storageType === consts.STORAGE_TYPES.dynamoDB) {
|
|
814
|
-
if (createDataDetails.hasOwnProperty(storageIdentifiers)) {
|
|
815
|
-
// _izContext.logger.debug("same table")
|
|
816
|
-
createDataDetails[storageIdentifiers].fieldNames.push(keyFieldName);
|
|
817
|
-
} else {
|
|
818
|
-
// _izContext.logger.debug("new table")
|
|
819
|
-
Object.assign(createDataDetails, {
|
|
820
|
-
[storageResources[storageIdentifiers]]: {
|
|
821
|
-
storageType: consts.STORAGE_TYPES.dynamoDB,
|
|
822
|
-
tableName: storageResources[storageIdentifiers].tableName,
|
|
823
|
-
fieldNames: [keyFieldName]
|
|
824
|
-
}
|
|
825
|
-
})
|
|
826
|
-
if (storageResources[storageIdentifiers].hasOwnProperty("groupByPartitionKeyField")) {
|
|
827
|
-
Object.assign(createDataDetails[storageIdentifiers], {
|
|
828
|
-
groupByPartitionKeyField: storageResources[storageIdentifiers].groupByPartitionKeyField
|
|
829
|
-
})
|
|
830
|
-
}
|
|
831
|
-
}
|
|
832
|
-
} else if (storageResources[storageIdentifiers].storageType === consts.STORAGE_TYPES.graph) {
|
|
833
|
-
let getGraphServerTag = await serviceConfig.getGraphServiceTag(
|
|
834
|
-
_izContext,
|
|
835
|
-
storageResources[storageIdentifiers].graphServerTag
|
|
836
|
-
);
|
|
837
|
-
if (getGraphServerTag) {
|
|
838
|
-
if (createDataDetails.hasOwnProperty(getGraphServerTag)) {
|
|
839
|
-
createDataDetails[getGraphServerTag].fieldNames.push(keyFieldName)
|
|
840
|
-
} else {
|
|
841
|
-
Object.assign(createDataDetails, {
|
|
842
|
-
[getGraphServerTag]: {
|
|
843
|
-
storageType: consts.STORAGE_TYPES.graph,
|
|
844
|
-
fieldNames: [keyFieldName]
|
|
845
|
-
}
|
|
846
|
-
})
|
|
847
|
-
}
|
|
848
|
-
}
|
|
849
|
-
}
|
|
850
|
-
}
|
|
851
|
-
} else {
|
|
852
|
-
continue
|
|
853
|
-
}
|
|
854
|
-
continue
|
|
855
|
-
};
|
|
856
|
-
// _izContext.logger.debug("case multiple fieldName");
|
|
857
|
-
// validate storageResourceTags.
|
|
858
|
-
// _izContext.logger.debug("storageResourceTags is", settingFieldName.storageResourceTags);
|
|
859
|
-
|
|
860
805
|
for (let eachStorageResourceTag of settingFieldName.storageResourceTags) {
|
|
861
806
|
// _izContext.logger.debug("Loop eachStorageResourceTags", eachStorageResourceTag);
|
|
862
807
|
|
|
@@ -886,7 +831,7 @@ async function createDataDetailsLib(
|
|
|
886
831
|
}
|
|
887
832
|
|
|
888
833
|
} else if (storageResources[eachStorageResourceTag].storageType == consts.STORAGE_TYPES.graph) {
|
|
889
|
-
let checkGraphServerTags = await serviceConfig.
|
|
834
|
+
let checkGraphServerTags = await serviceConfig.getGraphServiceTagWithCache(
|
|
890
835
|
_izContext,
|
|
891
836
|
storageResources[eachStorageResourceTag].graphServerTag
|
|
892
837
|
);
|
|
@@ -910,7 +855,6 @@ async function createDataDetailsLib(
|
|
|
910
855
|
}; // end loop storageResourceTags
|
|
911
856
|
|
|
912
857
|
}; // end loop
|
|
913
|
-
_izContext.logger.debug("_______All createDataDetails_____", createDataDetails);
|
|
914
858
|
return createDataDetails;
|
|
915
859
|
};
|
|
916
860
|
|
|
@@ -961,7 +905,7 @@ async function createDeleteDataDetail(_izContext, objectSchema) {
|
|
|
961
905
|
}
|
|
962
906
|
|
|
963
907
|
function createFieldForUpdateDynamoDb(_izContext, objectSchema, dynamoDataDetail, fields) {
|
|
964
|
-
|
|
908
|
+
_izContext.logger.debug("createFieldForUpdateDynamoDb", {
|
|
965
909
|
objectSchema,
|
|
966
910
|
dynamoDataDetail,
|
|
967
911
|
fields
|
|
@@ -974,14 +918,12 @@ function createFieldForUpdateDynamoDb(_izContext, objectSchema, dynamoDataDetail
|
|
|
974
918
|
if (dynamoDataDetail.fieldNames.includes(fieldName)) {
|
|
975
919
|
if (fields[fieldName]) {
|
|
976
920
|
if (!fieldsForUpdateDynamo.hasOwnProperty(fields[fieldName])) {
|
|
977
|
-
|
|
921
|
+
_izContext.logger.debug("assign new fieldName", (fields[fieldName]))
|
|
978
922
|
Object.assign(fieldsForUpdateDynamo, {
|
|
979
923
|
[fieldName]: fields[fieldName]
|
|
980
924
|
}
|
|
981
925
|
)
|
|
982
926
|
}
|
|
983
|
-
} else {
|
|
984
|
-
fieldsForUpdateDynamo = {}
|
|
985
927
|
}
|
|
986
928
|
}
|
|
987
929
|
}
|
|
@@ -47,9 +47,24 @@ function deleteFile(filePath) {
|
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
+
|
|
51
|
+
async function createHookFunction(_izContext, sourcePath, destinationPath) {
|
|
52
|
+
const logicalHookFile = path.join("./src/schemas/flowSchema", sourcePath)
|
|
53
|
+
if (fs.existsSync(logicalHookFile)) {
|
|
54
|
+
try {
|
|
55
|
+
fse.copySync(logicalHookFile, destinationPath, { overwrite: true })
|
|
56
|
+
} catch (err) {
|
|
57
|
+
_izContext.logger.error(err)
|
|
58
|
+
}
|
|
59
|
+
} else {
|
|
60
|
+
throw new NoRetryError(`error no sourceFile:${logicalHookFile}`)
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
50
64
|
module.exports = {
|
|
51
65
|
deleteFileInDir,
|
|
52
|
-
deleteFile
|
|
66
|
+
deleteFile,
|
|
67
|
+
createHookFunction
|
|
53
68
|
}
|
|
54
69
|
|
|
55
70
|
|
|
@@ -31,6 +31,8 @@ const {
|
|
|
31
31
|
getGraphServiceNameFromGraphServerTagWithCache
|
|
32
32
|
} = require('@izara_project/izara-core-library-service-schemas/src/ServiceConfig');
|
|
33
33
|
|
|
34
|
+
const { SOURCE_PATH } = require('./libs/Consts')
|
|
35
|
+
|
|
34
36
|
const { createSource } = require("../../SourceManager/src/CreateSource");
|
|
35
37
|
const { deleteFileInDir } = require("../../SourceManager/src/Utils");
|
|
36
38
|
// create Get handler per ObjectType
|
|
@@ -51,6 +53,7 @@ const functionYamlDataHdrApi = require('./PerActionEndpoint/FunctionYaml/HdrApi/
|
|
|
51
53
|
const functionYamlDataHdrSqs = require('./PerActionEndpoint/FunctionYaml/HdrSqs/data');
|
|
52
54
|
const functionYamlDataHdrDsq = require('./PerActionEndpoint/FunctionYaml/HdrDsq/data');
|
|
53
55
|
|
|
56
|
+
const createGenerateCodeLibs = require('./PerActionEndpoint/libs/data');
|
|
54
57
|
// out updateNode Complete
|
|
55
58
|
const functionYamlOutUpdateComplete = require('./OutPerActionComplete/OutUpdateComplete/functionYaml/data');
|
|
56
59
|
const outUpdateCompleteHandler = require('./OutPerActionComplete/OutUpdateComplete/handler/data');
|
|
@@ -177,24 +180,43 @@ const createProcessLogicalPaginateMainFunction = require('./ProcessLogicalPagina
|
|
|
177
180
|
const createProcessLogicalPaginateFunctionYamlHdrDsq = require('./ProcessLogicalPagination/FunctionYaml/HdrDsq/data')
|
|
178
181
|
const createProcessLogicalPaginateFunctionYamlHdrSqs = require('./ProcessLogicalPagination/FunctionYaml/HdrSqs/data')
|
|
179
182
|
|
|
180
|
-
//
|
|
181
|
-
// const createGetNodeCompleteFunctionYaml = require('./OutPerActionComplete/OutGetComplete/functionYaml/data');
|
|
182
|
-
// const createGetNodeCompleteHandler = require('./OutPerActionComplete/OutGetComplete/handler/data');
|
|
183
|
-
// const createGetNodeCompleteMainFunction = require('./OutPerActionComplete/OutGetComplete/mainFunction/data');
|
|
184
|
-
// const createGetNodeSnsInSqs = require('./OutPerActionComplete/OutGetComplete/sqs-in-sns/data');
|
|
183
|
+
// OutGetNodeComplete Topic
|
|
185
184
|
const createGetNodeSnsOut = require('./OutPerActionComplete/OutGetComplete/sns-out/data');
|
|
186
|
-
|
|
187
|
-
const createWebSocketDynamoDb = require('./
|
|
188
|
-
const
|
|
189
|
-
|
|
190
|
-
const
|
|
191
|
-
const
|
|
192
|
-
const
|
|
193
|
-
const
|
|
194
|
-
const
|
|
195
|
-
const
|
|
196
|
-
const
|
|
197
|
-
|
|
185
|
+
// webSocket uploadData
|
|
186
|
+
const createWebSocketDynamoDb = require('./flowSchema/DefaultWebSocketResource/dynamoDb/WebSocketTaskData');
|
|
187
|
+
const createReservecDataMainTable = require('./flowSchema/DefaultWebSocketResource/dynamoDb/ReservedTableData');
|
|
188
|
+
|
|
189
|
+
const createFunctionYamlCreateObjectWebSocket = require('./flowSchema/UploadS3Case/createObject/functionYaml/data');
|
|
190
|
+
const createHandlerCreateObjectWebSocket = require('./flowSchema/UploadS3Case/createObject/handler/data');
|
|
191
|
+
const createMainFunctionCreateObjectWebSocket = require('./flowSchema/UploadS3Case/createObject/mainFunction/data');
|
|
192
|
+
const createWebSocketCreateObjectCompleteFunctionYaml = require('./flowSchema/UploadS3Case/createObjectComplete/functionYaml/data');
|
|
193
|
+
const createWebSocketCreateObjectCompleteQueue = require('./flowSchema/UploadS3Case/createObjectComplete/sns-sqs/data');
|
|
194
|
+
const createWebSocketCreateObjectCompleteHandler = require('./flowSchema/UploadS3Case/createObjectComplete/handler/data');
|
|
195
|
+
const createWebSocketCreateObjectCompleteMainFunction = require('./flowSchema/UploadS3Case/createObjectComplete/mainFunction/data');
|
|
196
|
+
const createWebSocketGenerateCodeLibs = require('./flowSchema/UploadS3Case/relate/libs/data')
|
|
197
|
+
|
|
198
|
+
const createGetPresignUrlFunctionYaml = require('./flowSchema/UploadS3Case/createPresignUrl/getsignUrlsAcc/functionYaml/data');
|
|
199
|
+
const createGetPresignUrlHandler = require('./flowSchema/UploadS3Case/createPresignUrl/getsignUrlsAcc/handler/data');
|
|
200
|
+
const createGetPresignUrlMainFunction = require('./flowSchema/UploadS3Case/createPresignUrl/getsignUrlsAcc/mainFunction/data');
|
|
201
|
+
const createGetPresignUrlQueueName = require('./flowSchema/UploadS3Case/createPresignUrl/getsignUrlsAcc/sqs/data')
|
|
202
|
+
|
|
203
|
+
const createReservedLimitFunctionYaml = require('./flowSchema/UploadS3Case/createPresignUrl/reservedLimitComplete/functionYaml/data');
|
|
204
|
+
const createReservedLimitHandler = require('./flowSchema/UploadS3Case/createPresignUrl/reservedLimitComplete/handler/data');
|
|
205
|
+
const createReservedLimitMainFunction = require('./flowSchema/UploadS3Case/createPresignUrl/reservedLimitComplete/mainFunction/data');
|
|
206
|
+
const createReservedLimitQueueName = require('./flowSchema/UploadS3Case/createPresignUrl/reservedLimitComplete/queue/data');
|
|
207
|
+
|
|
208
|
+
const createBucketS3 = require('./flowSchema/UploadS3Case/relate/S3/data')
|
|
209
|
+
const createProcessAfterUploadS3FunctionYmlS3 = require('./flowSchema/UploadS3Case/processFileS3AfterUpload/functionYml/HdrS3/data');
|
|
210
|
+
const createProcessAfterUploadS3Queue = require('./flowSchema/UploadS3Case/processFileS3AfterUpload/queue/data');
|
|
211
|
+
const createProcessAfterUploadS3HandlerS3 = require('./flowSchema/UploadS3Case/processFileS3AfterUpload/handler/handlerS3/data');
|
|
212
|
+
const createProcessAfterUploadS3MainFunction = require('./flowSchema/UploadS3Case/processFileS3AfterUpload/mainFunction/data');
|
|
213
|
+
|
|
214
|
+
const createConfirmAfterUploadS3FunctionYaml = require('./flowSchema/UploadS3Case/confirmReservedAfterUpload/functionYaml/data');
|
|
215
|
+
const createConfirmAfterUploadS3Handler = require('./flowSchema/UploadS3Case/confirmReservedAfterUpload/handler/data');
|
|
216
|
+
const createConfirmAfterUploadS3MainFunction = require('./flowSchema/UploadS3Case/confirmReservedAfterUpload/mainFunction/data');
|
|
217
|
+
const createConfirmAfterUploadS3Queue = require('./flowSchema/UploadS3Case/confirmReservedAfterUpload/queue/data');
|
|
218
|
+
|
|
219
|
+
const createHookFunctionMainFunction = require('./flowSchema/UploadS3Case/hookCode/mainFunction/data');
|
|
198
220
|
//get functionNameConfig
|
|
199
221
|
const functionNameConfigYamldata = require('./externalService/FunctionNameConfig/data');
|
|
200
222
|
|
|
@@ -225,14 +247,13 @@ async function generateCodeWithTemplate(_izContext, objSchemaPath) {
|
|
|
225
247
|
|
|
226
248
|
// define path for store yml file
|
|
227
249
|
const GENERATECODE_SOURCE_PATH = {
|
|
228
|
-
appYaml: join(saveFilePath,
|
|
229
|
-
resourceYaml: join(saveFilePath,
|
|
230
|
-
lambdaPerAction: join(saveFilePath,
|
|
231
|
-
externalService: join(saveFilePath,
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
updateRelationship: join(saveFilePath, `../src/generatedCode/RelationshipPerAction/source/`),
|
|
250
|
+
appYaml: join(saveFilePath, SOURCE_PATH.appYaml),
|
|
251
|
+
resourceYaml: join(saveFilePath, SOURCE_PATH.resourceYaml),
|
|
252
|
+
lambdaPerAction: join(saveFilePath, SOURCE_PATH.lambdaPerAction),
|
|
253
|
+
externalService: join(saveFilePath, SOURCE_PATH.externalService),
|
|
254
|
+
relationshipPerAction: join(saveFilePath, SOURCE_PATH.relationshipPerAction),
|
|
255
|
+
webSocketEndpoint: join(saveFilePath, SOURCE_PATH.webSocket),
|
|
256
|
+
generateCodeLib: join(saveFilePath, SOURCE_PATH.generateCodeLib)
|
|
236
257
|
};
|
|
237
258
|
|
|
238
259
|
let createSourceParams = [];
|
|
@@ -252,30 +273,98 @@ async function generateCodeWithTemplate(_izContext, objSchemaPath) {
|
|
|
252
273
|
// _izContext.logger.debug("allObjectRelationships::", allObjectRelationships);
|
|
253
274
|
|
|
254
275
|
const allLocalFlowSchemas = await getAllLocalFlowSchemas(_izContext, objSchemaPath);
|
|
255
|
-
//
|
|
256
|
-
for (const flowSchema of allLocalFlowSchemas.records) {
|
|
276
|
+
// console.log("allLocalFlowSchemas::", allLocalFlowSchemas)
|
|
257
277
|
|
|
258
|
-
|
|
278
|
+
// default webSocket setting
|
|
259
279
|
const webSocketTaskTable = createWebSocketDynamoDb(_izContext, saveFilePath);
|
|
260
|
-
const webSocketConnectYaml = createWebSocketConnectYaml(_izContext, saveFilePath);
|
|
261
|
-
const webSocketConnectHandler = createWebSocketConnectHandler(_izContext, saveFilePath);
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
const
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
const webSocketCompleteHandler = createWebSocketCompleteHandler(_izContext, saveFilePath);
|
|
268
|
-
const webSocketCompleteMainFunction = createWebSocketCompleteMainFunction(_izContext, saveFilePath);
|
|
269
|
-
// const webSocketHandler
|
|
270
|
-
|
|
271
|
-
const webSocketResource = [...webSocketTaskTable, ...webSocketConnectYaml, ...webSocketConnectHandler, ...webSocketHandler, ...webSocketHandlerYaml,
|
|
272
|
-
...webSocketMainFunction, ...webSocketCompleteQueue, ...webSocketCompleteFunctionYaml, ...webSocketCompleteHandler, ...webSocketCompleteMainFunction]
|
|
280
|
+
// const webSocketConnectYaml = createWebSocketConnectYaml(_izContext, saveFilePath);
|
|
281
|
+
// const webSocketConnectHandler = createWebSocketConnectHandler(_izContext, saveFilePath);
|
|
282
|
+
|
|
283
|
+
|
|
284
|
+
const webSocketResource = [...webSocketTaskTable
|
|
285
|
+
// ...webSocketConnectYaml, ...webSocketConnectHandler,
|
|
286
|
+
]
|
|
273
287
|
if (allLocalFlowSchemas.records.length) {
|
|
274
288
|
createSourceParams.push(
|
|
275
289
|
...webSocketResource
|
|
276
290
|
)
|
|
277
291
|
}
|
|
278
292
|
|
|
293
|
+
for (const flowSchema of allLocalFlowSchemas.records) {
|
|
294
|
+
// console.log("flowSchema::", flowSchema)
|
|
295
|
+
const reservedDataTable = createReservecDataMainTable(_izContext, saveFilePath);
|
|
296
|
+
const bucketS3 = createBucketS3(_izContext, flowSchema, saveFilePath)
|
|
297
|
+
|
|
298
|
+
const functionYamlCreateObjectWebSocket = createFunctionYamlCreateObjectWebSocket(_izContext, flowSchema, saveFilePath);
|
|
299
|
+
const handlerCreateObjectWebSocket = createHandlerCreateObjectWebSocket(_izContext, flowSchema, saveFilePath);
|
|
300
|
+
const mainFunctionCreateObjectWebSocket = await createMainFunctionCreateObjectWebSocket(_izContext, flowSchema, saveFilePath);
|
|
301
|
+
const webSocketCreateObjectCompleteFunctionYaml = createWebSocketCreateObjectCompleteFunctionYaml(_izContext, saveFilePath);
|
|
302
|
+
const webSocketCreateObjectCompleteQueue = createWebSocketCreateObjectCompleteQueue(_izContext, saveFilePath);
|
|
303
|
+
const webSocketCreateObjectCompleteMainFunction = createWebSocketCreateObjectCompleteMainFunction(_izContext, saveFilePath)
|
|
304
|
+
const webSocketCreateObjectCompleteHandler = createWebSocketCreateObjectCompleteHandler(_izContext, saveFilePath);
|
|
305
|
+
|
|
306
|
+
const webSoketFunction = [...functionYamlCreateObjectWebSocket, ...handlerCreateObjectWebSocket,
|
|
307
|
+
...mainFunctionCreateObjectWebSocket, ...webSocketCreateObjectCompleteFunctionYaml,
|
|
308
|
+
...webSocketCreateObjectCompleteQueue, ...webSocketCreateObjectCompleteMainFunction,
|
|
309
|
+
...webSocketCreateObjectCompleteHandler]
|
|
310
|
+
|
|
311
|
+
// const webSocketCreateObjectStordCache = createWebSocketCreateObjectStoredCache(_izContext, saveFilePath);
|
|
312
|
+
const webSocketGenerateCodeLibs = createWebSocketGenerateCodeLibs(_izContext, saveFilePath)
|
|
313
|
+
|
|
314
|
+
const getPresignUrlFunctionYaml = createGetPresignUrlFunctionYaml(_izContext, saveFilePath);
|
|
315
|
+
const getPresignUrlHandler = createGetPresignUrlHandler(_izContext, saveFilePath);
|
|
316
|
+
const getPresignUrlMainFunction = createGetPresignUrlMainFunction(_izContext, saveFilePath);
|
|
317
|
+
const getPresignUrlQueue = createGetPresignUrlQueueName(_izContext, saveFilePath);
|
|
318
|
+
|
|
319
|
+
const getPresignUrlResource = [...getPresignUrlFunctionYaml, ...getPresignUrlHandler, ...getPresignUrlMainFunction, ...getPresignUrlQueue]
|
|
320
|
+
|
|
321
|
+
const reservedLimitCompleteFunctionYaml = createReservedLimitFunctionYaml(_izContext, saveFilePath);
|
|
322
|
+
const reservedLimitCompleteMainFunction = createReservedLimitMainFunction(_izContext, flowSchema, saveFilePath);
|
|
323
|
+
const reservedLimitCompleteHandler = createReservedLimitHandler(_izContext, saveFilePath);
|
|
324
|
+
const reservedLimitCompleteQueue = createReservedLimitQueueName(_izContext, saveFilePath);
|
|
325
|
+
|
|
326
|
+
const reservedLimitComplete = [...reservedLimitCompleteFunctionYaml, ...reservedLimitCompleteHandler, ...reservedLimitCompleteMainFunction, ...reservedLimitCompleteQueue]
|
|
327
|
+
|
|
328
|
+
const processAfterUploadFunctionYmlS3 = createProcessAfterUploadS3FunctionYmlS3(_izContext, flowSchema, saveFilePath);
|
|
329
|
+
// const processAfterUploadFunctionYamlHdrDsq = createProcessAfterUploadS3FunctionYmlDsq(_izContext, saveFilePath);
|
|
330
|
+
const processAfterUploadSqs = createProcessAfterUploadS3Queue(_izContext, saveFilePath);
|
|
331
|
+
const processAfterUploadHandlerS3 = createProcessAfterUploadS3HandlerS3(_izContext, saveFilePath);
|
|
332
|
+
// const processAfterUploadHandlerDsq = createProcessAfterUploadS3HandlerDsq(_izContext, saveFilePath);
|
|
333
|
+
const processAfterUploadMainFunction = createProcessAfterUploadS3MainFunction(_izContext, saveFilePath);
|
|
334
|
+
|
|
335
|
+
const processAfterUploadS3Resource = [...processAfterUploadFunctionYmlS3, ...processAfterUploadSqs,
|
|
336
|
+
...processAfterUploadHandlerS3,
|
|
337
|
+
...processAfterUploadMainFunction
|
|
338
|
+
//...processAfterUploadHandlerDsq, ...processAfterUploadFunctionYamlHdrDsq,
|
|
339
|
+
]
|
|
340
|
+
|
|
341
|
+
const confirmReservedAfterUploadFunctionYaml = createConfirmAfterUploadS3FunctionYaml(_izContext, saveFilePath);
|
|
342
|
+
const confirmReservedAfterUploadHandler = createConfirmAfterUploadS3Handler(_izContext, saveFilePath);
|
|
343
|
+
const confirmReservedAfterUploadMainFunction = createConfirmAfterUploadS3MainFunction(_izContext, saveFilePath);
|
|
344
|
+
const confirmReservedAfterUploadQueue = createConfirmAfterUploadS3Queue(_izContext, saveFilePath);
|
|
345
|
+
|
|
346
|
+
const confirmAfterUploadS3Resource = [...confirmReservedAfterUploadFunctionYaml, ...confirmReservedAfterUploadHandler, ...confirmReservedAfterUploadMainFunction, ...confirmReservedAfterUploadQueue]
|
|
347
|
+
if (flowSchema.hasOwnProperty("uploadS3") && flowSchema.uploadS3 === true) {
|
|
348
|
+
|
|
349
|
+
const webSocketUploadS3Resource = [...webSoketFunction, ...webSocketGenerateCodeLibs, ...reservedDataTable]
|
|
350
|
+
createSourceParams.push(...webSocketUploadS3Resource, ...getPresignUrlResource, ...reservedLimitComplete, ...bucketS3, ...processAfterUploadS3Resource, ...confirmAfterUploadS3Resource)
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
|
|
354
|
+
|
|
355
|
+
if (flowSchema.hasOwnProperty("initializeRequest") && flowSchema.hasOwnProperty("response")) {
|
|
356
|
+
const webSocketEndpointResource = []
|
|
357
|
+
createSourceParams.push(...webSocketEndpointResource)
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
const hookFunctionMainFunction = createHookFunctionMainFunction(_izContext, flowSchema, saveFilePath);
|
|
361
|
+
const createHookResource = [...hookFunctionMainFunction];
|
|
362
|
+
|
|
363
|
+
createSourceParams.push(...createHookResource)
|
|
364
|
+
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
|
|
279
368
|
|
|
280
369
|
/*
|
|
281
370
|
Should we generateCode with objectSchema that not in hierarchy or not?
|
|
@@ -297,8 +386,8 @@ async function generateCodeWithTemplate(_izContext, objSchemaPath) {
|
|
|
297
386
|
|
|
298
387
|
|
|
299
388
|
// create External service
|
|
300
|
-
const createFunctionIamRole = await createExternalLambdaRole(_izContext, allObjSchemas.records, allObjectRelationships, saveFilePath);
|
|
301
|
-
const createSnsSubscription = await createExternalSnsSubscriptions(_izContext, allObjSchemas.records, allObjectRelationships, saveFilePath);
|
|
389
|
+
const createFunctionIamRole = await createExternalLambdaRole(_izContext, allObjSchemas.records, allObjectRelationships, allLocalFlowSchemas.records, saveFilePath);
|
|
390
|
+
const createSnsSubscription = await createExternalSnsSubscriptions(_izContext, allObjSchemas.records, allObjectRelationships, allLocalFlowSchemas.records, saveFilePath);
|
|
302
391
|
for (let objectSchema of allObjSchemas.records) {
|
|
303
392
|
|
|
304
393
|
// generate handler perAction
|
|
@@ -508,8 +597,8 @@ async function generateCodeWithTemplate(_izContext, objSchemaPath) {
|
|
|
508
597
|
// const getNodeCompleteMainFunction = createGetNodeCompleteMainFunction(_izContext, saveFilePath);
|
|
509
598
|
// const getNodeCompleteSnsInSqs = createGetNodeSnsInSqs(_izContext, saveFilePath);
|
|
510
599
|
const getNodeCompleteSnsOut = createGetNodeSnsOut(_izContext, saveFilePath);
|
|
511
|
-
|
|
512
|
-
const getNodeCompleteResource = [...getNodeCompleteSnsOut]
|
|
600
|
+
const generateCodeLib = createGenerateCodeLibs(_izContext, saveFilePath);
|
|
601
|
+
const getNodeCompleteResource = [...getNodeCompleteSnsOut, ...generateCodeLib]
|
|
513
602
|
createSourceParams.push(...createMainResourceDefault,
|
|
514
603
|
createSnsSubscription,
|
|
515
604
|
createFunctionIamRole,
|
|
@@ -16,13 +16,17 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
18
|
'use strict';
|
|
19
|
-
const
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
const sns = require('@izara_project/izara-core-library-external-request/src/resources/Sns');
|
|
19
|
+
const izaraShared = require('@izara_project/izara-shared');
|
|
20
|
+
const asyncFlowSharedLib = izaraShared.asyncFlowSharedLib;
|
|
21
|
+
const dynamodbSharedLib = izaraShared.dynamodbSharedLib;
|
|
22
|
+
const lambdaSharedLib = izaraShared.lambdaSharedLib;
|
|
23
|
+
const callingFlowSharedLib = izaraShared.callingFlowSharedLib;
|
|
25
24
|
const snsSharedLib = require('@izara_project/izara-shared/src/SnsSharedLib');
|
|
25
|
+
|
|
26
|
+
const externalRequest = require('@izara_project/izara-core-library-external-request');
|
|
27
|
+
const sns = externalRequest.sns;
|
|
28
|
+
const lambda = externalRequest.lambda
|
|
29
|
+
|
|
26
30
|
const getObjectSchema = require('@izara_project/izara-core-library-service-schemas/src/GetObjectSchema');
|
|
27
31
|
const serviceConfigLib = require('@izara_project/izara-core-library-service-schemas/src/ServiceConfig')
|
|
28
32
|
|
|
@@ -59,6 +63,8 @@ const { createDataDetailsLib } = require('@izara_project/izara-market-library-se
|
|
|
59
63
|
const { createLinkTypeId } = require('@izara_project/izara-core-library-service-schemas/src/Utils');
|
|
60
64
|
const { findLinksByObjTypes } = require("@izara_project/izara-core-library-service-schemas/src/libs/RelSchemaLib")
|
|
61
65
|
const lodash = require("lodash")
|
|
66
|
+
|
|
67
|
+
|
|
62
68
|
/**
|
|
63
69
|
- all storageType( DB and Graph) use objInstance({identifiers,fields})
|
|
64
70
|
- storageType[DB] async
|
|
@@ -95,6 +101,7 @@ module.exports.<%- functionName %>Main = async (
|
|
|
95
101
|
let errorsFound = [];
|
|
96
102
|
|
|
97
103
|
const userId = _izContext.correlationIds.get(coreConsts.BASE_USER_ID);
|
|
104
|
+
const targetId = _izContext.correlationIds.get(coreConsts.TARGET_ID)
|
|
98
105
|
if (!userId) {
|
|
99
106
|
errorsFound.push("Not have userId")
|
|
100
107
|
}
|
|
@@ -103,12 +110,10 @@ module.exports.<%- functionName %>Main = async (
|
|
|
103
110
|
const SERVICE_TAG = process.env.iz_serviceTag;
|
|
104
111
|
//(<beforeQuery>)
|
|
105
112
|
//(</beforeQuery>)
|
|
106
|
-
|
|
107
113
|
const MAIN_OBJTYPE = {
|
|
108
114
|
objectType: OBJECT_TYPE,
|
|
109
115
|
serviceTag: SERVICE_TAG
|
|
110
116
|
}
|
|
111
|
-
//test npm install from local
|
|
112
117
|
let objectSchema = await getObjectSchema.getObjSchemaS3WithCache(
|
|
113
118
|
_izContext,
|
|
114
119
|
MAIN_OBJTYPE
|
|
@@ -121,6 +126,10 @@ module.exports.<%- functionName %>Main = async (
|
|
|
121
126
|
);
|
|
122
127
|
_izContext.logger.debug("objectSchemas", objectSchemas);
|
|
123
128
|
|
|
129
|
+
if (objectSchema.hasOwnProperty("belongTo") && !targetId) {
|
|
130
|
+
errorsFound.push('not have targetId')
|
|
131
|
+
}
|
|
132
|
+
|
|
124
133
|
let createDataDetails = await createDataDetailsLib(_izContext, objectSchemas);
|
|
125
134
|
_izContext.logger.debug("createDataDetails is =", createDataDetails);
|
|
126
135
|
|
|
@@ -181,7 +190,7 @@ module.exports.<%- functionName %>Main = async (
|
|
|
181
190
|
errorsFound.push(`relationship direction ${JSON.stringify(requestParams.relationships[index])} is invalid`)
|
|
182
191
|
}
|
|
183
192
|
}
|
|
184
|
-
|
|
193
|
+
_izContext.logger.debug("finish validate Relationships from RequestParams")
|
|
185
194
|
let requiredOnCreateLinks = {};
|
|
186
195
|
let createLinkTypeIds = [];
|
|
187
196
|
// validate relationships link
|
|
@@ -230,24 +239,27 @@ module.exports.<%- functionName %>Main = async (
|
|
|
230
239
|
})
|
|
231
240
|
}
|
|
232
241
|
|
|
233
|
-
|
|
234
|
-
const
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
242
|
+
if (requestParams.hasOwnProperty("relationships") && requestParams.relationships.length) {
|
|
243
|
+
for (const createRelationship of requestParams.relationships) {
|
|
244
|
+
const onCreateLinkTypeId = createLinkTypeId(
|
|
245
|
+
_izContext,
|
|
246
|
+
MAIN_OBJTYPE,
|
|
247
|
+
createRelationship.targetObjType,
|
|
248
|
+
createRelationship.relType,
|
|
249
|
+
createRelationship.relationshipDirection
|
|
250
|
+
);
|
|
241
251
|
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
252
|
+
if (!requiredOnCreateLinks.hasOwnProperty(onCreateLinkTypeId)) {
|
|
253
|
+
errorsFound.push(`relType:${JSON.stringify(createRelationship.relType)} not allow to create when use create action`)
|
|
254
|
+
continue;
|
|
255
|
+
} else {
|
|
256
|
+
createLinkTypeIds.push(onCreateLinkTypeId);
|
|
257
|
+
}
|
|
247
258
|
}
|
|
248
259
|
}
|
|
249
260
|
}
|
|
250
261
|
|
|
262
|
+
|
|
251
263
|
// validate missing relType when create that should create
|
|
252
264
|
const remainRequiredOnCreateLinkTypeIds = Object.keys(requiredOnCreateLinks)
|
|
253
265
|
.filter(requiredInCreateLinkTypeId => !createLinkTypeIds.includes(requiredInCreateLinkTypeId))
|
|
@@ -477,7 +489,7 @@ module.exports.<%- functionName %>Main = async (
|
|
|
477
489
|
messageObject = {
|
|
478
490
|
objType: MAIN_OBJTYPE,
|
|
479
491
|
objInstanceFull: objecForCreate.objInstanceFull,
|
|
480
|
-
relationships: requestParams.relationships
|
|
492
|
+
relationships: requestParams.relationships || []
|
|
481
493
|
};
|
|
482
494
|
};
|
|
483
495
|
|
|
@@ -583,6 +595,13 @@ module.exports.<%- functionName %>Main = async (
|
|
|
583
595
|
await sns.publishAsync(_izContext, messageParams);
|
|
584
596
|
}
|
|
585
597
|
}
|
|
598
|
+
return {
|
|
599
|
+
objType: MAIN_OBJTYPE,
|
|
600
|
+
fieldNames: requestParams.fieldNames,
|
|
601
|
+
relationship: requestParams.relationships,
|
|
602
|
+
status: "complete",
|
|
603
|
+
errorsFound: errorsFound
|
|
604
|
+
}
|
|
586
605
|
}
|
|
587
606
|
} catch (err) {
|
|
588
607
|
throw (err)
|
|
@@ -28,7 +28,6 @@ const serviceConfigLib = require('@izara_project/izara-core-library-service-sche
|
|
|
28
28
|
|
|
29
29
|
const uploadUseCase = require('@izara_project/izara-core-library-service-schemas/src/libs/UploadUseCase')
|
|
30
30
|
|
|
31
|
-
|
|
32
31
|
const hash = require("object-hash")
|
|
33
32
|
const NoRetryError = require('@izara_project/izara-core-library-core/src/NoRetryError');
|
|
34
33
|
const path = require('path')
|