@izara_project/izara-market-library-service-schemas 1.0.13 → 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 (23) hide show
  1. package/package.json +1 -1
  2. package/src/GenerateCodeLibs/src/GenerateCodeLibs.js +4 -4
  3. package/src/TemplateManager/src/GenerateCode.js +3 -3
  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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@izara_project/izara-market-library-service-schemas",
3
- "version": "1.0.13",
3
+ "version": "1.0.14",
4
4
  "description": "Schemas for Izara Market project",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -154,11 +154,11 @@ async function validateSchemaPerRecord(
154
154
 
155
155
  // if not pass validate will sent messsage to dlq and throw NoRetryError
156
156
  if (!validateStatus.pass) {
157
- await messageToDlq(record, `Invalid: ${validateStatus.error}`, sqsSharedLib.sqsQueueUrlDLQ(lambdaFunctionName));
157
+ await messageToDlq(record, `Invalid: ${validateStatus.error}`, await sqsSharedLib.sqsQueueUrlDLQ(record._izContext, lambdaFunctionName));
158
158
  record._izError = new Error(validateStatus.error)
159
159
  }
160
160
  } catch (error) {
161
- await messageToDlq(record, error.message, sqsSharedLib.sqsQueueUrlDLQ(lambdaFunctionName));
161
+ await messageToDlq(record, error.message, await sqsSharedLib.sqsQueueUrlDLQ(record._izContext, lambdaFunctionName));
162
162
  record._izError = new Error(error)
163
163
  }
164
164
 
@@ -176,7 +176,7 @@ async function sendMsgOutComplete(_izContext, topicName, messageObj, callingFlow
176
176
  let sendMessageOutComplete = {
177
177
  Message: JSON.stringify(messageObj),
178
178
  MessageAttributes: sns.createStringMessageAttributes(_izContext, messageAttributes),
179
- TopicArn: snsSharedLib.snsTopicArn(topicName),
179
+ TopicArn: await snsSharedLib.snsTopicArn(_izContext, topicName),
180
180
  };
181
181
 
182
182
  _izContext.logger.debug(`Send message to ${topicName} :`, sendMessageOutComplete);
@@ -214,7 +214,7 @@ async function messageToDlq(record, messageFailError, queueUrl) {
214
214
 
215
215
  record._izContext.logger.debug('messageToDlq, params before sending DLQ', params);
216
216
 
217
- await sqs.sendMessage(record._izContext, params).promise();
217
+ sqs.sendMessage(record._izContext, params);
218
218
  record._izContext.logger.debug("----- messageToDlq sendMessage success -----");
219
219
  };
220
220
 
@@ -178,7 +178,7 @@ const createProcessLogicalPaginateFunctionYamlHdrDsq = require('./ProcessLogical
178
178
  const createProcessLogicalPaginateFunctionYamlHdrSqs = require('./ProcessLogicalPagination/FunctionYaml/HdrSqs/data')
179
179
 
180
180
  //get functionNameConfig
181
- const functionNameConfigFile = require('./externalService/FunctionNameConfig/data')
181
+ const functionNameConfigYamldata = require('./externalService/FunctionNameConfig/data')
182
182
 
183
183
  //lib of generateCode
184
184
  const { checkValidTableYaml } = require('./libs/GenerateCodeUtils');
@@ -479,8 +479,8 @@ async function generateCodeWithTemplate(_izContext, objSchemaPath) {
479
479
  }
480
480
  // console.log("createSourceParams templatePath in GenerateCode", createSourceParams.templatePath)
481
481
 
482
- const createFunctionNameConfig = functionNameConfigFile(_izContext, createSourceParams, saveFilePath);
483
- createSourceParams = createSourceParams.concat(createFunctionNameConfig);
482
+ const createFunctionNameConfig = functionNameConfigYamldata(_izContext, createSourceParams, saveFilePath);
483
+ createSourceParams = createSourceParams.concat(...createFunctionNameConfig);
484
484
 
485
485
  // delete file .yml before start to prevent confilct of data
486
486
  for (let folderPathToEmpty of Object.keys(GENERATECODE_SOURCE_PATH)) {
@@ -68,8 +68,8 @@ module.exports.main = middleware.wrap(async (event,context, callback) => {
68
68
  await validateSchemaPerRecord(
69
69
  record,
70
70
  "<%- functionName %><%- firstLetterUpperCase(handler) %>",
71
- "OBJTYPE,
72
- <%- action %>"
71
+ OBJTYPE,
72
+ "<%- action %>"
73
73
  //(<validateSchemaSetting>)
74
74
  //(</validateSchemaSetting>)
75
75
  )
@@ -40,7 +40,7 @@ async function data(_izContext, objectSchema, srcPath) {
40
40
  async function createMainFunctionUpdateEndpoint(_izContext, objectSchema, action, srcPath) {
41
41
  let objectType = objectSchema.objectType
42
42
  let actionHandler = action;
43
- let functionName = upperCase(objectType) + upperCase(actionHandler);
43
+ let functionName = (objectType) + upperCase(actionHandler);
44
44
  return {
45
45
  templatePath: templatePath,
46
46
  templateData: {
@@ -83,6 +83,8 @@ module.exports.<%- functionName %>Main = async (
83
83
  _izContext.logger.debug("<%- functionName %> requestParams", requestParams)
84
84
  _izContext.logger.debug("<%- functionName %> callingFlowConfig", callingFlowConfig)
85
85
 
86
+ let errorFounds = [];
87
+
86
88
  _izContext.correlationIds.set(coreConsts.BASE_USER_ID, "BasDev");
87
89
  const userId = _izContext.correlationIds.get(coreConsts.BASE_USER_ID)
88
90
  if (!userId) {
@@ -115,7 +117,6 @@ module.exports.<%- functionName %>Main = async (
115
117
 
116
118
  let originTimestamp = Date.now();
117
119
 
118
- let errorFounds = [];
119
120
 
120
121
  let messageAttributes
121
122
 
@@ -136,7 +137,7 @@ module.exports.<%- functionName %>Main = async (
136
137
 
137
138
  updateNodeCompleteMessage = callingFlowSharedLib.addPassBackPropertiesToSnsResponseMessageObject(callingFlowConfig, updateNodeCompleteMessage);
138
139
  messageAttributes = callingFlowSharedLib.addCallingFlowToSnsResponseMessageAttributes(callingFlowConfig, {})
139
-
140
+
140
141
  let messageParams = {
141
142
  Message: JSON.stringify(updateNodeCompleteMessage),
142
143
  MessageAttributes: sns.createStringMessageAttributes(_izContext, messageAttributes),
@@ -22,7 +22,7 @@ const fs = require('fs');
22
22
  const { ACTIONS, HANDLER, STORAGE_TYPES } = require('@izara_project/izara-core-library-service-schemas/src/Consts')
23
23
 
24
24
  const { firstLetterLowerCase: lowerCase, firstLetterUpperCase: upperCase } = require("../../../../../../../MainLibs/src/Utils")
25
- const { createIamRole, resourceNames, RESOURCE_CLASSES, SOURCE_PATH, SAVE_FILE_NAME, FUNCTION_NAME, SNS_RESOURCE, defaultIamRolePerAction, awaitingMultipleStepsRole, SHORT_FUNCTION_NAME } = require("../../../../../libs/Consts");
25
+ const { createIamRole, resourceNames, RESOURCE_CLASSES, SOURCE_PATH, SAVE_FILE_NAME, FUNCTION_NAME, SNS_RESOURCE, defaultIamRolePerAction, awaitingMultipleStepsRole, SHORT_FUNCTION_NAME, shortNameHandler } = require("../../../../../libs/Consts");
26
26
 
27
27
  const templatePath = path.join(__dirname, './template.ejs')
28
28
 
@@ -68,7 +68,7 @@ function createParamForCreateSource(srcPath) {
68
68
  handlerType,
69
69
  additionalResourcePermission,
70
70
  resourceLocation: SOURCE_PATH.resourceLocationRelationshipPerAction,
71
- functionNameConfig: upperCase(SHORT_FUNCTION_NAME.deleteRel) + upperCase(handlerType)
71
+ functionNameConfig: upperCase(SHORT_FUNCTION_NAME.deleteRel) + upperCase(shortNameHandler(handlerType))
72
72
  },
73
73
  setting: {
74
74
  savePath: path.join(srcPath, SOURCE_PATH.appYaml),
@@ -60,7 +60,7 @@ const {
60
60
  *
61
61
  * @returns {object} description of return value
62
62
  */
63
- module.exports.<%- functionName %> = async (
63
+ module.exports.deleteRelationship = async (
64
64
  _izContext,
65
65
  requestParams,
66
66
  callingFlowConfig = {},
@@ -70,15 +70,17 @@ module.exports.<%- functionName %> = async (
70
70
 
71
71
 
72
72
  try {
73
- _izContext.logger.debug('createRelationship _izContext: ', _izContext);
74
- _izContext.logger.debug('createRelationship requestParams: ', requestParams);
75
- _izContext.logger.debug('createRelationship callingFlowConfig: ', callingFlowConfig);
73
+ _izContext.logger.debug('deleteRelationship _izContext: ', _izContext);
74
+ _izContext.logger.debug('deleteRelationship requestParams: ', requestParams);
75
+ _izContext.logger.debug('deleteRelationship callingFlowConfig: ', callingFlowConfig);
76
76
 
77
77
 
78
78
  const {
79
- objects,
79
+ firstObject,
80
+ secondObject,
80
81
  relType,
81
- relationshipProperties
82
+ relationshipProperties,
83
+ relationshipDirection
82
84
  //(<requestparamDeleteRel>)
83
85
  //(</requestparamDeleteRel>)
84
86
  } = requestParams;
@@ -114,8 +116,8 @@ module.exports.<%- functionName %> = async (
114
116
  }
115
117
  }
116
118
 
117
- await validateIdentifiersExists(_izContext, objects[0].objType, objects[0].identifiers);
118
- await validateIdentifiersExists(_izContext, objects[1].objType, objects[1].identifiers);
119
+ await validateIdentifiersExists(_izContext, firstObject.objType, firstObject.identifiers);
120
+ await validateIdentifiersExists(_izContext, secondObject.objType, secondObject.identifiers);
119
121
  // finished validate object and identifiers
120
122
 
121
123
  //(<afterValidateDeleteRel>)
@@ -136,8 +138,8 @@ module.exports.<%- functionName %> = async (
136
138
  const { serviceTag: fromServiceTag, objectType: fromObjectType } = from.objType
137
139
  const { serviceTag: toServiceTag, objectType: toObjectType } = to.objType
138
140
 
139
- const { serviceTag: firstServiceTag, objectType: firstObjectType } = objects[0].objType;
140
- const { serviceTag: secondServiceTag, objectType: secondObjectType } = objects[1].objType;
141
+ const { serviceTag: firstServiceTag, objectType: firstObjectType } = firstObject.objType;
142
+ const { serviceTag: secondServiceTag, objectType: secondObjectType } = secondObject.objType;
141
143
 
142
144
  // find exists link
143
145
  if (
@@ -189,7 +191,7 @@ module.exports.<%- functionName %> = async (
189
191
  }
190
192
 
191
193
  // validate canCreate properties relationship
192
- for (const [propName, propSetting] of Object.entries(relationshipSchema.properties)) {
194
+ for (const [propName, propSetting] of Object.entries(relationshipSchema.fieldNames)) {
193
195
  if (propSetting.requiredOnCreate === true) {
194
196
  if (!relationshipProperties.hasOwnProperty(propName)) {
195
197
  errorsFound.push(`Missing requiredOnCreate property:${propKey}`);
@@ -210,9 +212,11 @@ module.exports.<%- functionName %> = async (
210
212
  if (errorsFound.length) {
211
213
 
212
214
  let deleteRelCompleteMsg = {
213
- objects: objects,
215
+ firstObject: firstObject,
216
+ secondObject: secondObject,
214
217
  relType: relType,
215
218
  relationshipProperties: relationshipProperties,
219
+ relationshipDirection: relationshipDirection,
216
220
  //(<inDeleteRelCompleteMsg>)
217
221
  //(</inDeleteRelCompleteMsg>)
218
222
  status: 'error',
@@ -241,7 +245,7 @@ module.exports.<%- functionName %> = async (
241
245
 
242
246
 
243
247
  // before create awaitingStepId per graph storageResource
244
- const linkTypeId = createLinkTypeId(_izContext, [objects[0].objType, objects[1].objType], relType);
248
+ const linkTypeId = createLinkTypeId(_izContext, objects[0].objType, objects[1].objType, relType, relationshipDirection);
245
249
 
246
250
  let usedGraphServiceTag = []; // collect used graph serviceTag, use to check duplicate graph serviceTag across graph serverTag
247
251
  let targetGraphStorageResources = []; // collect used graph storageResources, filtered duplicate graphServiceTag from graphServerTag out
@@ -277,9 +281,11 @@ module.exports.<%- functionName %> = async (
277
281
 
278
282
  // prepare message body
279
283
  let deleteRelMessageBody = {
280
- objects: objects,
284
+ firstObject: firstObject,
285
+ secondObject: secondObject,
281
286
  relType: relType,
282
- relationshipProperties
287
+ relationshipProperties: relationshipProperties,
288
+ relationshipDirection: relationshipDirection,
283
289
  //(<inDeleteRelMessageBody>)
284
290
  //(</inDeleteRelMessageBody>)
285
291
  }
@@ -315,10 +321,12 @@ module.exports.<%- functionName %> = async (
315
321
  }
316
322
 
317
323
  return {
318
- objects,
324
+ firstObject,
325
+ secondObject,
319
326
  relType,
320
327
  relationshipProperties,
321
- errorFounds: errorsFound
328
+ relationshipDirection,
329
+ errorsFound
322
330
  };
323
331
 
324
332
 
@@ -27,31 +27,44 @@ const <%- functionName %> = require('./<%- firstLetterUpperCase(functionName) %>
27
27
  // validate event params in middleware before into function
28
28
  let validatorSchema = {
29
29
  type: "object",
30
- required: ["objects", "relType", "relationshipProperties"],
30
+ required: ["firstObject","secondObject", "relType", "relationshipProperties","relationshipDirection"],
31
31
  properties: {
32
- objects: {
33
- type: "array",
34
- minItems: 2,
35
- maxItems: 2,
36
- Items: {
37
- type: "object",
38
- required: ["objType", "identifiers"],
39
- properties: {
40
- objType: {
41
- type: "object",
42
- required: ["serviceTag", "objectType"],
43
- properties: {
44
- serviceTag: izara.validatorSchema.stringNotEmpty(),
45
- objectType: izara.validatorSchema.stringNotEmpty()
46
- }
47
- },
48
- identifiers: {
49
- type: "object",
50
- minproperties: 1
32
+ firstObject: {
33
+ type: "object",
34
+ required: ["objType","identifiers"],
35
+ properties: {
36
+ objType: {
37
+ type: "object",
38
+ required: ["serviceTag","objectType"],
39
+ properties: {
40
+ serviceTag: izara.validatorSchema.stringNotEmpty(),
41
+ objectType: izara.validatorSchema.stringNotEmpty(),
51
42
  }
43
+ },
44
+ identifiers: {
45
+ type: "object",
46
+ minProperties: 1
52
47
  }
53
48
  }
54
49
  },
50
+ secondObject: {
51
+ type: "object",
52
+ required: ["objType","identifiers"],
53
+ properties: {
54
+ objType: {
55
+ type: "object",
56
+ required: ["serviceTag","objectType"],
57
+ properties: {
58
+ serviceTag: izara.validatorSchema.stringNotEmpty(),
59
+ objectType: izara.validatorSchema.stringNotEmpty(),
60
+ }
61
+ },
62
+ identifiers: {
63
+ type: "object",
64
+ minProperties: 1
65
+ }
66
+ }
67
+ },
55
68
  relType: {
56
69
  type: "object",
57
70
  required: ["relationshipTag", "serviceTag"],
@@ -67,6 +80,10 @@ let validatorSchema = {
67
80
  relationshipProperties: {
68
81
  type: "object",
69
82
  minProperties: 1
83
+ },
84
+ relationshipDirection: {
85
+ type: "string",
86
+ enum: ['from','to']
70
87
  }
71
88
  }
72
89
  };
@@ -94,7 +111,8 @@ module.exports.main = middleware.wrap(async (event, context, callback) => {
94
111
  objects: event.objects,
95
112
  relType: event.relType,
96
113
  relId: event.relId,
97
- relationshipProperties: event.relationshipProperties
114
+ relationshipProperties: event.relationshipProperties,
115
+ relationshipDirection: event.relationshipDirection
98
116
  }
99
117
  );
100
118
 
@@ -46,33 +46,46 @@ middleware.setValidatorSchema(recordHandlerSharedLib.baseValidatorSchema(
46
46
  ));
47
47
 
48
48
  // validate event params in middlewware before into function.
49
- let validatorSchema = {
49
+ let validatorSchema = {
50
50
  type: "object",
51
- required: ["objects", "relType", "relationshipProperties"],
51
+ required: ["firstObject","secondObject", "relType", "relationshipProperties","relationshipDirection"],
52
52
  properties: {
53
- objects: {
54
- type: "array",
55
- minItems: 2,
56
- maxItems: 2,
57
- Items: {
58
- type: "object",
59
- required: ["objType", "identifiers"],
60
- properties: {
61
- objType: {
62
- type: "object",
63
- required: ["serviceTag", "objectType"],
64
- properties: {
65
- serviceTag: izara.validatorSchema.stringNotEmpty(),
66
- objectType: izara.validatorSchema.stringNotEmpty()
67
- }
68
- },
69
- identifiers: {
70
- type: "object",
71
- minproperties: 1
53
+ firstObject: {
54
+ type: "object",
55
+ required: ["objType","identifiers"],
56
+ properties: {
57
+ objType: {
58
+ type: "object",
59
+ required: ["serviceTag","objectType"],
60
+ properties: {
61
+ serviceTag: izara.validatorSchema.stringNotEmpty(),
62
+ objectType: izara.validatorSchema.stringNotEmpty(),
72
63
  }
64
+ },
65
+ identifiers: {
66
+ type: "object",
67
+ minProperties: 1
73
68
  }
74
69
  }
75
70
  },
71
+ secondObject: {
72
+ type: "object",
73
+ required: ["objType","identifiers"],
74
+ properties: {
75
+ objType: {
76
+ type: "object",
77
+ required: ["serviceTag","objectType"],
78
+ properties: {
79
+ serviceTag: izara.validatorSchema.stringNotEmpty(),
80
+ objectType: izara.validatorSchema.stringNotEmpty(),
81
+ }
82
+ },
83
+ identifiers: {
84
+ type: "object",
85
+ minProperties: 1
86
+ }
87
+ }
88
+ },
76
89
  relType: {
77
90
  type: "object",
78
91
  required: ["relationshipTag", "serviceTag"],
@@ -88,6 +101,10 @@ let validatorSchema = {
88
101
  relationshipProperties: {
89
102
  type: "object",
90
103
  minProperties: 1
104
+ },
105
+ relationshipDirection: {
106
+ type: "string",
107
+ enum: ['from','to']
91
108
  }
92
109
  }
93
110
  };
@@ -29,33 +29,46 @@ const callingFlowSharedLib = require('@izara_project/izara-shared/src/CallingFlo
29
29
  const <%- functionName %> = require('./<%- firstLetterUpperCase(functionName) %>_Main');
30
30
 
31
31
  // validate event params in middlewware before into function.
32
- let validatorSchema = {
32
+ let validatorSchema = {
33
33
  type: "object",
34
- required: ["objects", "relType", "relationshipProperties"],
34
+ required: ["firstObject","secondObject", "relType", "relationshipProperties","relationshipDirection"],
35
35
  properties: {
36
- objects: {
37
- type: "array",
38
- minItems: 2,
39
- maxItems: 2,
40
- Items: {
41
- type: "object",
42
- required: ["objType", "identifiers"],
43
- properties: {
44
- objType: {
45
- type: "object",
46
- required: ["serviceTag", "objectType"],
47
- properties: {
48
- serviceTag: izara.validatorSchema.stringNotEmpty(),
49
- objectType: izara.validatorSchema.stringNotEmpty()
50
- }
51
- },
52
- identifiers: {
53
- type: "object",
54
- minproperties: 1
36
+ firstObject: {
37
+ type: "object",
38
+ required: ["objType","identifiers"],
39
+ properties: {
40
+ objType: {
41
+ type: "object",
42
+ required: ["serviceTag","objectType"],
43
+ properties: {
44
+ serviceTag: izara.validatorSchema.stringNotEmpty(),
45
+ objectType: izara.validatorSchema.stringNotEmpty(),
55
46
  }
47
+ },
48
+ identifiers: {
49
+ type: "object",
50
+ minProperties: 1
56
51
  }
57
52
  }
58
53
  },
54
+ secondObject: {
55
+ type: "object",
56
+ required: ["objType","identifiers"],
57
+ properties: {
58
+ objType: {
59
+ type: "object",
60
+ required: ["serviceTag","objectType"],
61
+ properties: {
62
+ serviceTag: izara.validatorSchema.stringNotEmpty(),
63
+ objectType: izara.validatorSchema.stringNotEmpty(),
64
+ }
65
+ },
66
+ identifiers: {
67
+ type: "object",
68
+ minProperties: 1
69
+ }
70
+ }
71
+ },
59
72
  relType: {
60
73
  type: "object",
61
74
  required: ["relationshipTag", "serviceTag"],
@@ -71,6 +84,10 @@ let validatorSchema = {
71
84
  relationshipProperties: {
72
85
  type: "object",
73
86
  minProperties: 1
87
+ },
88
+ relationshipDirection: {
89
+ type: "string",
90
+ enum: ['from','to']
74
91
  }
75
92
  }
76
93
  };
@@ -84,12 +101,13 @@ module.exports.main = middleware.wrap(async (event, context, callback) => {
84
101
 
85
102
  try {
86
103
  // invoke LambdaFunction
87
- return await createRelationship.createRelationship(
104
+ return await <%- functionName %>.<%- functionName %>(
88
105
  event._izContext, // correlationId/logger/integrationTestDetail/uniqueRequestId
89
106
  {
90
107
  objects: event.objects,
91
108
  relType: event.relType,
92
109
  relationshipProperties: event.relationshipProperties,
110
+ relationshipDirection: event.relationshipDirection
93
111
  },
94
112
  callingFlowSharedLib.addCallingFlowToPassOnProperties(event)
95
113
  );
@@ -30,33 +30,46 @@ const <%- functionName %> = require('./<%- firstLetterUpperCase(functionName) %>
30
30
  middleware.setValidatorSchema(recordHandlerSharedLib.baseValidatorSchema());
31
31
 
32
32
  // validate event params in middleware before into function
33
- let validatorSchema = {
33
+ let validatorSchema = {
34
34
  type: "object",
35
- required: ["objects", "relType", "relationshipProperties"],
35
+ required: ["firstObject","secondObject", "relType", "relationshipProperties","relationshipDirection"],
36
36
  properties: {
37
- objects: {
38
- type: "array",
39
- minItems: 2,
40
- maxItems: 2,
41
- Items: {
42
- type: "object",
43
- required: ["objType", "identifiers"],
44
- properties: {
45
- objType: {
46
- type: "object",
47
- required: ["serviceTag", "objectType"],
48
- properties: {
49
- serviceTag: izara.validatorSchema.stringNotEmpty(),
50
- objectType: izara.validatorSchema.stringNotEmpty()
51
- }
52
- },
53
- identifiers: {
54
- type: "object",
55
- minproperties: 1
37
+ firstObject: {
38
+ type: "object",
39
+ required: ["objType","identifiers"],
40
+ properties: {
41
+ objType: {
42
+ type: "object",
43
+ required: ["serviceTag","objectType"],
44
+ properties: {
45
+ serviceTag: izara.validatorSchema.stringNotEmpty(),
46
+ objectType: izara.validatorSchema.stringNotEmpty(),
56
47
  }
48
+ },
49
+ identifiers: {
50
+ type: "object",
51
+ minProperties: 1
57
52
  }
58
53
  }
59
54
  },
55
+ secondObject: {
56
+ type: "object",
57
+ required: ["objType","identifiers"],
58
+ properties: {
59
+ objType: {
60
+ type: "object",
61
+ required: ["serviceTag","objectType"],
62
+ properties: {
63
+ serviceTag: izara.validatorSchema.stringNotEmpty(),
64
+ objectType: izara.validatorSchema.stringNotEmpty(),
65
+ }
66
+ },
67
+ identifiers: {
68
+ type: "object",
69
+ minProperties: 1
70
+ }
71
+ }
72
+ },
60
73
  relType: {
61
74
  type: "object",
62
75
  required: ["relationshipTag", "serviceTag"],
@@ -72,11 +85,14 @@ let validatorSchema = {
72
85
  relationshipProperties: {
73
86
  type: "object",
74
87
  minProperties: 1
88
+ },
89
+ relationshipDirection: {
90
+ type: "string",
91
+ enum: ['from','to']
75
92
  }
76
93
  }
77
94
  };
78
95
 
79
-
80
96
  //(<globalVarible>
81
97
  //</globalVarible>)
82
98
 
@@ -65,7 +65,7 @@ function createParamForCreateSource(srcPath) {
65
65
  functionName,
66
66
  handlerType,
67
67
  additionalResourcePermission,
68
- resourceLocation: SOURCE_PATH.relationshipPerAction,
68
+ resourceLocation: SOURCE_PATH.resourceLocationRelationshipPerAction,
69
69
  functionNameConfig: upperCase(SHORT_FUNCTION_NAME.updateRel) + upperCase(shortNameHandler(handlerType))
70
70
  },
71
71
  setting: {
@@ -67,7 +67,7 @@ const {
67
67
  *
68
68
  * @returns {object} description of return value
69
69
  */
70
- module.exports.<%- functionName %> = async (
70
+ module.exports.updateRelationship = async (
71
71
  _izContext,
72
72
  requestParams,
73
73
  callingFlowConfig = {},
@@ -83,10 +83,12 @@ module.exports.<%- functionName %> = async (
83
83
 
84
84
 
85
85
  const {
86
- objects,
86
+ firstObject,
87
+ secondObject,
87
88
  relType,
88
89
  relId,
89
- relationshipProperties
90
+ relationshipProperties,
91
+ relationshipDirection
90
92
  //(<requestparamUpdateRel>)
91
93
  //(</requestparamUpdateRel>)
92
94
  } = requestParams;
@@ -121,8 +123,8 @@ module.exports.<%- functionName %> = async (
121
123
  }
122
124
  }
123
125
 
124
- await validateIdentifiersExists(_izContext, objects[0].objType, objects[0].identifiers);
125
- await validateIdentifiersExists(_izContext, objects[1].objType, objects[1].identifiers);
126
+ await validateIdentifiersExists(_izContext, firstObject.objType, firstObject.identifiers);
127
+ await validateIdentifiersExists(_izContext, secondObject.objType, secondObject.identifiers);
126
128
  // finished validate object and identifiers
127
129
 
128
130
  //(<afterValidateUpdateRel>)
@@ -142,8 +144,8 @@ module.exports.<%- functionName %> = async (
142
144
  const { serviceTag: fromServiceTag, objectType: fromObjectType } = from.objType
143
145
  const { serviceTag: toServiceTag, objectType: toObjectType } = to.objType
144
146
 
145
- const { serviceTag: firstServiceTag, objectType: firstObjectType } = objects[0].objType;
146
- const { serviceTag: secondServiceTag, objectType: secondObjectType } = objects[1].objType;
147
+ const { serviceTag: firstServiceTag, objectType: firstObjectType } = firstObject.objType;
148
+ const { serviceTag: secondServiceTag, objectType: secondObjectType } = secondObject.objType;
147
149
 
148
150
  // find exists link
149
151
  if (
@@ -210,8 +212,11 @@ module.exports.<%- functionName %> = async (
210
212
  if (errorsFound.length) {
211
213
 
212
214
  let updateCompleteMsg = {
215
+ firstObject: firstObject,
216
+ secondObject: secondObject,
213
217
  relId: relId,
214
218
  relType: relType,
219
+ relationshipDirection,
215
220
  status: 'error',
216
221
  errorFounds: errorsFound
217
222
  //(<inUpdateCompleteMsgUpdateRel>)
@@ -240,7 +245,7 @@ module.exports.<%- functionName %> = async (
240
245
 
241
246
 
242
247
  // before create awaitingStepId per graph storageResource
243
- const linkTypeId = createLinkTypeId(_izContext, [objects[0].objType, objects[1].objType], relType);
248
+ const linkTypeId = createLinkTypeId(_izContext, firstObject.objType, secondObject.objType, relType, relationshipDirection);
244
249
 
245
250
  let usedGraphServiceTag = []; // collect used graph serviceName, use to check duplicate graph serviceName across graph serverTag
246
251
  let targetGraphStorageResources = []; // collect used graph storageResources, filtered duplicate graphServiceTag from graphServerTag out
@@ -276,10 +281,12 @@ module.exports.<%- functionName %> = async (
276
281
 
277
282
  // prepare message body
278
283
  let updateRelMessageBody = {
279
- objects: objects,
284
+ firstObject,
285
+ secondObject,
280
286
  relId,
281
287
  relType: relType,
282
- relationshipProperties
288
+ relationshipProperties,
289
+ relationshipDirection
283
290
  //(<inUpdateRelMessageBodyUpdateRel>)
284
291
  //(</inUpdateRelMessageBodyUpdateRel>)
285
292
  }
@@ -318,9 +325,12 @@ module.exports.<%- functionName %> = async (
318
325
  }
319
326
 
320
327
  return {
328
+ firstObject,
329
+ secondObject,
321
330
  relId: relId,
322
331
  relType: relType,
323
- errorFounds: errorsFound
332
+ relationshipDirection,
333
+ errorsFound
324
334
  };
325
335
 
326
336
  } catch (err) {
@@ -27,31 +27,44 @@ const <%- functionName %> = require('./<%- firstLetterUpperCase(functionName) %>
27
27
  // validate event params in middleware before into function
28
28
  let validatorSchema = {
29
29
  type: "object",
30
- required: ["objects", "relId", "relType", "relationshipProperties"],
30
+ required: ["firstObject","secondObject", "relType", "relationshipProperties","relationshipDirection"],
31
31
  properties: {
32
- objects: {
33
- type: "array",
34
- minItems: 2,
35
- maxItems: 2,
36
- Items: {
37
- type: "object",
38
- required: ["objType", "identifiers"],
39
- properties: {
40
- objType: {
41
- type: "object",
42
- required: ["serviceTag", "objectType"],
43
- properties: {
44
- serviceTag: izara.validatorSchema.stringNotEmpty(),
45
- objectType: izara.validatorSchema.stringNotEmpty()
46
- }
47
- },
48
- identifiers: {
49
- type: "object",
50
- minproperties: 1
32
+ firstObject: {
33
+ type: "object",
34
+ required: ["objType","identifiers"],
35
+ properties: {
36
+ objType: {
37
+ type: "object",
38
+ required: ["serviceTag","objectType"],
39
+ properties: {
40
+ serviceTag: izara.validatorSchema.stringNotEmpty(),
41
+ objectType: izara.validatorSchema.stringNotEmpty(),
51
42
  }
43
+ },
44
+ identifiers: {
45
+ type: "object",
46
+ minProperties: 1
52
47
  }
53
48
  }
54
49
  },
50
+ secondObject: {
51
+ type: "object",
52
+ required: ["objType","identifiers"],
53
+ properties: {
54
+ objType: {
55
+ type: "object",
56
+ required: ["serviceTag","objectType"],
57
+ properties: {
58
+ serviceTag: izara.validatorSchema.stringNotEmpty(),
59
+ objectType: izara.validatorSchema.stringNotEmpty(),
60
+ }
61
+ },
62
+ identifiers: {
63
+ type: "object",
64
+ minProperties: 1
65
+ }
66
+ }
67
+ },
55
68
  relType: {
56
69
  type: "object",
57
70
  required: ["relationshipTag", "serviceTag"],
@@ -68,6 +81,10 @@ let validatorSchema = {
68
81
  relationshipProperties: {
69
82
  type: "object",
70
83
  minProperties: 1
84
+ },
85
+ relationshipDirection: {
86
+ type: "string",
87
+ enum: ['from','to']
71
88
  }
72
89
  }
73
90
  };
@@ -47,31 +47,44 @@ middleware.setValidatorSchema(recordHandlerSharedLib.baseValidatorSchema(
47
47
  // validate event params in middleware before into function
48
48
  let validatorSchema = {
49
49
  type: "object",
50
- required: ["objects", "relId", "relType", "relationshipProperties"],
50
+ required: ["firstObject","secondObject", "relType", "relationshipProperties","relationshipDirection"],
51
51
  properties: {
52
- objects: {
53
- type: "array",
54
- minItems: 2,
55
- maxItems: 2,
56
- items: {
57
- type: 'object',
58
- required: ["objType", "identifiers"],
59
- properties: {
60
- objType: {
61
- type: "object",
62
- required: ["serviceTag", "objectType"],
63
- properties: {
64
- serviceTag: izara.validatorSchema.stringNotEmpty(),
65
- objectType: izara.validatorSchema.stringNotEmpty()
66
- }
67
- },
68
- identifiers: {
69
- type: "object",
70
- minProperties: 1
52
+ firstObject: {
53
+ type: "object",
54
+ required: ["objType","identifiers"],
55
+ properties: {
56
+ objType: {
57
+ type: "object",
58
+ required: ["serviceTag","objectType"],
59
+ properties: {
60
+ serviceTag: izara.validatorSchema.stringNotEmpty(),
61
+ objectType: izara.validatorSchema.stringNotEmpty(),
71
62
  }
63
+ },
64
+ identifiers: {
65
+ type: "object",
66
+ minProperties: 1
72
67
  }
73
68
  }
74
69
  },
70
+ secondObject: {
71
+ type: "object",
72
+ required: ["objType","identifiers"],
73
+ properties: {
74
+ objType: {
75
+ type: "object",
76
+ required: ["serviceTag","objectType"],
77
+ properties: {
78
+ serviceTag: izara.validatorSchema.stringNotEmpty(),
79
+ objectType: izara.validatorSchema.stringNotEmpty(),
80
+ }
81
+ },
82
+ identifiers: {
83
+ type: "object",
84
+ minProperties: 1
85
+ }
86
+ }
87
+ },
75
88
  relType: {
76
89
  type: "object",
77
90
  required: ["relationshipTag", "serviceTag"],
@@ -81,14 +94,18 @@ let validatorSchema = {
81
94
  type: 'string',
82
95
  pattern: "^[a-zA-Z0-9_-]+$",
83
96
  enum: [process.env.iz_serviceTag]
84
- },
97
+ }
85
98
  }
86
99
  },
87
100
  relId: izara.validatorSchema.stringNotEmpty(),
88
101
  relationshipProperties: {
89
- type: 'object',
90
- minProperties: 1,
102
+ type: "object",
103
+ minProperties: 1
91
104
  },
105
+ relationshipDirection: {
106
+ type: "string",
107
+ enum: ['from','to']
108
+ }
92
109
  }
93
110
  };
94
111
 
@@ -29,31 +29,44 @@ const <%- functionName %> = require('./<%- firstLetterUpperCase(functionName) %>
29
29
  // validate event params in middlewware before into function.
30
30
  let validatorSchema = {
31
31
  type: "object",
32
- required: ["objects", "relId", "relType", "relationshipProperties"],
32
+ required: ["firstObject","secondObject", "relType", "relationshipProperties","relationshipDirection"],
33
33
  properties: {
34
- objects: {
35
- type: "array",
36
- minItems: 2,
37
- maxItems: 2,
38
- items: {
39
- type: 'object',
40
- required: ["objType", "identifiers"],
41
- properties: {
42
- objType: {
43
- type: "object",
44
- required: ["serviceTag", "objectType"],
45
- properties: {
46
- serviceTag: izara.validatorSchema.stringNotEmpty(),
47
- objectType: izara.validatorSchema.stringNotEmpty()
48
- }
49
- },
50
- identifiers: {
51
- type: "object",
52
- minProperties: 1
34
+ firstObject: {
35
+ type: "object",
36
+ required: ["objType","identifiers"],
37
+ properties: {
38
+ objType: {
39
+ type: "object",
40
+ required: ["serviceTag","objectType"],
41
+ properties: {
42
+ serviceTag: izara.validatorSchema.stringNotEmpty(),
43
+ objectType: izara.validatorSchema.stringNotEmpty(),
53
44
  }
45
+ },
46
+ identifiers: {
47
+ type: "object",
48
+ minProperties: 1
54
49
  }
55
50
  }
56
51
  },
52
+ secondObject: {
53
+ type: "object",
54
+ required: ["objType","identifiers"],
55
+ properties: {
56
+ objType: {
57
+ type: "object",
58
+ required: ["serviceTag","objectType"],
59
+ properties: {
60
+ serviceTag: izara.validatorSchema.stringNotEmpty(),
61
+ objectType: izara.validatorSchema.stringNotEmpty(),
62
+ }
63
+ },
64
+ identifiers: {
65
+ type: "object",
66
+ minProperties: 1
67
+ }
68
+ }
69
+ },
57
70
  relType: {
58
71
  type: "object",
59
72
  required: ["relationshipTag", "serviceTag"],
@@ -63,14 +76,18 @@ let validatorSchema = {
63
76
  type: 'string',
64
77
  pattern: "^[a-zA-Z0-9_-]+$",
65
78
  enum: [process.env.iz_serviceTag]
66
- },
79
+ }
67
80
  }
68
81
  },
69
82
  relId: izara.validatorSchema.stringNotEmpty(),
70
83
  relationshipProperties: {
71
- type: 'object',
72
- minProperties: 1,
84
+ type: "object",
85
+ minProperties: 1
73
86
  },
87
+ relationshipDirection: {
88
+ type: "string",
89
+ enum: ['from','to']
90
+ }
74
91
  }
75
92
  };
76
93
 
@@ -32,31 +32,44 @@ middleware.setValidatorSchema(recordHandlerSharedLib.baseValidatorSchema());
32
32
  // validate event params in middleware before into function
33
33
  let validatorSchema = {
34
34
  type: "object",
35
- required: ["objects", "relId", "relType", "relationshipProperties"],
35
+ required: ["firstObject","secondObject", "relType", "relationshipProperties","relationshipDirection"],
36
36
  properties: {
37
- objects: {
38
- type: "array",
39
- minItems: 2,
40
- maxItems: 2,
41
- items: {
42
- type: 'object',
43
- required: ["objType", "identifiers"],
44
- properties: {
45
- objType: {
46
- type: "object",
47
- required: ["serviceTag", "objectType"],
48
- properties: {
49
- serviceTag: izara.validatorSchema.stringNotEmpty(),
50
- objectType: izara.validatorSchema.stringNotEmpty()
51
- }
52
- },
53
- identifiers: {
54
- type: "object",
55
- minProperties: 1
37
+ firstObject: {
38
+ type: "object",
39
+ required: ["objType","identifiers"],
40
+ properties: {
41
+ objType: {
42
+ type: "object",
43
+ required: ["serviceTag","objectType"],
44
+ properties: {
45
+ serviceTag: izara.validatorSchema.stringNotEmpty(),
46
+ objectType: izara.validatorSchema.stringNotEmpty(),
56
47
  }
48
+ },
49
+ identifiers: {
50
+ type: "object",
51
+ minProperties: 1
57
52
  }
58
53
  }
59
54
  },
55
+ secondObject: {
56
+ type: "object",
57
+ required: ["objType","identifiers"],
58
+ properties: {
59
+ objType: {
60
+ type: "object",
61
+ required: ["serviceTag","objectType"],
62
+ properties: {
63
+ serviceTag: izara.validatorSchema.stringNotEmpty(),
64
+ objectType: izara.validatorSchema.stringNotEmpty(),
65
+ }
66
+ },
67
+ identifiers: {
68
+ type: "object",
69
+ minProperties: 1
70
+ }
71
+ }
72
+ },
60
73
  relType: {
61
74
  type: "object",
62
75
  required: ["relationshipTag", "serviceTag"],
@@ -66,14 +79,18 @@ let validatorSchema = {
66
79
  type: 'string',
67
80
  pattern: "^[a-zA-Z0-9_-]+$",
68
81
  enum: [process.env.iz_serviceTag]
69
- },
82
+ }
70
83
  }
71
84
  },
72
85
  relId: izara.validatorSchema.stringNotEmpty(),
73
86
  relationshipProperties: {
74
- type: 'object',
75
- minProperties: 1,
87
+ type: "object",
88
+ minProperties: 1
76
89
  },
90
+ relationshipDirection: {
91
+ type: "string",
92
+ enum: ['from','to']
93
+ }
77
94
  }
78
95
  };
79
96
 
@@ -21,30 +21,63 @@ const fs = require('fs');
21
21
 
22
22
  const { firstLetterLowerCase: lowerCase, firstLetterUpperCase: upperCase } = require("../../../../MainLibs/src/Utils");
23
23
  const { SOURCE_PATH } = require('../../libs/Consts');
24
- const templatePath = path.join(__dirname, "./template.ejs");
24
+ const templateYamlPath = path.join(__dirname, "./templateYaml.ejs");
25
+ const templatePathIntTestPath = path.join(__dirname, "./templateIntTesting.ejs");
25
26
 
26
27
 
27
28
  function data(_izContext, createSourceParams, srcPath) {
28
29
  // console.log("createSourceParams in Data", createSourceParams);
29
30
  const functionNameConfigs = new Set();
31
+ let createFunctionNameConfig = []
30
32
  for (let { templatePath, templateData, setting } of createSourceParams) {
31
33
  if (templateData.functionNameConfig !== undefined) {
32
34
  functionNameConfigs.add(templateData.functionNameConfig)
33
35
  }
34
36
  }
37
+ let createFunctionNameConfigYaml = createFunctionNameConfigFileYaml(functionNameConfigs, srcPath);
38
+ let createFunctionNameConfigJs = createFunctionNameConfigFileJs(functionNameConfigs, srcPath);
39
+ createFunctionNameConfig.push(...createFunctionNameConfigYaml, ...createFunctionNameConfigJs)
40
+ return createFunctionNameConfig
35
41
 
36
- return {
37
- templatePath: templatePath,
38
- templateData: {
39
- functionNameConfigs: functionNameConfigs
40
- },
41
- setting: {
42
- savePath: path.join(srcPath, SOURCE_PATH.appYaml),
43
- saveFileName: "FunctionNameConfig",
44
- fileExtension: ".yml",
45
- isAppend: true
42
+ }
43
+
44
+ function createFunctionNameConfigFileYaml(functionNameConfigs, srcPath) {
45
+ let createFunctionNameConfigYaml = []
46
+ createFunctionNameConfigYaml.push(
47
+ {
48
+ templatePath: templateYamlPath,
49
+ templateData: {
50
+ functionNameConfigs: functionNameConfigs
51
+ },
52
+ setting: {
53
+ savePath: path.join(srcPath, SOURCE_PATH.appYaml),
54
+ saveFileName: "FunctionNameConfig",
55
+ fileExtension: ".yml",
56
+ isAppend: true
57
+ }
46
58
  }
47
- }
59
+ )
60
+ return createFunctionNameConfigYaml
61
+ }
62
+
63
+ function createFunctionNameConfigFileJs(functionNameConfigs, srcPath) {
64
+ let createFunctionNameConfigJs = []
65
+ createFunctionNameConfigJs.push(
66
+ {
67
+ templatePath: templatePathIntTestPath,
68
+ templateData: {
69
+ functionNameConfigs: functionNameConfigs
70
+ },
71
+ setting: {
72
+ savePath: path.join(srcPath, SOURCE_PATH.externalService),
73
+ saveFileName: "FunctionNameConfig",
74
+ fileExtension: ".js",
75
+ isAppend: true
76
+ }
77
+ }
78
+ )
79
+
80
+ return createFunctionNameConfigJs
48
81
  }
49
82
 
50
83
  module.exports = data;
@@ -0,0 +1,31 @@
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
+ module.exports.generatedIntTestFunctionNameConfig = () => {
21
+ let functionNameConfigIntTest = [
22
+ <% functionNameConfigs.forEach(functionNameConfig => { _%>
23
+ "<%- firstLetterUpperCase(functionNameConfig) %>",
24
+ <% }) _%>
25
+ ]
26
+ return functionNameConfigIntTest
27
+ }
28
+
29
+ <%_function firstLetterUpperCase(text) {
30
+ return text.charAt(0).toUpperCase() + text.slice(1)
31
+ } %>
@@ -0,0 +1,10 @@
1
+ # for createIamRole
2
+
3
+ <% functionNameConfigs.forEach(functionNameConfig => { _%>
4
+ - ${self:custom.iz_prefixIamRole}<%- firstLetterUpperCase(functionNameConfig) %>${self:custom.iz_suffixIamRole}
5
+ <% }) _%>
6
+
7
+
8
+ <%_function firstLetterUpperCase(text) {
9
+ return text.charAt(0).toUpperCase() + text.slice(1)
10
+ } %>
@@ -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
  }