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

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 (67) hide show
  1. package/package.json +5 -5
  2. package/src/GenerateCodeLibs/src/Consts.js +3 -1
  3. package/src/GenerateCodeLibs/src/GenerateCodeLibs.js +122 -98
  4. package/src/MainLibs/src/Utils.js +10 -9
  5. package/src/TemplateManager/src/FindData/GetByStorage/getByGraph.ejs +2 -1
  6. package/src/TemplateManager/src/GenerateCode.js +55 -12
  7. package/src/TemplateManager/src/OutPerActionComplete/OutGetComplete/functionYaml/data.js +86 -0
  8. package/src/TemplateManager/src/OutPerActionComplete/OutGetComplete/functionYaml/template.ejs +33 -0
  9. package/src/TemplateManager/src/OutPerActionComplete/OutGetComplete/handler/data.js +59 -0
  10. package/src/TemplateManager/src/OutPerActionComplete/OutGetComplete/handler/template.ejs +129 -0
  11. package/src/TemplateManager/src/OutPerActionComplete/OutGetComplete/mainFunction/data.js +53 -0
  12. package/src/TemplateManager/src/OutPerActionComplete/OutGetComplete/mainFunction/template.ejs +130 -0
  13. package/src/TemplateManager/src/OutPerActionComplete/OutGetComplete/sns-out/data.js +62 -0
  14. package/src/TemplateManager/src/OutPerActionComplete/OutGetComplete/sqs-in-sns/data.js +58 -0
  15. package/src/TemplateManager/src/OutPerActionComplete/OutGetComplete/sqs-in-sns/template.ejs +47 -0
  16. package/src/TemplateManager/src/PerActionEndpoint/FunctionYaml/HdrApi/data.js +15 -7
  17. package/src/TemplateManager/src/PerActionEndpoint/FunctionYaml/HdrDsq/data.js +14 -6
  18. package/src/TemplateManager/src/PerActionEndpoint/FunctionYaml/HdrInv/data.js +14 -4
  19. package/src/TemplateManager/src/PerActionEndpoint/FunctionYaml/HdrSqs/data.js +14 -4
  20. package/src/TemplateManager/src/PerActionEndpoint/FunctionYaml/HdrWbs/data.js +171 -0
  21. package/src/TemplateManager/src/PerActionEndpoint/FunctionYaml/HdrWbs/request.json +19 -0
  22. package/src/TemplateManager/src/PerActionEndpoint/FunctionYaml/HdrWbs/template.ejs +29 -0
  23. package/src/TemplateManager/src/PerActionEndpoint/FunctionYaml/webSocketConnect/data.js +60 -0
  24. package/src/TemplateManager/src/PerActionEndpoint/FunctionYaml/webSocketConnect/template.ejs +10 -0
  25. package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrDsq/template.ejs +15 -12
  26. package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrSqs/template.ejs +14 -13
  27. package/src/TemplateManager/src/PerActionEndpoint/Handler/WebSocket/data.js +76 -0
  28. package/src/TemplateManager/src/PerActionEndpoint/Handler/WebSocket/template.ejs +141 -0
  29. package/src/TemplateManager/src/PerActionEndpoint/Handler/WebSocketConnect/data.js +56 -0
  30. package/src/TemplateManager/src/PerActionEndpoint/Handler/WebSocketConnect/template.ejs +55 -0
  31. package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Create/template.ejs +40 -36
  32. package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Delete/template.ejs +0 -1
  33. package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Get/template.ejs +54 -22
  34. package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Update/template.ejs +23 -27
  35. package/src/TemplateManager/src/ProcessLogical/mainFunction/template.ejs +2 -2
  36. package/src/TemplateManager/src/RelationshipPerAction/CreateRelationship/createRelationship/functionYaml/HdrSqs/template.ejs +4 -0
  37. package/src/TemplateManager/src/RelationshipPerAction/CreateRelationship/createRelationship/perAction/HdrApi/template.ejs +2 -1
  38. package/src/TemplateManager/src/RelationshipPerAction/CreateRelationship/createRelationship/perAction/HdrDsq/template.ejs +1 -5
  39. package/src/TemplateManager/src/RelationshipPerAction/CreateRelationship/createRelationship/perAction/HdrSqs/template.ejs +1 -5
  40. package/src/TemplateManager/src/RelationshipPerAction/CreateRelationship/createRelationshipComplete/mainFunction/template.ejs +11 -7
  41. package/src/TemplateManager/src/RelationshipPerAction/DeleteRelationship/DeleteRelationship/functionYaml/HdrSqs/template.ejs +4 -0
  42. package/src/TemplateManager/src/RelationshipPerAction/DeleteRelationship/DeleteRelationship/perAction/HdrApi/template.ejs +5 -4
  43. package/src/TemplateManager/src/RelationshipPerAction/DeleteRelationship/DeleteRelationship/perAction/HdrInv/template.ejs +3 -2
  44. package/src/TemplateManager/src/RelationshipPerAction/DeleteRelationship/DeleteRelationshipComplete/mainFunction/template.ejs +16 -13
  45. package/src/TemplateManager/src/RelationshipPerAction/UpdateRelationshipSchema/updateRalationshipComplete/mainFunction/template.ejs +9 -6
  46. package/src/TemplateManager/src/RelationshipPerAction/UpdateRelationshipSchema/updateRelationship/functionYaml/HdrSqs/template.ejs +4 -0
  47. package/src/TemplateManager/src/RelationshipPerAction/UpdateRelationshipSchema/updateRelationship/perAction/HdrApi/template.ejs +8 -5
  48. package/src/TemplateManager/src/RelationshipPerAction/UpdateRelationshipSchema/updateRelationship/perAction/HdrDsq/template.ejs +1 -1
  49. package/src/TemplateManager/src/RelationshipPerAction/UpdateRelationshipSchema/updateRelationship/perAction/HdrInv/template.ejs +10 -8
  50. package/src/TemplateManager/src/RelationshipPerAction/UpdateRelationshipSchema/updateRelationship/perAction/HdrSqs/template.ejs +1 -1
  51. package/src/TemplateManager/src/ResourceYaml/dynamodb/{awaitingMultipleStepData.js → defaultDynamoDbTable.js} +39 -3
  52. package/src/TemplateManager/src/ResourceYaml/sns-in-sqs/defaultSnsInSqsForFindDataAndProcessLogical.js +6 -3
  53. package/src/TemplateManager/src/externalService/FunctionNameConfig/data.js +1 -1
  54. package/src/TemplateManager/src/externalService/LambdaRole/data.js +5 -10
  55. package/src/TemplateManager/src/externalService/SnsTopicSubscriotions/data.js +14 -0
  56. package/src/TemplateManager/src/flowTag/resources/dynamoDb/data.js +65 -0
  57. package/src/TemplateManager/src/flowTag/webSocket/webSocketConnect/functionYaml/data.js +56 -0
  58. package/src/TemplateManager/src/flowTag/webSocket/webSocketConnect/functionYaml/template.ejs +10 -0
  59. package/src/TemplateManager/src/flowTag/webSocket/webSocketConnect/handler/data.js +55 -0
  60. package/src/TemplateManager/src/flowTag/webSocket/webSocketConnect/handler/template.ejs +63 -0
  61. package/src/TemplateManager/src/flowTag/webSocket/websocketHandler/functionYaml/data.js +75 -0
  62. package/src/TemplateManager/src/flowTag/webSocket/websocketHandler/functionYaml/template.ejs +33 -0
  63. package/src/TemplateManager/src/flowTag/webSocket/websocketHandler/lambda/data.js +57 -0
  64. package/src/TemplateManager/src/flowTag/webSocket/websocketHandler/lambda/template.ejs +131 -0
  65. package/src/TemplateManager/src/libs/Consts.js +7 -2
  66. package/src/TemplateManager/src/libs/GenerateCodeUtils.js +3 -1
  67. package/src/TemplateManager/src/ResourceYaml/dynamodb/processLogicalAndFindData.js +0 -99
@@ -23,22 +23,16 @@ const {
23
23
  getObjSchemaS3WithHierarchy,
24
24
  } = require('@izara_project/izara-core-library-service-schemas/src/GetObjectSchema');
25
25
 
26
- const {
27
- getGraphServiceTagWithCache,
28
- getServiceNameWithCache
29
- } = require('@izara_project/izara-core-library-service-schemas/src/ServiceConfig');
30
26
 
31
27
  const consts = require('@izara_project/izara-core-library-service-schemas/src/Consts');
32
28
 
33
29
 
34
30
  const {
35
- dynamoDbIdentifiersByStorageResource,
36
- collectGetData
31
+ dynamoDbIdentifiersByStorageResource, createFieldForUpdateDynamoDb
37
32
  } = require('@izara_project/izara-market-library-service-schemas/src/GenerateCodeLibs/src/GenerateCodeLibs');
38
33
 
39
34
  const izaraShared = require('@izara_project/izara-shared');
40
35
  const dynamodbSharedLib = izaraShared.dynamodbSharedLib;
41
- const graphSharedLib = izaraShared.graphSharedLib;
42
36
  const snsSharedLib = izaraShared.snsSharedLib;
43
37
  const asyncFlowSharedLib = izaraShared.asyncFlowSharedLib;
44
38
  const callingFlowSharedLib = izaraShared.callingFlowSharedLib;
@@ -47,14 +41,10 @@ const lambdaSharedLib = izaraShared.lambdaSharedLib
47
41
  const externalRequest = require('@izara_project/izara-core-library-external-request');
48
42
  const sns = externalRequest.sns
49
43
 
50
- const serviceSchema = require('@izara_project/izara-core-library-service-schemas/src/Utils')
51
-
52
44
  const { createUpdateDataDetail } = require("@izara_project/izara-market-library-service-schemas/src/GenerateCodeLibs/src/GenerateCodeLibs")
53
- const NoRetryError = require('@izara_project/izara-core-library-core/src/NoRetryError');
54
45
  const { PREFIX, TOPIC_NAME_GENERATE_CODE, TOPIC_NAME_GRAPH_HANDLER } = require('@izara_project/izara-market-library-service-schemas/src/GenerateCodeLibs/src/Consts');
55
46
  const coreConsts = require('@izara_project/izara-core-library-core/src/Consts')
56
47
 
57
-
58
48
  /**
59
49
  *
60
50
  *
@@ -84,23 +74,24 @@ module.exports.<%- functionName %>Main = async (
84
74
  _izContext.logger.debug("<%- functionName %> callingFlowConfig", callingFlowConfig)
85
75
 
86
76
  let errorFounds = [];
87
-
88
- _izContext.correlationIds.set(coreConsts.BASE_USER_ID, "BasDev");
89
77
  const userId = _izContext.correlationIds.get(coreConsts.BASE_USER_ID)
90
78
  if (!userId) {
91
79
  errorFounds.push("Not Have UserId")
92
80
  }
93
81
 
94
- const OBJECT_TYPE = "<%- objectType %>"
82
+ const OBJECT_TYPE = "Address"
95
83
  const SERVICE_TAG = process.env.iz_serviceTag;
96
84
  //(<beforeQuery>)
97
85
  //(</beforeQuery>)
98
86
 
99
- const fields = requestParams.objInstanceFull.fields;
100
87
  const identifiers = requestParams.objInstanceFull.identifiers;
88
+ const fields = requestParams.objInstanceFull.fields
89
+ let versionedDataIds = requestParams.versionedDataIds || {}
90
+
101
91
  _izContext.logger.debug("explode requestParams", {
92
+ identifiers: identifiers,
102
93
  fields: fields,
103
- identifiers: identifiers
94
+ versionedDataIds: versionedDataIds
104
95
  })
105
96
  let objectSchema = await getObjSchemaS3WithHierarchy(
106
97
  _izContext,
@@ -128,8 +119,9 @@ module.exports.<%- functionName %>Main = async (
128
119
  },
129
120
  objInstanceFull: {
130
121
  identifiers: identifiers,
131
- fields: fields
122
+ fields: fields,
132
123
  },
124
+ versionedDataIds: versionedDataIds,
133
125
  status: 'error',
134
126
  errorFounds: errorFounds
135
127
  };
@@ -181,7 +173,7 @@ module.exports.<%- functionName %>Main = async (
181
173
  hash(
182
174
  {
183
175
  identifiers,
184
- fields
176
+ fields,
185
177
  })
186
178
  )
187
179
  )
@@ -195,8 +187,9 @@ module.exports.<%- functionName %>Main = async (
195
187
  },
196
188
  objInstanceFull: {
197
189
  identifiers: identifiers,
198
- fields: fields
190
+ fields: fields,
199
191
  },
192
+ versionedDataIds: versionedDataIds,
200
193
  originTimestamp
201
194
  }
202
195
 
@@ -205,8 +198,7 @@ module.exports.<%- functionName %>Main = async (
205
198
  callingFlowSharedLib.addParentCallingFlowConfig(
206
199
  callingFlowConfig,
207
200
  callingFlowSharedLib.createCallingFlowConfig(
208
- await lambdaSharedLib.lambdaFunctionName(_izContext, TOPIC_NAME_GENERATE_CODE.updateNodeComplete),
209
- {}
201
+ await lambdaSharedLib.lambdaFunctionName(_izContext, TOPIC_NAME_GENERATE_CODE.updateNodeComplete), {}
210
202
  )
211
203
  )
212
204
  )
@@ -225,7 +217,7 @@ module.exports.<%- functionName %>Main = async (
225
217
  let resSNS = await sns.publishAsync(_izContext, updateNodeMessageBody)
226
218
  _izContext.logger.debug('resSNS send to topic InUpdateNode finish!', resSNS);
227
219
 
228
- } else {
220
+ } else if (updateDataDetail.storageType === consts.STORAGE_TYPES.dynamoDB) {
229
221
 
230
222
  let identifiersForUpdateData = await dynamoDbIdentifiersByStorageResource(
231
223
  _izContext,
@@ -233,14 +225,17 @@ module.exports.<%- functionName %>Main = async (
233
225
  updateDataDetail,
234
226
  identifiers
235
227
  )
228
+
229
+ let fieldForUpdateTableDynamo = createFieldForUpdateDynamoDb(_izContext, objectSchema, updateDataDetail, fields)
230
+
236
231
  _izContext.logger.debug("identifiersForUpdateData", identifiersForUpdateData)
237
- _izContext.logger.debug("fields", fields)
232
+ _izContext.logger.debug("fieldForUpdateTableDynamo", fieldForUpdateTableDynamo)
238
233
 
239
234
  await dynamodbSharedLib.updateItem(
240
235
  _izContext,
241
236
  await dynamodbSharedLib.tableName(_izContext, updateDataDetail.tableName),
242
237
  identifiersForUpdateData,
243
- fields
238
+ fieldForUpdateTableDynamo
244
239
  )
245
240
  }
246
241
  }
@@ -254,14 +249,15 @@ module.exports.<%- functionName %>Main = async (
254
249
  },
255
250
  objInstanceFull: {
256
251
  identifiers: identifiers,
257
- fields: fields
258
- }
252
+ fields: fields,
253
+ },
254
+ versionedDataIds: versionedDataIds
259
255
  },
260
256
  status: "complete",
261
257
  errorFounds
262
258
  }
263
259
  } catch (err) {
264
- _izContext.logger.error('error <%- functionName %>: ', err)
260
+ _izContext.logger.error('error AddressUpdate: ', err)
265
261
  throw (err)
266
262
  }
267
263
  }
@@ -167,7 +167,7 @@ module.exports.processLogical = async (
167
167
  _izContext.logger.debug("Have errorsFound: ", errorsFound)
168
168
  standardErrorParams.push(errorsFound)
169
169
  await logicalResultsSharedLib.completeLogicalResultsMain(...standardErrorParams);
170
- return;
170
+ return errorsFound;
171
171
  }
172
172
 
173
173
  const graphHandlerServiceTag = await serviceConfig.getGraphServiceTagWithCache(
@@ -347,7 +347,7 @@ module.exports.processLogical = async (
347
347
  errorsFound.push(`can't find data in table ${tableName} by query`)
348
348
  standardErrorParams.push(errorsFound)
349
349
  await logicalResultsSharedLib.completeLogicalResultsMain(...standardErrorParams);
350
- return;
350
+ return errorsFound;
351
351
  }
352
352
 
353
353
  for (const objInstanceBase of queryDatas.Items) {
@@ -2,6 +2,10 @@
2
2
  <%- firstLetterUpperCase(functionNameConfig) %>:
3
3
  handler: <%- join(resourceLocation, `${firstLetterUpperCase(functionName)}_${firstLetterUpperCase(handlerType)}.main`)%>
4
4
  name: ${self:custom.iz_resourcePrefix}<%- firstLetterUpperCase(functionName) %><%- firstLetterUpperCase(handlerType) %>
5
+ events:
6
+ - sqs:
7
+ arn: arn:aws:sqs:${self:custom.iz_region}:${self:custom.iz_accountId}:${self:custom.iz_resourcePrefix}<%- firstLetterUpperCase(functionName) %><%- firstLetterUpperCase(handlerType) %>
8
+ batchSize: 10
5
9
  iamRoleStatements:
6
10
  <%_ additionalResourcePermission.forEach(resourcePermission => { _%>
7
11
  - Effect: <%- resourcePermission.effect %>
@@ -113,7 +113,8 @@ module.exports.main = middleware.wrap(async (event, context, callback) => {
113
113
  relType: event.relType,
114
114
  relationshipDirection: event.relationshipDirection,
115
115
  relationshipProperties: event.relationshipProperties,
116
- }
116
+ },
117
+ callingFlowSharedLib.addCallingFlowToPassOnProperties(event)
117
118
  );
118
119
 
119
120
  // return error to client
@@ -146,11 +146,7 @@ let validatorSchema = {
146
146
  );
147
147
 
148
148
  // add argument (to invoke lambda) to passOnProperties[]
149
- passOnProperties.push(record.body.Message.firstObject)
150
- passOnProperties.push(record.body.Message.secondObject)
151
- passOnProperties.push(record.body.Message.relType)
152
- passOnProperties.push(record.body.Message.relationshipDirection)
153
- passOnProperties.push(record.body.Message.relationshipProperties)
149
+ passOnProperties.push(record.body.Message)
154
150
  passOnProperties.push(callingFlowSharedLib.addCallingFlowToPassOnProperties(record.body.Message));
155
151
  //(<afterPutParamIntoMainFunction>)
156
152
  //(</afterPutParamIntoMainFunction>)
@@ -124,11 +124,7 @@ let validatorSchema = {
124
124
  );
125
125
 
126
126
  // add argument (to invoke lambda) to passOnProperties[]
127
- passOnProperties.push(record.body.Message.firstObject)
128
- passOnProperties.push(record.body.Message.secondObject)
129
- passOnProperties.push(record.body.Message.relType)
130
- passOnProperties.push(record.body.Message.relationshipDirection)
131
- passOnProperties.push(record.body.Message.relationshipProperties)
127
+ passOnProperties.push(record.body.Message)
132
128
  passOnProperties.push(callingFlowSharedLib.addCallingFlowToPassOnProperties(record.body.Message));
133
129
  //(<afterPutParamIntoMainFunction>)
134
130
  //(</afterPutParamIntoMainFunction>)
@@ -56,11 +56,10 @@ module.exports.createRelationshipComplete = async (
56
56
  // start create awaitingStepId
57
57
  const linkTypeId = createLinkTypeId(
58
58
  _izContext,
59
- [
60
- returnValue.objects[0].objType,
61
- returnValue.objects[1].objType,
62
- ],
63
- returnValue.relType
59
+ returnValue.firstObject.objType,
60
+ returnValue.secondObject.objType,
61
+ returnValue.relType,
62
+ returnValue.direction
64
63
  );
65
64
 
66
65
  let awaitingStepId = asyncFlowSharedLib.createAwaitingStepId(
@@ -94,7 +93,8 @@ module.exports.createRelationshipComplete = async (
94
93
  _izContext.logger.debug("finished all awaitingStep");
95
94
 
96
95
  let createCompleteMsg = {
97
- objects: returnValue.objects,
96
+ firstObject: returnValue.firstObject,
97
+ secondObject: returnValue.secondObject,
98
98
  relType: returnValue.relType,
99
99
  relationshipProperties: returnValue.relationshipProperties,
100
100
  status: status,
@@ -128,7 +128,11 @@ module.exports.createRelationshipComplete = async (
128
128
  );
129
129
 
130
130
 
131
- return { returnValue: 'function:createRelationshipComplete' };
131
+ return {
132
+ returnValue,
133
+ status,
134
+ errorsFound
135
+ }
132
136
 
133
137
  } catch (err) {
134
138
  _izContext.logger.error('error createRelationshipComplete:', err)
@@ -2,6 +2,10 @@
2
2
  <%- firstLetterUpperCase(functionNameConfig) %>:
3
3
  handler: <%- join(resourceLocation, `${firstLetterUpperCase(functionName)}_${firstLetterUpperCase(handlerType)}.main`)%>
4
4
  name: ${self:custom.iz_resourcePrefix}<%- firstLetterUpperCase(functionName) %><%- firstLetterUpperCase(handlerType) %>
5
+ events:
6
+ - sqs:
7
+ arn: arn:aws:sqs:${self:custom.iz_region}:${self:custom.iz_accountId}:${self:custom.iz_resourcePrefix}<%- firstLetterUpperCase(functionName) %><%- firstLetterUpperCase(handlerType) %>
8
+ batchSize: 10
5
9
  iamRoleStatements:
6
10
  <%_ additionalResourcePermission.forEach(resourcePermission => { _%>
7
11
  - Effect: <%- resourcePermission.effect %>
@@ -108,12 +108,13 @@ module.exports.main = middleware.wrap(async (event, context, callback) => {
108
108
  let lambdaFunctionResponse = await <%- functionName %>.<%- functionName %>(
109
109
  event._izContext, // correlationId/logger/integrationTestDetail/uniqueRequestId/userId
110
110
  {
111
- objects: event.objects,
111
+ firstObject: event.firstObject,
112
+ secondObject: event.secondObject,
112
113
  relType: event.relType,
113
- relId: event.relId,
114
+ relationshipDirection: event.relationshipDirection,
114
115
  relationshipProperties: event.relationshipProperties,
115
- relationshipDirection: event.relationshipDirection
116
- }
116
+ },
117
+ callingFlowSharedLib.addCallingFlowToPassOnProperties(event)
117
118
  );
118
119
 
119
120
  // return error to client
@@ -104,10 +104,11 @@ module.exports.main = middleware.wrap(async (event, context, callback) => {
104
104
  return await <%- functionName %>.<%- functionName %>(
105
105
  event._izContext, // correlationId/logger/integrationTestDetail/uniqueRequestId
106
106
  {
107
- objects: event.objects,
107
+ firstObject: event.firstObject,
108
+ secondObject: event.secondObject,
108
109
  relType: event.relType,
110
+ relationshipDirection: event.relationshipDirection,
109
111
  relationshipProperties: event.relationshipProperties,
110
- relationshipDirection: event.relationshipDirection
111
112
  },
112
113
  callingFlowSharedLib.addCallingFlowToPassOnProperties(event)
113
114
  );
@@ -56,11 +56,10 @@ module.exports.createRelationshipComplete = async (
56
56
  // start create awaitingStepId
57
57
  const linkTypeId = createLinkTypeId(
58
58
  _izContext,
59
- [
60
- returnValue.objects[0].objType,
61
- returnValue.objects[1].objType,
62
- ],
63
- returnValue.relType
59
+ returnValue.firstObject.objType,
60
+ returnValue.secondObject.objType,
61
+ returnValue.relType,
62
+ returnValue.direction
64
63
  );
65
64
 
66
65
  let awaitingStepId = asyncFlowSharedLib.createAwaitingStepId(
@@ -93,22 +92,23 @@ module.exports.createRelationshipComplete = async (
93
92
  )) {
94
93
  _izContext.logger.debug("finished all awaitingStep");
95
94
 
96
- let createCompleteMsg = {
97
- objects: returnValue.objects,
95
+ let deleteRelComp = {
96
+ firstObject: returnValue.firstObject,
97
+ secondObject: returnValue.secondObject,
98
98
  relType: returnValue.relType,
99
99
  relationshipProperties: returnValue.relationshipProperties,
100
100
  status: status,
101
101
  errorFounds: errorsFound
102
102
  };
103
103
 
104
- createCompleteMsg = callingFlowSharedLib.addParentPassBackPropertiesToSnsResponseMessageObject(passBackProperties, createCompleteMsg);
105
- _izContext.logger.debug("After addCallingFlowToSnsResponseMessageObject", createCompleteMsg);
104
+ deleteRelComp = callingFlowSharedLib.addParentPassBackPropertiesToSnsResponseMessageObject(passBackProperties, deleteRelComp);
105
+ _izContext.logger.debug("After addCallingFlowToSnsResponseMessageObject", deleteRelComp);
106
106
 
107
107
  let messageAttributes = callingFlowSharedLib.addParentPassBackCallingFlowToSnsResponseMessageAttributes(passBackProperties, {});
108
- _izContext.logger.debug("After addCallingFlowToSnsResponseMessageAttributes", createCompleteMsg);
108
+ _izContext.logger.debug("After addCallingFlowToSnsResponseMessageAttributes", deleteRelComp);
109
109
 
110
110
  let sendMessageToOutCreateRelatonshipComplete = {
111
- Message: JSON.stringify(createCompleteMsg),
111
+ Message: JSON.stringify(deleteRelComp),
112
112
  MessageAttributes: sns.createStringMessageAttributes(_izContext, messageAttributes),
113
113
  TopicArn: await snsSharedLib.snsTopicArn(_izContext, TOPIC_NAME_GENERATE_CODE.outCreateRelComplete)
114
114
  };
@@ -128,8 +128,11 @@ module.exports.createRelationshipComplete = async (
128
128
  );
129
129
 
130
130
 
131
- return { returnValue: 'function:createRelationshipComplete' };
132
-
131
+ return {
132
+ returnValue,
133
+ status,
134
+ errorsFound
135
+ }
133
136
  } catch (err) {
134
137
  _izContext.logger.error('error createRelationshipComplete:', err)
135
138
  throw (err)
@@ -57,11 +57,10 @@ module.exports.updateRelationshipComplete = async (
57
57
  // start create awaitingStepId
58
58
  const linkTypeId = createLinkTypeId(
59
59
  _izContext,
60
- [
61
- returnValue.objects[0].objType,
62
- returnValue.objects[1].objType,
63
- ],
64
- returnValue.relType
60
+ returnValue.firstObject.objType,
61
+ returnValue.secondObject.objType,
62
+ returnValue.relType,
63
+ returnValue.direction
65
64
  );
66
65
 
67
66
  let awaitingStepId = asyncFlowSharedLib.createAwaitingStepId(
@@ -131,7 +130,11 @@ module.exports.updateRelationshipComplete = async (
131
130
  );
132
131
 
133
132
 
134
- return { returnValue: 'function:updateRelationshipComplete' };
133
+ return {
134
+ returnValue,
135
+ status,
136
+ errorsFound
137
+ }
135
138
 
136
139
  } catch (err) {
137
140
  _izContext.logger.error('error updateRelationshipComplete:', err)
@@ -2,6 +2,10 @@
2
2
  <%- firstLetterUpperCase(functionNameConfig) %>:
3
3
  handler: <%- join(resourceLocation, `${firstLetterUpperCase(functionName)}_${firstLetterUpperCase(handlerType)}.main`)%>
4
4
  name: ${self:custom.iz_resourcePrefix}<%- firstLetterUpperCase(functionName) %><%- firstLetterUpperCase(handlerType) %>
5
+ events:
6
+ - sqs:
7
+ arn: arn:aws:sqs:${self:custom.iz_region}:${self:custom.iz_accountId}:${self:custom.iz_resourcePrefix}<%- firstLetterUpperCase(functionName) %><%- firstLetterUpperCase(handlerType) %>
8
+ batchSize: 10
5
9
  iamRoleStatements:
6
10
  <%_ additionalResourcePermission.forEach(resourcePermission => { _%>
7
11
  - Effect: <%- resourcePermission.effect %>
@@ -27,7 +27,7 @@ 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: ["firstObject","secondObject", "relType", "relationshipProperties","relationshipDirection"],
30
+ required: ["firstObject","secondObject", "relType", "relationshipProperties","relationshipDirection","relId"],
31
31
  properties: {
32
32
  firstObject: {
33
33
  type: "object",
@@ -109,11 +109,14 @@ module.exports.main = middleware.wrap(async (event, context, callback) => {
109
109
  let lambdaFunctionResponse = await <%- functionName %>.<%- functionName %>(
110
110
  event._izContext, // correlationId/logger/integrationTestDetail/uniqueRequestId/userId
111
111
  {
112
- objects: event.objects,
112
+ firstObject: event.firstObject,
113
+ secondObject: event.secondObject,
113
114
  relType: event.relType,
114
- relId: event.relId,
115
- relationshipProperties: event.relationshipProperties
116
- }
115
+ relationshipDirection: event.relationshipDirection,
116
+ relationshipProperties: event.relationshipProperties,
117
+ relId: event.relId
118
+ },
119
+ callingFlowSharedLib.addCallingFlowToPassOnProperties(event)
117
120
  );
118
121
 
119
122
  // return error to client
@@ -47,7 +47,7 @@ middleware.setValidatorSchema(recordHandlerSharedLib.baseValidatorSchema(
47
47
  // validate event params in middleware before into function
48
48
  let validatorSchema = {
49
49
  type: "object",
50
- required: ["firstObject","secondObject", "relType", "relationshipProperties","relationshipDirection"],
50
+ required: ["firstObject","secondObject", "relType", "relationshipProperties","relationshipDirection","relId"],
51
51
  properties: {
52
52
  firstObject: {
53
53
  type: "object",
@@ -29,7 +29,7 @@ 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: ["firstObject","secondObject", "relType", "relationshipProperties","relationshipDirection"],
32
+ required: ["firstObject","secondObject", "relType", "relationshipProperties","relationshipDirection","relId"],
33
33
  properties: {
34
34
  firstObject: {
35
35
  type: "object",
@@ -111,13 +111,15 @@ module.exports.main = middleware.wrap(async (event, context, callback) => {
111
111
  // invoke LambdaFunction
112
112
  let lambdaFunctionResponse = await <%- functionName %>.<%- functionName %>(
113
113
  event._izContext, // correlationId/logger/integrationTestDetail/uniqueRequestId/userId
114
- {
115
- objects: event.objects,
116
- relType: event.relType,
117
- relId: event.relId,
118
- relationshipProperties: event.relationshipProperties
119
- },
120
- callingFlowSharedLib.addCallingFlowToPassOnProperties(event)
114
+ {
115
+ firstObject: event.firstObject,
116
+ secondObject: event.secondObject,
117
+ relType: event.relType,
118
+ relationshipDirection: event.relationshipDirection,
119
+ relationshipProperties: event.relationshipProperties,
120
+ relId: event.relId
121
+ },
122
+ callingFlowSharedLib.addCallingFlowToPassOnProperties(event)
121
123
  //(<afterPutParamIntoMainFunction>)
122
124
  //(</afterPutParamIntoMainFunction>)
123
125
  );
@@ -32,7 +32,7 @@ middleware.setValidatorSchema(recordHandlerSharedLib.baseValidatorSchema());
32
32
  // validate event params in middleware before into function
33
33
  let validatorSchema = {
34
34
  type: "object",
35
- required: ["firstObject","secondObject", "relType", "relationshipProperties","relationshipDirection"],
35
+ required: ["firstObject","secondObject", "relType", "relationshipProperties","relationshipDirection","relId"],
36
36
  properties: {
37
37
  firstObject: {
38
38
  type: "object",
@@ -42,8 +42,9 @@ const { SOURCE_PATH, SAVE_FILE_NAME } = require('../../libs/Consts');
42
42
  const createAwaitingMultipleStepDynamoDbData = (_izContext, srcPath) => {
43
43
 
44
44
  let resultsForCreateSource = [];
45
+ const defaultDynamoDataLists = []
45
46
 
46
- const awaitingStepDynamoDbDataList = [
47
+ defaultDynamoDataLists.push(
47
48
  {
48
49
  "tableName": "AwaitingMultipleSteps",
49
50
  "attributes": [
@@ -73,10 +74,45 @@ const createAwaitingMultipleStepDynamoDbData = (_izContext, srcPath) => {
73
74
  "AttributeType": "S"
74
75
  }
75
76
  ]
77
+ },
78
+ {
79
+ "tableName": "FindDataMain",
80
+ "attributes": [
81
+ {
82
+ "keyType": "partitionKey",
83
+ "AttributeName": "findDataId",
84
+ "AttributeType": "S"
85
+ }
86
+ ]
87
+ },
88
+ {
89
+ "tableName": "LogicalResultsMain",
90
+ "attributes": [
91
+ {
92
+ "keyType": "partitionKey",
93
+ "AttributeName": "logicalResultId",
94
+ "AttributeType": "S"
95
+ }
96
+ ]
97
+ },
98
+ {
99
+ "tableName": "LogicalResultsData",
100
+ "attributes": [
101
+ {
102
+ "keyType": "partitionKey",
103
+ "AttributeName": "logicalResultId",
104
+ "AttributeType": "S"
105
+ },
106
+ {
107
+ "keyType": "sortKey",
108
+ "AttributeName": "identifiersId",
109
+ "AttributeType": "S"
110
+ }
111
+ ]
76
112
  }
77
- ];
113
+ )
78
114
 
79
- for (let defaultlDynamoData of awaitingStepDynamoDbDataList) {
115
+ for (let defaultlDynamoData of defaultDynamoDataLists) {
80
116
  resultsForCreateSource.push({
81
117
  templatePath: templatePath,
82
118
  templateData: defaultlDynamoData,
@@ -47,6 +47,8 @@ const { SOURCE_PATH, SAVE_FILE_NAME, FUNCTION_NAME, HANDLER } = require('../../l
47
47
  */
48
48
 
49
49
  function createDataForDefaultSnsInSqs(_izContext, srcPath) {
50
+ let resultsForCreateDefaultSnsInSqs = [];
51
+ const defaultSnsInSqsDataList = [];
50
52
  const setting = {
51
53
  initialData: "Resources:\n",
52
54
  savePath: path.join(srcPath, SOURCE_PATH.resourceYaml),
@@ -54,8 +56,9 @@ function createDataForDefaultSnsInSqs(_izContext, srcPath) {
54
56
  fileExtension: ".yml",
55
57
  isAppend: true
56
58
  }
57
- let resultsForCreateDefaultSnsInSqs = [];
58
- const defaultSnsInSqsDataList = [
59
+
60
+
61
+ defaultSnsInSqsDataList.push(
59
62
  {
60
63
  queueName: upperCase(FUNCTION_NAME.findData)
61
64
  },
@@ -65,7 +68,7 @@ function createDataForDefaultSnsInSqs(_izContext, srcPath) {
65
68
  {
66
69
  queueName: upperCase(FUNCTION_NAME.paginateProcessLogical)
67
70
  }
68
- ]
71
+ )
69
72
 
70
73
  for (let defaultSnsInSqsData of defaultSnsInSqsDataList) {
71
74
  resultsForCreateDefaultSnsInSqs.push({
@@ -30,7 +30,7 @@ function data(_izContext, createSourceParams, srcPath) {
30
30
  const functionNameConfigs = new Set();
31
31
  let createFunctionNameConfig = []
32
32
  for (let { templatePath, templateData, setting } of createSourceParams) {
33
- if (templateData.functionNameConfig !== undefined) {
33
+ if (templateData?.functionNameConfig !== undefined) {
34
34
  functionNameConfigs.add(templateData.functionNameConfig)
35
35
  }
36
36
  }
@@ -24,12 +24,8 @@ const { getGraphServiceNameFromGraphServerTagWithCache,
24
24
  getGraphServiceTagWithCache
25
25
  } = require('@izara_project/izara-core-library-service-schemas/src/ServiceConfig')
26
26
 
27
- const { firstLetterLowerCase: lowerCase, firstLetterUpperCase: upperCase, renameObjectType } = require("../../../../MainLibs/src/Utils")
28
- const {
29
- DEFAULT_HANDLER_PER_ACTION, createIamRole, resourceNames, RESOURCE_CLASSES, DEFAULT_LAMBDA_ROLE_PER_ACTION, SOURCE_PATH, externalResourceName, externalResourceSns, FUNCTION_NAME, getGraphServiceNameFromAllRelSchema, SAVE_FILE_NAME, getComplexFilterServiceTag,
30
- LAMBDA_RESOURCE, SNS_RESOURCE, DYNAMO_RESOURCE, getGraphServiceNameFromObjectSchema,
31
- shortNameHandler,
32
- SHORT_FUNCTION_NAME } = require("../../libs/Consts");
27
+ const { firstLetterLowerCase: lowerCase, firstLetterUpperCase: upperCase } = require("../../../../MainLibs/src/Utils")
28
+ const { DEFAULT_HANDLER_PER_ACTION, createIamRole, RESOURCE_CLASSES, SOURCE_PATH, externalResourceName, externalResourceSns, getGraphServiceNameFromAllRelSchema, SAVE_FILE_NAME, LAMBDA_RESOURCE, SNS_RESOURCE, getGraphServiceNameFromObjectSchema, shortNameHandler, SHORT_FUNCTION_NAME } = require("../../libs/Consts");
33
29
  // const templatePath = path.join(__dirname, "./template.ejs");
34
30
  const templatePath = path.join(__dirname, "./template.ejs");
35
31
  const { getAllLocalRelationshipSchemas } = require('@izara_project/izara-core-library-service-schemas/src/GetObjectSchema')
@@ -40,18 +36,17 @@ const createExternalLambdaRole = async (_izContext, allObjSchemas, allRelSchemas
40
36
  const externalLambdaIamRoleArray = [];
41
37
  for (const objectSchema of allObjSchemas) {
42
38
 
43
- const newObjectSchema = renameObjectType(objectSchema, srcPath)
44
39
  // per action external lambda role
45
40
  for (const action of Object.values(ACTIONS)) {
46
41
  if (objectSchema.overWriteHandlers?.[action]) {
47
42
  for (const handler of objectSchema.overWriteHandlers[action]) {
48
- const externalLambdaIamRole = await externalLambdaIamRoleDataPerAction(_izContext, newObjectSchema, action, handler)
43
+ const externalLambdaIamRole = await externalLambdaIamRoleDataPerAction(_izContext, objectSchema, action, handler)
49
44
  externalLambdaIamRole && externalLambdaIamRoleArray.push(externalLambdaIamRole);
50
45
  }
51
46
 
52
47
  } else {
53
48
  for (const handler of DEFAULT_HANDLER_PER_ACTION[action]) {
54
- const externalLambdaIamRole = await externalLambdaIamRoleDataPerAction(_izContext, newObjectSchema, action, handler)
49
+ const externalLambdaIamRole = await externalLambdaIamRoleDataPerAction(_izContext, objectSchema, action, handler)
55
50
  externalLambdaIamRole && externalLambdaIamRoleArray.push(externalLambdaIamRole);
56
51
  }
57
52
  }
@@ -250,7 +245,7 @@ async function externalLambdaIamRoleDataDeleteRelationshipSchema(_izContext, all
250
245
  [RESOURCE_CLASSES.sns]: [SNS_RESOURCE.publish]
251
246
  },
252
247
  graphServiceNamesFromAllRelSchemas.map(graphServiceName =>
253
- externalResourceSns("InDeleteRelationship", graphServiceName)
248
+ externalResourceSns("InDeleteRelationshipV2", graphServiceName)
254
249
  )
255
250
  )
256
251
  )