@izara_project/izara-market-library-service-schemas 1.0.12 → 1.0.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (24) hide show
  1. package/package.json +1 -1
  2. package/src/GenerateCodeLibs/src/GenerateCodeLibs.js +4 -4
  3. package/src/TemplateManager/src/GenerateCode.js +24 -47
  4. package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrDsq/template.ejs +2 -2
  5. package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Update/data.js +1 -1
  6. package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Update/template.ejs +3 -2
  7. package/src/TemplateManager/src/RelationshipPerAction/DeleteRelationship/DeleteRelationship/functionYaml/HdrInv/data.js +2 -2
  8. package/src/TemplateManager/src/RelationshipPerAction/DeleteRelationship/DeleteRelationship/mainFunction/template.ejs +25 -17
  9. package/src/TemplateManager/src/RelationshipPerAction/DeleteRelationship/DeleteRelationship/perAction/HdrApi/template.ejs +39 -21
  10. package/src/TemplateManager/src/RelationshipPerAction/DeleteRelationship/DeleteRelationship/perAction/HdrDsq/template.ejs +38 -21
  11. package/src/TemplateManager/src/RelationshipPerAction/DeleteRelationship/DeleteRelationship/perAction/HdrInv/template.ejs +40 -22
  12. package/src/TemplateManager/src/RelationshipPerAction/DeleteRelationship/DeleteRelationship/perAction/HdrSqs/template.ejs +38 -22
  13. package/src/TemplateManager/src/RelationshipPerAction/UpdateRelationshipSchema/updateRelationship/functionYaml/HdrApi/data.js +1 -1
  14. package/src/TemplateManager/src/RelationshipPerAction/UpdateRelationshipSchema/updateRelationship/mainFunction/template.ejs +21 -11
  15. package/src/TemplateManager/src/RelationshipPerAction/UpdateRelationshipSchema/updateRelationship/perAction/HdrApi/template.ejs +37 -20
  16. package/src/TemplateManager/src/RelationshipPerAction/UpdateRelationshipSchema/updateRelationship/perAction/HdrDsq/template.ejs +40 -23
  17. package/src/TemplateManager/src/RelationshipPerAction/UpdateRelationshipSchema/updateRelationship/perAction/HdrInv/template.ejs +40 -23
  18. package/src/TemplateManager/src/RelationshipPerAction/UpdateRelationshipSchema/updateRelationship/perAction/HdrSqs/template.ejs +40 -23
  19. package/src/TemplateManager/src/externalService/FunctionNameConfig/data.js +45 -12
  20. package/src/TemplateManager/src/externalService/FunctionNameConfig/templateIntTesting.ejs +31 -0
  21. package/src/TemplateManager/src/externalService/FunctionNameConfig/templateYaml.ejs +10 -0
  22. package/src/TemplateManager/src/externalService/LambdaRole/data.js +10 -46
  23. package/src/TemplateManager/src/libs/Consts.js +3 -3
  24. package/src/TemplateManager/src/libs/GenerateCodeUtils.js +57 -0
@@ -20,7 +20,9 @@ const path = require('path');
20
20
  const fs = require('fs');
21
21
 
22
22
  const { ACTIONS, HANDLER, STORAGE_TYPES } = require('@izara_project/izara-core-library-service-schemas/src/Consts')
23
- const { getGraphServiceNameFromGraphServerTagWithCache } = require('@izara_project/izara-core-library-service-schemas/src/ServiceConfig')
23
+ const { getGraphServiceNameFromGraphServerTagWithCache,
24
+ getGraphServiceTagWithCache
25
+ } = require('@izara_project/izara-core-library-service-schemas/src/ServiceConfig')
24
26
 
25
27
  const { firstLetterLowerCase: lowerCase, firstLetterUpperCase: upperCase, renameObjectType } = require("../../../../MainLibs/src/Utils")
26
28
  const {
@@ -87,15 +89,12 @@ const createExternalLambdaRole = async (_izContext, allObjSchemas, allRelSchemas
87
89
 
88
90
  // ... another external lambda role data
89
91
 
90
- // processTranslateId Request
91
- const externalLambdaIamRoleTranslateId = await externalLambdaIamRoleDataTranslateId(_izContext, allRelSchemas, allObjSchemas)
92
- externalLambdaIamRoleTranslateId && externalLambdaIamRoleArray.push(externalLambdaIamRoleTranslateId)
93
-
92
+ // ProcessLogical
94
93
  const externalLambdaIamRoleProcessLogical = await externalLambdaIamRoleDataProcessLogical(_izContext, allObjSchemas);
95
94
  externalLambdaIamRoleProcessLogical && externalLambdaIamRoleArray.push(externalLambdaIamRoleProcessLogical)
96
95
  }
97
96
 
98
-
97
+ console.log("externalLambdaIamRoleArray", externalLambdaIamRoleArray)
99
98
  // console.log("createSourceArrayIamRole", JSON.stringify(externalLambdaIamRoleArray))
100
99
  // return externalLambdaIamRoleArray
101
100
 
@@ -117,7 +116,7 @@ async function externalLambdaIamRoleDataPerAction(_izContext, objectSchema, acti
117
116
  const graphServiceNames = [];
118
117
  for (const storgaeResource of Object.values(objectSchema.storageResources)) {
119
118
  if (storgaeResource.storageType === STORAGE_TYPES.graph) {
120
- let getGraphServiceName = await getGraphServiceNameFromGraphServerTagWithCache(_izContext, storgaeResource.graphServerTag)
119
+ let getGraphServiceName = await getGraphServiceTagWithCache(_izContext, storgaeResource.graphServerTag)
121
120
  if (!graphServiceNames.includes(getGraphServiceName)) {
122
121
  getGraphServiceName && graphServiceNames.push(getGraphServiceName)
123
122
  }
@@ -241,52 +240,17 @@ async function externalLambdaIamRoleDataCreateRelationshipSchema(_izContext, all
241
240
 
242
241
  // delete Relationship
243
242
  async function externalLambdaIamRoleDataDeleteRelationshipSchema(_izContext, allRelSchemas, handler) {
244
- // const functionName = upperCase(FUNCTION_NAME.deleteRel) + upperCase(handler)
245
- // const additionalResourcePermission = [];
246
- // const graphServiceNamesFromAllRelSchemas = await getGraphServiceNameFromAllRelSchema(_izContext, allRelSchemas);
247
-
248
- // additionalResourcePermission.push(
249
- // createIamRole(
250
- // {
251
- // [RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish]
252
- // },
253
- // graphServiceNamesFromAllRelSchemas.map(graphServiceName =>
254
- // externalResourceSns("InDeleteRelationship", graphServiceName)
255
- // )
256
- // )
257
- // )
258
- // return {
259
- // functionName,
260
- // additionalResourcePermission
261
- // }
262
- }
263
-
264
- // Process TranslateIds Request
265
- async function externalLambdaIamRoleDataTranslateId(_izContext, allRelSchemas, allObjSchemas) {
266
- let functionName = upperCase(SHORT_FUNCTION_NAME.translateIdsProcess) + upperCase(shortNameHandler(HANDLER.hdrDsq));
243
+ const functionName = upperCase(SHORT_FUNCTION_NAME.deleteRel) + upperCase(shortNameHandler(handler))
267
244
  const additionalResourcePermission = [];
268
245
  const graphServiceNamesFromAllRelSchemas = await getGraphServiceNameFromAllRelSchema(_izContext, allRelSchemas);
269
- let complexFilterServiceTags = getComplexFilterServiceTag(allObjSchemas);
270
246
 
271
247
  additionalResourcePermission.push(
272
248
  createIamRole(
273
249
  {
274
- [RESOURCE_CLASSES.lambda]: [LAMBDA_RESOURCE.invokeFunction]
275
- },
276
- graphServiceNamesFromAllRelSchemas.map(graphServiceName => (
277
- externalResourceName(RESOURCE_CLASSES.lambda, "GetNodeAndRelationshipsV2HdrInv", graphServiceName)
278
- )
279
- )
280
- )
281
- )
282
- additionalResourcePermission.push(
283
- createIamRole(
284
- {
285
- [RESOURCE_CLASSES.dynamoDbTable]: [DYNAMO_RESOURCE.query]
250
+ [RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish]
286
251
  },
287
- complexFilterServiceTags.map(complexFilterServiceTag => (
288
- externalResourceName(RESOURCE_CLASSES.dynamoDbTable, "FilterData", complexFilterServiceTag)
289
- )
252
+ graphServiceNamesFromAllRelSchemas.map(graphServiceName =>
253
+ externalResourceSns("InDeleteRelationship", graphServiceName)
290
254
  )
291
255
  )
292
256
  )
@@ -23,7 +23,7 @@ const {
23
23
  STORAGE_TYPES
24
24
  } = require('@izara_project/izara-core-library-service-schemas/src/Consts');
25
25
 
26
- const { getGraphServiceNameFromGraphServerTagWithCache } = require('@izara_project/izara-core-library-service-schemas/src/ServiceConfig');
26
+ const { getGraphServiceNameFromGraphServerTagWithCache, getGraphServiceTagWithCache } = require('@izara_project/izara-core-library-service-schemas/src/ServiceConfig');
27
27
 
28
28
  const DEFAULT_HANDLER_PER_ACTION = {
29
29
  [ACTIONS.create]: [HANDLER.hdrApi, HANDLER.hdrSqs],
@@ -219,7 +219,7 @@ const getGraphServiceNameFromAllRelSchema = async (_izContext, allRelSchemas) =>
219
219
 
220
220
  await Promise.all(Object.values(relSchemaData.storageResources).map(async storageResource => {
221
221
  if (storageResource.storageType === STORAGE_TYPES.graph) {
222
- const getGraphServiceName = await getGraphServiceNameFromGraphServerTagWithCache(_izContext, storageResource.graphServerTag);
222
+ const getGraphServiceName = await getGraphServiceTagWithCache(_izContext, storageResource.graphServerTag);
223
223
  graphServiceNameSet.add(getGraphServiceName)
224
224
  }
225
225
  }))
@@ -272,7 +272,7 @@ async function getGraphServiceNameFromObjectSchema(_izContext, allObjSchemas) {
272
272
  for (const objectSchema of allObjSchemas) {
273
273
  for (let storageResource of Object.values(objectSchema.storageResources)) {
274
274
  if (storageResource.storageType === STORAGE_TYPES.graph) {
275
- let getGraphServiceName = await getGraphServiceNameFromGraphServerTagWithCache(_izContext, storageResource.graphServerTag)
275
+ let getGraphServiceName = await getGraphServiceTagWithCache(_izContext, storageResource.graphServerTag)
276
276
  graphServiceName.add(getGraphServiceName)
277
277
  }
278
278
  }
@@ -0,0 +1,57 @@
1
+ /*
2
+ Copyright (C) 2020 Sven Mason <http://izara.io>
3
+
4
+ This program is free software: you can redistribute it and/or modify
5
+ it under the terms of the GNU Affero General Public License as
6
+ published by the Free Software Foundation, either version 3 of the
7
+ License, or (at your option) any later version.
8
+
9
+ This program is distributed in the hope that it will be useful,
10
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ GNU Affero General Public License for more details.
13
+
14
+ You should have received a copy of the GNU Affero General Public License
15
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
16
+ */
17
+
18
+ 'use strict';
19
+
20
+ const hash = require('object-hash');
21
+
22
+
23
+ function checkValidTableYaml(_izContext, currentTableSetting, existsTableSetting) {
24
+ /*
25
+ return table yml setting that already filter duplicate tableName that have same table setting
26
+ throw error when found duplicate table name but not have same table setting
27
+ */
28
+
29
+ let filteredDynamoDbYamlSetting = [];
30
+
31
+ for (let i = 0, length = currentTableSetting.length; i < length; i++) {
32
+ let dynamoDbYamlSetting = currentTableSetting[i];
33
+ if (existsTableSetting.hasOwnProperty(dynamoDbYamlSetting.templateData.tableName)) {
34
+
35
+ // exists table
36
+ if (hash(existsTableSetting[dynamoDbYamlSetting.templateData.tableName]) === hash(dynamoDbYamlSetting.templateData.attributes.sort())) {
37
+ continue;
38
+ } else {
39
+ throw Error(`tableName:${dynamoDbYamlSetting.templateData.tableName} have duplicate setting but not have same setting`)
40
+ }
41
+
42
+ } else {
43
+ filteredDynamoDbYamlSetting.push(dynamoDbYamlSetting);
44
+
45
+ // not exists table
46
+ Object.assign(
47
+ existsTableSetting,
48
+ {
49
+ [dynamoDbYamlSetting.templateData.tableName]: dynamoDbYamlSetting.templateData.attributes.sort()
50
+ }
51
+ );
52
+ }
53
+ }
54
+ return [filteredDynamoDbYamlSetting, existsTableSetting];
55
+ }
56
+
57
+ module.exports = { checkValidTableYaml };