@izara_project/izara-market-library-service-schemas 1.0.8 → 1.0.10

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 (123) hide show
  1. package/package.json +2 -2
  2. package/src/GenerateCodeLibs/src/GenerateCodeLibs.js +64 -19
  3. package/src/MainLibs/src/Utils.js +13 -0
  4. package/src/TemplateManager/src/FindData/FindDataYaml/data.js +3 -2
  5. package/src/TemplateManager/src/FindData/FindDataYaml/template.ejs +1 -1
  6. package/src/TemplateManager/src/FindData/Handler/data.js +1 -6
  7. package/src/TemplateManager/src/FindData/mainFunction/template.ejs +0 -7
  8. package/src/TemplateManager/src/GenerateCode.js +3 -5
  9. package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/functionYaml/data.js +4 -3
  10. package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/functionYaml/template.ejs +1 -1
  11. package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/handler/data.js +1 -3
  12. package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/handler/template.ejs +11 -11
  13. package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/mainFunction/data.js +1 -1
  14. package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/mainFunction/template.ejs +13 -13
  15. package/src/TemplateManager/src/OutPerActionComplete/OutDeleteComplete/functionYaml/data.js +4 -3
  16. package/src/TemplateManager/src/OutPerActionComplete/OutDeleteComplete/functionYaml/template.ejs +1 -1
  17. package/src/TemplateManager/src/OutPerActionComplete/OutDeleteComplete/handler/data.js +1 -3
  18. package/src/TemplateManager/src/OutPerActionComplete/OutDeleteComplete/mainFunction/data.js +1 -1
  19. package/src/TemplateManager/src/OutPerActionComplete/OutDeleteComplete/mainFunction/template.ejs +8 -5
  20. package/src/TemplateManager/src/OutPerActionComplete/OutUpdateComplete/functionYaml/data.js +4 -2
  21. package/src/TemplateManager/src/OutPerActionComplete/OutUpdateComplete/functionYaml/template.ejs +1 -1
  22. package/src/TemplateManager/src/OutPerActionComplete/OutUpdateComplete/handler/data.js +1 -3
  23. package/src/TemplateManager/src/OutPerActionComplete/OutUpdateComplete/mainFunction/data.js +1 -1
  24. package/src/TemplateManager/src/OutPerActionComplete/OutUpdateComplete/mainFunction/template.ejs +5 -1
  25. package/src/TemplateManager/src/PerActionEndpoint/FunctionYaml/HdrApi/data.js +13 -7
  26. package/src/TemplateManager/src/PerActionEndpoint/FunctionYaml/HdrApi/template.ejs +1 -1
  27. package/src/TemplateManager/src/PerActionEndpoint/FunctionYaml/HdrDsq/data.js +12 -8
  28. package/src/TemplateManager/src/PerActionEndpoint/FunctionYaml/HdrDsq/template.ejs +1 -1
  29. package/src/TemplateManager/src/PerActionEndpoint/FunctionYaml/HdrInv/data.js +10 -12
  30. package/src/TemplateManager/src/PerActionEndpoint/FunctionYaml/HdrInv/template.ejs +1 -1
  31. package/src/TemplateManager/src/PerActionEndpoint/FunctionYaml/HdrSqs/data.js +13 -8
  32. package/src/TemplateManager/src/PerActionEndpoint/FunctionYaml/HdrSqs/template.ejs +1 -1
  33. package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrApi/data.js +0 -2
  34. package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrDsq/data.js +1 -2
  35. package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrDsq/template.ejs +78 -62
  36. package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrInv/data.js +0 -2
  37. package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrInv/template.ejs +1 -2
  38. package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrSqs/data.js +2 -3
  39. package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrSqs/template.ejs +62 -53
  40. package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Create/template.ejs +47 -8
  41. package/src/TemplateManager/src/ProcessLogical/Handler/data.js +0 -1
  42. package/src/TemplateManager/src/ProcessLogical/ProcessLogicalYaml/data.js +3 -2
  43. package/src/TemplateManager/src/ProcessLogical/ProcessLogicalYaml/template.ejs +1 -1
  44. package/src/TemplateManager/src/ProcessLogicalPagination/FunctionYaml/HdrDsq/data.js +3 -2
  45. package/src/TemplateManager/src/ProcessLogicalPagination/FunctionYaml/HdrDsq/template.ejs +1 -1
  46. package/src/TemplateManager/src/ProcessLogicalPagination/FunctionYaml/HdrSqs/data.js +3 -2
  47. package/src/TemplateManager/src/ProcessLogicalPagination/FunctionYaml/HdrSqs/template.ejs +1 -1
  48. package/src/TemplateManager/src/ProcessLogicalPagination/Handler/HdrDsq/data.js +1 -3
  49. package/src/TemplateManager/src/ProcessLogicalPagination/Handler/HdrSqs/data.js +1 -3
  50. package/src/TemplateManager/src/RelationshipPerAction/CreateRelationship/createRelationship/functionYaml/HdrApi/data.js +3 -2
  51. package/src/TemplateManager/src/RelationshipPerAction/CreateRelationship/createRelationship/functionYaml/HdrApi/template.ejs +1 -1
  52. package/src/TemplateManager/src/RelationshipPerAction/CreateRelationship/createRelationship/functionYaml/HdrDsq/data.js +3 -2
  53. package/src/TemplateManager/src/RelationshipPerAction/CreateRelationship/createRelationship/functionYaml/HdrDsq/template.ejs +1 -1
  54. package/src/TemplateManager/src/RelationshipPerAction/CreateRelationship/createRelationship/functionYaml/HdrInv/data.js +3 -2
  55. package/src/TemplateManager/src/RelationshipPerAction/CreateRelationship/createRelationship/functionYaml/HdrInv/template.ejs +1 -1
  56. package/src/TemplateManager/src/RelationshipPerAction/CreateRelationship/createRelationship/functionYaml/HdrSqs/data.js +3 -3
  57. package/src/TemplateManager/src/RelationshipPerAction/CreateRelationship/createRelationship/functionYaml/HdrSqs/template.ejs +1 -1
  58. package/src/TemplateManager/src/RelationshipPerAction/CreateRelationship/createRelationship/mainFunction/data.js +2 -0
  59. package/src/TemplateManager/src/RelationshipPerAction/CreateRelationship/createRelationship/mainFunction/template.ejs +63 -23
  60. package/src/TemplateManager/src/RelationshipPerAction/CreateRelationship/createRelationship/perAction/HdrApi/data.js +0 -2
  61. package/src/TemplateManager/src/RelationshipPerAction/CreateRelationship/createRelationship/perAction/HdrApi/template.ejs +45 -28
  62. package/src/TemplateManager/src/RelationshipPerAction/CreateRelationship/createRelationship/perAction/HdrDsq/data.js +0 -2
  63. package/src/TemplateManager/src/RelationshipPerAction/CreateRelationship/createRelationship/perAction/HdrDsq/template.ejs +42 -21
  64. package/src/TemplateManager/src/RelationshipPerAction/CreateRelationship/createRelationship/perAction/HdrInv/data.js +0 -2
  65. package/src/TemplateManager/src/RelationshipPerAction/CreateRelationship/createRelationship/perAction/HdrInv/template.ejs +41 -22
  66. package/src/TemplateManager/src/RelationshipPerAction/CreateRelationship/createRelationship/perAction/HdrSqs/data.js +0 -2
  67. package/src/TemplateManager/src/RelationshipPerAction/CreateRelationship/createRelationship/perAction/HdrSqs/template.ejs +42 -21
  68. package/src/TemplateManager/src/RelationshipPerAction/CreateRelationship/createRelationshipComplete/functionYaml/data.js +3 -2
  69. package/src/TemplateManager/src/RelationshipPerAction/CreateRelationship/createRelationshipComplete/functionYaml/template.ejs +1 -1
  70. package/src/TemplateManager/src/RelationshipPerAction/CreateRelationship/createRelationshipComplete/handler/HdrSqs/data.js +0 -2
  71. package/src/TemplateManager/src/RelationshipPerAction/DeleteRelationship/DeleteRelationship/functionYaml/HdrApi/data.js +3 -2
  72. package/src/TemplateManager/src/RelationshipPerAction/DeleteRelationship/DeleteRelationship/functionYaml/HdrApi/template.ejs +1 -1
  73. package/src/TemplateManager/src/RelationshipPerAction/DeleteRelationship/DeleteRelationship/functionYaml/HdrDsq/data.js +3 -2
  74. package/src/TemplateManager/src/RelationshipPerAction/DeleteRelationship/DeleteRelationship/functionYaml/HdrDsq/template.ejs +1 -1
  75. package/src/TemplateManager/src/RelationshipPerAction/DeleteRelationship/DeleteRelationship/functionYaml/HdrInv/data.js +3 -2
  76. package/src/TemplateManager/src/RelationshipPerAction/DeleteRelationship/DeleteRelationship/functionYaml/HdrInv/template.ejs +1 -1
  77. package/src/TemplateManager/src/RelationshipPerAction/DeleteRelationship/DeleteRelationship/functionYaml/HdrSqs/data.js +3 -2
  78. package/src/TemplateManager/src/RelationshipPerAction/DeleteRelationship/DeleteRelationship/functionYaml/HdrSqs/template.ejs +1 -1
  79. package/src/TemplateManager/src/RelationshipPerAction/DeleteRelationship/DeleteRelationship/mainFunction/data.js +2 -0
  80. package/src/TemplateManager/src/RelationshipPerAction/DeleteRelationship/DeleteRelationship/mainFunction/template.ejs +1 -1
  81. package/src/TemplateManager/src/RelationshipPerAction/DeleteRelationship/DeleteRelationship/perAction/HdrApi/data.js +0 -2
  82. package/src/TemplateManager/src/RelationshipPerAction/DeleteRelationship/DeleteRelationship/perAction/HdrDsq/data.js +0 -2
  83. package/src/TemplateManager/src/RelationshipPerAction/DeleteRelationship/DeleteRelationship/perAction/HdrInv/data.js +0 -2
  84. package/src/TemplateManager/src/RelationshipPerAction/DeleteRelationship/DeleteRelationship/perAction/HdrSqs/data.js +0 -2
  85. package/src/TemplateManager/src/RelationshipPerAction/DeleteRelationship/DeleteRelationshipComplete/functionYaml/data.js +3 -2
  86. package/src/TemplateManager/src/RelationshipPerAction/DeleteRelationship/DeleteRelationshipComplete/functionYaml/template.ejs +1 -1
  87. package/src/TemplateManager/src/RelationshipPerAction/DeleteRelationship/DeleteRelationshipComplete/handler/HdrSqs/data.js +0 -2
  88. package/src/TemplateManager/src/RelationshipPerAction/UpdateRelationshipSchema/updateRalationshipComplete/functionYaml/data.js +3 -2
  89. package/src/TemplateManager/src/RelationshipPerAction/UpdateRelationshipSchema/updateRalationshipComplete/functionYaml/template.ejs +1 -1
  90. package/src/TemplateManager/src/RelationshipPerAction/UpdateRelationshipSchema/updateRalationshipComplete/handler/HdrSqs/data.js +0 -2
  91. package/src/TemplateManager/src/RelationshipPerAction/UpdateRelationshipSchema/updateRelationship/functionYaml/HdrApi/data.js +3 -2
  92. package/src/TemplateManager/src/RelationshipPerAction/UpdateRelationshipSchema/updateRelationship/functionYaml/HdrApi/template.ejs +1 -1
  93. package/src/TemplateManager/src/RelationshipPerAction/UpdateRelationshipSchema/updateRelationship/functionYaml/HdrDsq/data.js +3 -2
  94. package/src/TemplateManager/src/RelationshipPerAction/UpdateRelationshipSchema/updateRelationship/functionYaml/HdrDsq/template.ejs +1 -1
  95. package/src/TemplateManager/src/RelationshipPerAction/UpdateRelationshipSchema/updateRelationship/functionYaml/HdrInv/data.js +4 -2
  96. package/src/TemplateManager/src/RelationshipPerAction/UpdateRelationshipSchema/updateRelationship/functionYaml/HdrInv/template.ejs +1 -1
  97. package/src/TemplateManager/src/RelationshipPerAction/UpdateRelationshipSchema/updateRelationship/functionYaml/HdrSqs/data.js +3 -2
  98. package/src/TemplateManager/src/RelationshipPerAction/UpdateRelationshipSchema/updateRelationship/functionYaml/HdrSqs/template.ejs +1 -1
  99. package/src/TemplateManager/src/RelationshipPerAction/UpdateRelationshipSchema/updateRelationship/mainFunction/data.js +1 -1
  100. package/src/TemplateManager/src/RelationshipPerAction/UpdateRelationshipSchema/updateRelationship/mainFunction/template.ejs +1 -1
  101. package/src/TemplateManager/src/RelationshipPerAction/UpdateRelationshipSchema/updateRelationship/perAction/HdrApi/data.js +0 -2
  102. package/src/TemplateManager/src/RelationshipPerAction/UpdateRelationshipSchema/updateRelationship/perAction/HdrDsq/data.js +0 -2
  103. package/src/TemplateManager/src/RelationshipPerAction/UpdateRelationshipSchema/updateRelationship/perAction/HdrDsq/template.ejs +1 -1
  104. package/src/TemplateManager/src/RelationshipPerAction/UpdateRelationshipSchema/updateRelationship/perAction/HdrInv/data.js +0 -2
  105. package/src/TemplateManager/src/RelationshipPerAction/UpdateRelationshipSchema/updateRelationship/perAction/HdrSqs/data.js +0 -2
  106. package/src/TemplateManager/src/RelationshipPerAction/UpdateRelationshipSchema/updateRelationship/perAction/HdrSqs/template.ejs +1 -1
  107. package/src/TemplateManager/src/ResourceYaml/dynamodb/mainResourcePerObjectSchemaData.js +3 -3
  108. package/src/TemplateManager/src/ResourceYaml/sns-in-sqs/defaultSnsInSqsForFindDataAndProcessLogical.js +6 -6
  109. package/src/TemplateManager/src/ResourceYaml/sns-out/defaultSnsOutForFindDataAndProcessLogical.js +2 -2
  110. package/src/TemplateManager/src/TranslateIdReq/ProcessingTranslateIds/functionYaml/data.js +3 -2
  111. package/src/TemplateManager/src/TranslateIdReq/ProcessingTranslateIds/functionYaml/template.ejs +1 -1
  112. package/src/TemplateManager/src/TranslateIdReq/ProcessingTranslateIds/handler/dataHdrDsq.js +0 -2
  113. package/src/TemplateManager/src/TranslateIdReq/TranslateIds/functionYaml/HdrDsq/data.js +4 -3
  114. package/src/TemplateManager/src/TranslateIdReq/TranslateIds/functionYaml/HdrDsq/template.ejs +30 -0
  115. package/src/TemplateManager/src/TranslateIdReq/TranslateIds/functionYaml/HdrSqs/data.js +4 -3
  116. package/src/TemplateManager/src/TranslateIdReq/TranslateIds/functionYaml/HdrSqs/template.ejs +30 -0
  117. package/src/TemplateManager/src/TranslateIdReq/TranslateIds/handler/HdrDsq/data.js +0 -2
  118. package/src/TemplateManager/src/TranslateIdReq/TranslateIds/handler/HdrSqs/data.js +0 -2
  119. package/src/TemplateManager/src/externalService/FunctionNameConfig/template.ejs +13 -2
  120. package/src/TemplateManager/src/externalService/LambdaRole/data.js +39 -38
  121. package/src/TemplateManager/src/externalService/SnsTopicSubscriotions/template.ejs +19 -0
  122. package/src/TemplateManager/src/libs/Consts.js +28 -5
  123. package/src/TemplateManager/src/CreateRelationship/createRelationship/functionYaml/HdrApi/data.js +0 -119
@@ -19,10 +19,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
19
19
  const izara = require("@izara_project/izara-middleware");
20
20
  const middleware = izara.middlewareHandler;
21
21
  const callingFlowSharedLib = require('@izara_project/izara-shared/src/CallingFlowSharedLib')
22
- const {
23
- validateSchemaMiddleware
24
- } = require('@izara_project/izara-market-library-service-schemas/src/GenerateCodeLibs/src/GenerateCodeLibs');
25
22
  const Logger = require('@izara_project/izara-core-library-logger');
23
+ const {validateSchemaPerRecord} = require('@izara_project/izara-market-library-service-schemas/src/GenerateCodeLibs/src/GenerateCodeLibs')
26
24
  const recordHandlerSharedLib = require('@izara_project/izara-shared').recordHandlerSharedLib
27
25
 
28
26
  <%_ if (isCreateMainFunction == true) { _%>
@@ -35,83 +33,94 @@ const recordHandlerSharedLib = require('@izara_project/izara-shared').recordHand
35
33
  //</globalVarible>)
36
34
 
37
35
  //validate event params in middleware before into main function
38
- validateSchemaMiddleware(
39
- middleware,
40
- "<%- firstLetterUpperCase(objectType) %>",
41
- "<%- action %>"
42
- //(<validateSchemaSetting>
43
- //</validateSchemaSetting>)
36
+ middleware.setValidatorSchema(
37
+ recordHandlerSharedLib.baseValidatorSchema(),
38
+ //(<middlewareSettings>)
39
+ //(</middlewareSettings>)
44
40
  )
45
- // if need to validate authorizer or additional params , add code to hook tag below
46
- // if need to validate authorizer or additional params, add code to hook tag below
47
-
48
- //(<afterValidateWithGenereatedSchema>)
49
- //(</afterValidateWithGenereatedSchema>)
50
-
51
- const messageAttributeValidatorSchema = {
52
- type: "object",
53
- require: ['msgAtrrParam1','msgAtrrParam2'],
54
- properties: {
55
- msgAtrrParam1: {
56
- type: 'string'
57
- },
58
- msgAtrrParam2: {
59
- type: 'string'
41
+
42
+ //(<globalValidatorSchema>)
43
+ const perRecordsValidatorSchema = {
44
+ type: "object",
45
+ required: [],
46
+ properties: {},
60
47
  }
61
- }
62
- };
48
+ //(</globalValidatorSchema>)
63
49
 
64
50
  // if need to validate authorizer or additional params , add code to hook tag below
65
51
 
66
- //(<afterValidateWith)
67
- module.exports.main = middleware.wrap(async (event, context, callback) => {
52
+ module.exports.main = middleware.wrap(async (event,context, callback) => {
53
+
68
54
  try {
69
55
 
70
56
  let recordPromises = [];
71
57
 
72
58
  await Promise.all(event.Records.map(async record => {
59
+ record._izContext.logger.debug('record RecieveMsgOutHdrSqs', record);
73
60
 
74
61
  let passOnProperties = [];
75
- record._izContext.logger.debug('record ReceiveMesOutHdrSqs' , record);
76
62
 
77
- // validate message (and MessageAttributes)
78
- await recordHandlerSharedLib.validateRecord(
79
- record,
80
- "<%- functionName %>",
81
- perRecordValidatorSchema,
82
- // messageAttributeValidatorSchema
83
- );
63
+ const OBJTYPE = {
64
+ objectType: "<%- objectType %>",
65
+ serviceTag: process.env.iz_serviceTag
66
+ }
84
67
 
85
- // add argument (to invoke lambda) to passOnProperties[]
86
- passOnProperties.push(record.body.Message)
87
- record._izContext.logger.debug("passOnProperties in handler", passOnProperties);
68
+ await validateSchemaPerRecord(
69
+ record,
70
+ "<%- functionName %><%- firstLetterUpperCase(handler) %>",
71
+ OBJTYPE,
72
+ "<%- action %>"
73
+ //(<validateSchemaSetting>)
74
+ //(</validateSchemaSetting>)
75
+ )
76
+
77
+ //for validate additional params
78
+ //(<afterGenerateValidatorSchema>)
79
+ /*
80
+ await recordHandlerSharedLib.validateRecord(
81
+ record,
82
+ "<%- functionName %><%- firstLetterUpperCase(handler) %>",
83
+ perRecordsValidatorSchema
84
+ );
85
+ */
86
+ //(</afterGenerateValidatorSchema>)
87
+
88
+ //(<additionalParams>)
89
+ //(</additionalParams>)
90
+
91
+ passOnProperties.push(record.body.Message);
92
+ passOnProperties.push(callingFlowSharedLib.addCallingFlowToPassOnProperties(record.body.Message));
93
+ record._izContext.logger.debug('passOnProperties in handler', passOnProperties);
88
94
 
89
- // call recordHandlerSharedLib.recordHandler with 3 parameters and return Promise (resolve)
90
95
  let recordPromise = recordHandlerSharedLib.recordHandler(
91
96
  record,
92
- <%- functionName %>.<%- functionName %>Main,
93
- "<%- queueName %>",
94
- passOnProperties,
97
+ <%- functionName %>.<%- functionName %>Main, // mainFunction
98
+ '<%- firstLetterUpperCase(queueName) %>', // queueName
99
+ passOnProperties
95
100
  );
96
- record._izContext.logger.debug('after recoedPromise in handler');
101
+ record._izContext.logger.debug('after record Promise in handler');
97
102
  recordPromises.push(recordPromise);
98
103
  }))
99
104
 
100
- Logger.debug('before Promise.all(recordPromises) in handler');
105
+ Logger.debug('before Promise.all(recordPromise) in handler');
101
106
  try {
102
- // --- main await all Promises
103
- await Promise.all(recordPromises); // await all Promises
107
+ await Promise.all(recordPromises);
104
108
 
105
- return event.Records // return all for local testing
109
+ return event.Records
106
110
  } catch {
107
- Logger.debug('Promise.all(recordPromises) in handler threw error (at least one record did not resolve)');
111
+ Logger.debug('Promise.all(recordPromises) in handler threw error (at least one record did no resolve)');
108
112
  }
109
- Logger.debug('after Promise,all(recordPromises) in handler');
113
+ Logger.debug('after Promise.all(recordPromises) in handler');
114
+
110
115
  } catch (err) {
111
- Logger.error('unhandler Error , <%- functionName %>:', err);
112
- throw (err);
116
+ Logger.debug('unhandled error <%- functionName %><%- handler %>')
117
+ throw err
118
+ }
113
119
  }
114
- })
120
+ )
121
+
122
+
123
+
115
124
  <%_ function firstLetterUpperCase(text){
116
125
  return text.charAt(0).toUpperCase() + text.slice(1)
117
126
  } _%>
@@ -58,6 +58,7 @@ const PREFIX = {
58
58
  const { TOPIC_NAME_GENERATE_CODE, TOPIC_NAME_GRAPH_HANDLER, GRAPH_HANDLER_SERVICE_NAME } = require('@izara_project/izara-market-library-service-schemas/src/GenerateCodeLibs/src/Consts')
59
59
  const { createDataDetailsLib } = require('@izara_project/izara-market-library-service-schemas/src/GenerateCodeLibs/src/GenerateCodeLibs')
60
60
  const { createLinkTypeId } = require('@izara_project/izara-core-library-service-schemas/src/Utils');
61
+ const { findLinksByObjTypes } = require("@izara_project/izara-core-library-service-schemas/src/libs/RelSchemaLib")
61
62
 
62
63
  /**
63
64
  - all storageType( DB and Graph) use objInstance({identifiers,fields})
@@ -104,6 +105,7 @@ module.exports.<%- functionName %>Main = async (
104
105
  const SERVICE_TAG = process.env.iz_serviceTag;
105
106
  //(<beforeQuery>)
106
107
  //(</beforeQuery>)
108
+
107
109
  const MAIN_OBJTYPE = {
108
110
  objectType: OBJECT_TYPE,
109
111
  serviceTag: SERVICE_TAG
@@ -124,11 +126,14 @@ module.exports.<%- functionName %>Main = async (
124
126
  let createDataDetails = await createDataDetailsLib(_izContext, objectSchemas);
125
127
  _izContext.logger.debug("createDataDetails is =", createDataDetails);
126
128
 
129
+ let checkCorrectLinks = [];
130
+
127
131
  //validate linkType
128
132
  if ((requestParams.hasOwnProperty("relationships")) && (requestParams.relationships.length > 0)) {
129
133
 
130
134
  for (let relationshipProperties of requestParams.relationships) {
131
- _izContext.logger.debug("relType", relationshipProperties.relType)
135
+ _izContext.logger.debug("relationshipProperties", relationshipProperties);
136
+ _izContext.logger.debug("relType", relationshipProperties.relType);
132
137
  let getObjectRelationship = await getObjectSchema.getRelationshipSchemaWithCache(
133
138
  _izContext,
134
139
  relationshipProperties.relType
@@ -142,6 +147,40 @@ module.exports.<%- functionName %>Main = async (
142
147
  }
143
148
  }
144
149
  }
150
+ const links = await findLinksByObjTypes(_izContext, [MAIN_OBJTYPE, relationshipProperties.targetObjType], getObjectRelationship.links);
151
+ _izContext.logger.debug("links", links)
152
+
153
+ if (!links.length) {
154
+ errorsFound.push(`not found link between ${JSON.stringify({ mainObjType: MAIN_OBJTYPE })} and ${JSON.stringify({ toObjType: relationshipProperties.targetObjType })} `)
155
+ }
156
+
157
+ for (let link of links) {
158
+ const { serviceTag: fromServiceTag, objectType: fromObjectType } = MAIN_OBJTYPE;
159
+ const { serviceTag: toServiceTag, objectType: toObjectType } = relationshipProperties.targetObjType
160
+
161
+ const { serviceTag: firstServiceTag, objectType: firstObjectType } = link.from.objType;
162
+ const { serviceTag: secondServiceTag, objectType: secondObjectType } = link.to.objType
163
+
164
+ const matchesFromTo =
165
+ fromServiceTag === firstServiceTag && fromObjectType === firstObjectType
166
+ && toServiceTag === secondServiceTag && toObjectType === secondObjectType;
167
+
168
+ const matchesToFrom =
169
+ fromServiceTag === secondServiceTag && fromObjectType === secondObjectType
170
+ && toServiceTag === firstServiceTag && toObjectType === firstObjectType
171
+
172
+ if ((relationshipProperties.relationshipDirection === "from" && matchesFromTo) ||
173
+ (relationshipProperties.relationshipDirection === "to" && matchesToFrom)) {
174
+ checkCorrectLinks.push(true)
175
+ } else {
176
+ checkCorrectLinks.push(false)
177
+ }
178
+ }
179
+ }
180
+ }
181
+ for (const [index, checkCorrectLink] of checkCorrectLinks.entries()) {
182
+ if (checkCorrectLink === false) {
183
+ errorsFound.push(`relationship direction ${JSON.stringify(requestParams.relationships[index])} is invalid`)
145
184
  }
146
185
  }
147
186
 
@@ -151,6 +190,7 @@ module.exports.<%- functionName %>Main = async (
151
190
  let objectRelationshipSchema = await getObjectSchema.getRequiredOnCreateLinksWithCache(_izContext, MAIN_OBJTYPE);
152
191
  _izContext.logger.debug("objectRelationshipSchema", objectRelationshipSchema);
153
192
 
193
+ // validate requiredOnCreateLinks
154
194
  let filteredRequiredOnCreatedLinks = [];
155
195
 
156
196
  await Promise.all(
@@ -181,9 +221,8 @@ module.exports.<%- functionName %>Main = async (
181
221
  for (const requireLink of filteredRequiredOnCreatedLinks) {
182
222
  const requiredOnCreateLinkTypeId = createLinkTypeId(
183
223
  _izContext,
184
- [
185
- MAIN_OBJTYPE, requireLink.other.objType
186
- ],
224
+ MAIN_OBJTYPE,
225
+ requireLink.other.objType,
187
226
  requireLink.relType
188
227
  );
189
228
 
@@ -195,9 +234,8 @@ module.exports.<%- functionName %>Main = async (
195
234
  for (const createRelationship of requestParams.relationships) {
196
235
  const onCreateLinkTypeId = createLinkTypeId(
197
236
  _izContext,
198
- [
199
- MAIN_OBJTYPE, createRelationship.targetObjType
200
- ],
237
+ MAIN_OBJTYPE,
238
+ createRelationship.targetObjType,
201
239
  createRelationship.relType
202
240
  );
203
241
 
@@ -226,6 +264,7 @@ module.exports.<%- functionName %>Main = async (
226
264
  }
227
265
  _izContext.logger.debug("createLinkTypeIds", createLinkTypeIds);
228
266
  _izContext.logger.debug("requiredOnCreateLinks", requiredOnCreateLinks);
267
+ // end validate
229
268
 
230
269
  let objInstanceFull = {
231
270
  identifiers: {},
@@ -393,7 +432,7 @@ module.exports.<%- functionName %>Main = async (
393
432
  _izContext.logger.debug("::::::Graphanler::::::", { storageTag, objInstanceFull });
394
433
 
395
434
  // allStorageTagComplete = false;
396
- allAwaitingStepsId.push(asyncFlowSharedLib.createAwaitingStepId(
435
+ allAwaitingStepsId.push(await asyncFlowSharedLib.createAwaitingStepId(
397
436
  (hash({
398
437
  objType: MAIN_OBJTYPE,
399
438
  graphServerTag: storageTag,
@@ -37,7 +37,6 @@ function data(_izContext, srcPath) {
37
37
  return {
38
38
  templatePath: templatePath,
39
39
  templateData: {
40
- functionNameConfig: `${upperCase(FUNCTION_NAME.processLogical)}${upperCase(HANDLER.hdrSqs)}`
41
40
  },
42
41
  setting: {
43
42
  savePath: path.join(srcPath, SOURCE_PATH.processLogical),
@@ -26,7 +26,7 @@ const serviceConfig = serviceSchemas.serviceConfig;
26
26
 
27
27
  const { HANDLER, STORAGE_TYPES, ACTIONS } = require('@izara_project/izara-core-library-service-schemas/src/Consts')
28
28
  const { firstLetterLowerCase: lowerCase, firstLetterUpperCase: upperCase } = require("../../../../MainLibs/src/Utils")
29
- const { createIamRole, resourceNames, RESOURCE_CLASSES, DEFAULT_LAMBDA_ROLE_PER_ACTION, SQS_RESOURCE, SOURCE_PATH, SAVE_FILE_NAME, LAMBDA_RESOURCE, FUNCTION_NAME, DYNAMO_RESOURCE, SNS_RESOURCE, defaultIamRolePerAction } = require("../../libs/Consts");
29
+ const { createIamRole, resourceNames, RESOURCE_CLASSES, DEFAULT_LAMBDA_ROLE_PER_ACTION, SQS_RESOURCE, SOURCE_PATH, SAVE_FILE_NAME, LAMBDA_RESOURCE, FUNCTION_NAME, DYNAMO_RESOURCE, SNS_RESOURCE, defaultIamRolePerAction, shortNameHandler, SHORT_FUNCTION_NAME } = require("../../libs/Consts");
30
30
 
31
31
  /**
32
32
  * receive objectSchema
@@ -129,7 +129,8 @@ async function data(_izContext, objectSchemas, srcPath) {
129
129
  functionName: functionName,
130
130
  resourceLocation: SOURCE_PATH.resourceLocationProcessLogical,
131
131
  handlerType: HANDLER.hdrSqs,
132
- additionalResourcePermission
132
+ additionalResourcePermission,
133
+ functionNameConfig: upperCase(SHORT_FUNCTION_NAME.processLogical) + upperCase(shortNameHandler(HANDLER.hdrSqs))
133
134
  },
134
135
  setting: {
135
136
  savePath: path.join(srcPath, SOURCE_PATH.appYaml),
@@ -1,5 +1,5 @@
1
1
  <%_ const join = require('path').join; _%>
2
- <%- functionName %><%- firstLetterUpperCase(handlerType) %>:
2
+ <%- firstLetterUpperCase(functionNameConfig) %>:
3
3
  handler: <%- join(resourceLocation, `${functionName}_${firstLetterUpperCase(handlerType)}.main`)%>
4
4
  name: ${self:custom.iz_resourcePrefix}<%- functionName %><%- firstLetterUpperCase(handlerType) %>
5
5
  events:
@@ -22,7 +22,7 @@ const path = require('path');
22
22
  const templatePath = path.join(__dirname, "./template.ejs")
23
23
 
24
24
  const { HANDLER, STORAGE_TYPES, ACTIONS } = require('@izara_project/izara-core-library-service-schemas/src/Consts')
25
- const { createIamRole, resourceNames, RESOURCE_CLASSES, DEFAULT_LAMBDA_ROLE_PER_ACTION, SQS_RESOURCE, SOURCE_PATH, SAVE_FILE_NAME, FUNCTION_NAME, defaultIamRolePerAction } = require("../../../libs/Consts");
25
+ const { createIamRole, resourceNames, RESOURCE_CLASSES, DEFAULT_LAMBDA_ROLE_PER_ACTION, SQS_RESOURCE, SOURCE_PATH, SAVE_FILE_NAME, FUNCTION_NAME, defaultIamRolePerAction, shortNameHandler, SHORT_FUNCTION_NAME } = require("../../../libs/Consts");
26
26
  const { firstLetterUpperCase: upperCase } = require('../../../../../MainLibs/src/Utils');
27
27
 
28
28
  /**
@@ -122,7 +122,8 @@ async function data(_izContext, objectSchemas, srcPath) {
122
122
  functionName: functionName,
123
123
  resourceLocation: SOURCE_PATH.resourceLocationProcessLogical,
124
124
  handlerType: HANDLER.hdrDsq,
125
- additionalResourcePermission
125
+ additionalResourcePermission,
126
+ functionNameConfig: upperCase(SHORT_FUNCTION_NAME.paginateProcessLogical) + upperCase(shortNameHandler(HANDLER.hdrDsq))
126
127
  },
127
128
  setting: {
128
129
  savePath: path.join(srcPath, SOURCE_PATH.appYaml),
@@ -1,5 +1,5 @@
1
1
  <%_ const join = require('path').join; _%>
2
- <%- functionName %><%- firstLetterUpperCase(handlerType) %>:
2
+ <%- firstLetterUpperCase(functionNameConfig) %>:
3
3
  handler: <%- join(resourceLocation, `${functionName}_${firstLetterUpperCase(handlerType)}.main`)%>
4
4
  name: ${self:custom.iz_resourcePrefix}<%- functionName %><%- firstLetterUpperCase(handlerType) %>
5
5
  events:
@@ -22,7 +22,7 @@ const path = require('path');
22
22
  const templatePath = path.join(__dirname, "./template.ejs")
23
23
 
24
24
  const { HANDLER, STORAGE_TYPES, ACTIONS } = require('@izara_project/izara-core-library-service-schemas/src/Consts')
25
- const { createIamRole, resourceNames, RESOURCE_CLASSES, DEFAULT_LAMBDA_ROLE_PER_ACTION, SQS_RESOURCE, SOURCE_PATH, SAVE_FILE_NAME, FUNCTION_NAME, DYNAMO_RESOURCE, defaultIamRolePerAction, SNS_RESOURCE } = require("../../../libs/Consts");
25
+ const { createIamRole, resourceNames, RESOURCE_CLASSES, DEFAULT_LAMBDA_ROLE_PER_ACTION, SQS_RESOURCE, SOURCE_PATH, SAVE_FILE_NAME, FUNCTION_NAME, DYNAMO_RESOURCE, defaultIamRolePerAction, SNS_RESOURCE, shortNameHandler, SHORT_FUNCTION_NAME } = require("../../../libs/Consts");
26
26
  const { firstLetterUpperCase: upperCase } = require('../../../../../MainLibs/src/Utils');
27
27
 
28
28
  /**
@@ -124,7 +124,8 @@ async function data(_izContext, objectSchemas, srcPath) {
124
124
  functionName: functionName,
125
125
  resourceLocation: SOURCE_PATH.resourceLocationProcessLogical,
126
126
  handlerType: HANDLER.hdrSqs,
127
- additionalResourcePermission
127
+ additionalResourcePermission,
128
+ functionNameConfig: upperCase(SHORT_FUNCTION_NAME.paginateProcessLogical) + upperCase(shortNameHandler(HANDLER.hdrSqs))
128
129
  },
129
130
  setting: {
130
131
  savePath: path.join(srcPath, SOURCE_PATH.appYaml),
@@ -1,5 +1,5 @@
1
1
  <%_ const join = require('path').join; _%>
2
- <%- functionName %><%- firstLetterUpperCase(handlerType) %>:
2
+ <%- firstLetterUpperCase(functionNameConfig) %>:
3
3
  handler: <%- join(resourceLocation, `${functionName}_${firstLetterUpperCase(handlerType)}.main`)%>
4
4
  name: ${self:custom.iz_resourcePrefix}<%- functionName %><%- firstLetterUpperCase(handlerType) %>
5
5
  events:
@@ -35,9 +35,7 @@ function data(_izContext, srcPath) {
35
35
 
36
36
  return {
37
37
  templatePath: templatePath,
38
- templateData: {
39
- functionNameConfig: `${upperCase(FUNCTION_NAME.paginateProcessLogical)}${upperCase(HANDLER.hdrDsq)}`
40
- },
38
+ templateData: {},
41
39
  setting: {
42
40
  savePath: path.join(srcPath, SOURCE_PATH.processLogical),
43
41
  saveFileName: `${upperCase(FUNCTION_NAME.paginateProcessLogical)}_${upperCase(HANDLER.hdrDsq)}`,
@@ -35,9 +35,7 @@ function data(_izContext, srcPath) {
35
35
 
36
36
  return {
37
37
  templatePath: templatePath,
38
- templateData: {
39
- functionNameConfig: `${upperCase(FUNCTION_NAME.paginateProcessLogical)}${upperCase(HANDLER.hdrSqs)}`
40
- },
38
+ templateData: {},
41
39
  setting: {
42
40
  savePath: path.join(srcPath, SOURCE_PATH.processLogical),
43
41
  saveFileName: `${upperCase(FUNCTION_NAME.paginateProcessLogical)}_${upperCase(HANDLER.hdrSqs)}`,
@@ -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 } = require("../../../../../libs/Consts");
25
+ const { createIamRole, resourceNames, RESOURCE_CLASSES, SOURCE_PATH, SAVE_FILE_NAME, FUNCTION_NAME, SNS_RESOURCE, defaultIamRolePerAction, awaitingMultipleStepsRole, shortNameHandler, SHORT_FUNCTION_NAME } = require("../../../../../libs/Consts");
26
26
 
27
27
  const templatePath = path.join(__dirname, "./template.ejs")
28
28
 
@@ -69,7 +69,8 @@ function createParamForCreateSource(srcPath) {
69
69
  functionName,
70
70
  handlerType,
71
71
  additionalResourcePermission,
72
- resourceLocation: SOURCE_PATH.resourceLocationRelationshipPerAction
72
+ resourceLocation: SOURCE_PATH.resourceLocationRelationshipPerAction,
73
+ functionNameConfig: upperCase(SHORT_FUNCTION_NAME.createRel) + upperCase(shortNameHandler(handlerType))
73
74
  },
74
75
  setting: {
75
76
  savePath: path.join(srcPath, SOURCE_PATH.appYaml),
@@ -1,5 +1,5 @@
1
1
  <%_ const join = require('path').join; _%>
2
- <%- firstLetterUpperCase(functionName) %><%- firstLetterUpperCase(handlerType) %>:
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
5
  events:
@@ -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, SQS_RESOURCE, SOURCE_PATH, SAVE_FILE_NAME, FUNCTION_NAME, SNS_RESOURCE, defaultIamRolePerAction, awaitingMultipleStepsRole } = require("../../../../../libs/Consts");
25
+ const { createIamRole, resourceNames, RESOURCE_CLASSES, SQS_RESOURCE, SOURCE_PATH, SAVE_FILE_NAME, FUNCTION_NAME, SNS_RESOURCE, defaultIamRolePerAction, awaitingMultipleStepsRole, shortNameHandler, SHORT_FUNCTION_NAME } = require("../../../../../libs/Consts");
26
26
 
27
27
  const templatePath = path.join(__dirname, './template.ejs')
28
28
 
@@ -82,7 +82,8 @@ function createParamForCreateSource(srcPath) {
82
82
  functionName,
83
83
  handlerType,
84
84
  additionalResourcePermission,
85
- resourceLocation: SOURCE_PATH.resourceLocationRelationshipPerAction
85
+ resourceLocation: SOURCE_PATH.resourceLocationRelationshipPerAction,
86
+ functionNameConfig: upperCase(SHORT_FUNCTION_NAME.createRel) + upperCase(shortNameHandler(handlerType))
86
87
  },
87
88
  setting: {
88
89
  savePath: path.join(srcPath, SOURCE_PATH.appYaml),
@@ -1,5 +1,5 @@
1
1
  <%_ const join = require('path').join; _%>
2
- <%- firstLetterUpperCase(functionName) %><%- firstLetterUpperCase(handlerType) %>:
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
5
  events:
@@ -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 } = require("../../../../../libs/Consts");
25
+ const { createIamRole, resourceNames, RESOURCE_CLASSES, SOURCE_PATH, SAVE_FILE_NAME, FUNCTION_NAME, SNS_RESOURCE, defaultIamRolePerAction, awaitingMultipleStepsRole, shortNameHandler, SHORT_FUNCTION_NAME } = require("../../../../../libs/Consts");
26
26
 
27
27
  const templatePath = path.join(__dirname, './template.ejs')
28
28
 
@@ -67,7 +67,8 @@ function createParamForCreateSource(srcPath) {
67
67
  functionName,
68
68
  handlerType,
69
69
  additionalResourcePermission,
70
- resourceLocation: SOURCE_PATH.resourceLocationRelationshipPerAction
70
+ resourceLocation: SOURCE_PATH.resourceLocationRelationshipPerAction,
71
+ functionNameConfig: upperCase(SHORT_FUNCTION_NAME.createRel) + upperCase(shortNameHandler(handlerType))
71
72
  },
72
73
  setting: {
73
74
  savePath: path.join(srcPath, SOURCE_PATH.appYaml),
@@ -1,5 +1,5 @@
1
1
  <%_ const join = require('path').join; _%>
2
- <%- firstLetterUpperCase(functionName) %><%- firstLetterUpperCase(handlerType) %>:
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
5
  iamRoleStatements:
@@ -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, SQS_RESOURCE, SOURCE_PATH, SAVE_FILE_NAME, FUNCTION_NAME, SNS_RESOURCE, defaultIamRolePerAction, awaitingMultipleStepsRole } = require("../../../../../libs/Consts");
25
+ const { createIamRole, resourceNames, RESOURCE_CLASSES, SQS_RESOURCE, SOURCE_PATH, SAVE_FILE_NAME, FUNCTION_NAME, SNS_RESOURCE, defaultIamRolePerAction, awaitingMultipleStepsRole, shortNameHandler, SHORT_FUNCTION_NAME } = require("../../../../../libs/Consts");
26
26
 
27
27
  const templatePath = path.join(__dirname, './template.ejs')
28
28
 
@@ -81,7 +81,8 @@ function createParamForCreateSource(srcPath) {
81
81
  functionName,
82
82
  handlerType,
83
83
  additionalResourcePermission,
84
- resourceLocation: SOURCE_PATH.resourceLocationRelationshipPerAction
84
+ resourceLocation: SOURCE_PATH.resourceLocationRelationshipPerAction,
85
+ functionNameConfig: upperCase(SHORT_FUNCTION_NAME.createRel) + upperCase(shortNameHandler(handlerType))
85
86
  },
86
87
  setting: {
87
88
  savePath: path.join(srcPath, SOURCE_PATH.appYaml),
@@ -89,7 +90,6 @@ function createParamForCreateSource(srcPath) {
89
90
  fileExtension: '.yml',
90
91
  isAppend: true
91
92
  }
92
-
93
93
  }
94
94
  }
95
95
 
@@ -1,5 +1,5 @@
1
1
  <%_ const join = require('path').join; _%>
2
- <%- firstLetterUpperCase(functionName) %><%- firstLetterUpperCase(handlerType) %>:
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
5
  iamRoleStatements:
@@ -41,9 +41,11 @@ function data(_izContext, srcPath) {
41
41
 
42
42
 
43
43
  function createParamForCreateSource(srcPath) {
44
+ let functionName = FUNCTION_NAME.createRel
44
45
  return {
45
46
  templatePath: templatePath,
46
47
  templateData: {
48
+ functionName
47
49
  },
48
50
  setting: {
49
51
  savePath: path.join(srcPath, SOURCE_PATH.relationshipPerAction),