@izara_project/izara-market-library-service-schemas 1.0.4 → 1.0.6

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 (177) hide show
  1. package/package.json +2 -2
  2. package/src/GenerateCodeLibs/index.js +2 -1
  3. package/src/GenerateCodeLibs/src/Consts.js +20 -5
  4. package/src/GenerateCodeLibs/src/GenerateCodeLibs.js +298 -12
  5. package/src/GenerateCodeLibs/src/TranslateIdsLibs.js +89 -0
  6. package/src/MainLibs/src/Utils.js +10 -0
  7. package/src/TemplateManager/src/CreateRelationship/createRelationship/functionYaml/HdrApi/data.js +119 -0
  8. package/src/TemplateManager/src/CreateRelationship/createRelationship/functionYaml/HdrDsq/data.js +133 -0
  9. package/src/TemplateManager/src/CreateRelationship/createRelationship/functionYaml/HdrInv/data.js +120 -0
  10. package/src/TemplateManager/src/CreateRelationship/createRelationship/functionYaml/HdrSqs/data.js +133 -0
  11. package/src/TemplateManager/src/CreateRelationship/createRelationship/mainFunction/data.js +59 -0
  12. package/src/TemplateManager/src/CreateRelationship/createRelationship/mainFunction/template.ejs +340 -0
  13. package/src/TemplateManager/src/CreateRelationship/createRelationship/perAction/HdrApi/data.js +58 -0
  14. package/src/TemplateManager/src/CreateRelationship/createRelationship/perAction/HdrApi/request.json +0 -0
  15. package/src/TemplateManager/src/CreateRelationship/createRelationship/perAction/HdrApi/template.ejs +120 -0
  16. package/src/TemplateManager/src/CreateRelationship/createRelationship/perAction/HdrDsq/data.js +59 -0
  17. package/src/TemplateManager/src/CreateRelationship/createRelationship/perAction/HdrDsq/request.json +0 -0
  18. package/src/TemplateManager/src/CreateRelationship/createRelationship/perAction/HdrDsq/template.ejs +167 -0
  19. package/src/TemplateManager/src/CreateRelationship/createRelationship/perAction/HdrInv/data.js +60 -0
  20. package/src/TemplateManager/src/CreateRelationship/createRelationship/perAction/HdrInv/request.json +0 -0
  21. package/src/TemplateManager/src/CreateRelationship/createRelationship/perAction/HdrInv/template.ejs +107 -0
  22. package/src/TemplateManager/src/CreateRelationship/createRelationship/perAction/HdrSqs/data.js +60 -0
  23. package/src/TemplateManager/src/CreateRelationship/createRelationship/perAction/HdrSqs/request.json +0 -0
  24. package/src/TemplateManager/src/CreateRelationship/createRelationship/perAction/HdrSqs/template.ejs +146 -0
  25. package/src/TemplateManager/src/CreateRelationship/createRelationship/perAction/request.json +30 -0
  26. package/src/TemplateManager/src/CreateRelationship/createRelationship/sns-in-sqs/data.js +78 -0
  27. package/src/TemplateManager/src/CreateRelationship/createRelationshipComplete/functionYaml/data.js +133 -0
  28. package/src/TemplateManager/src/CreateRelationship/createRelationshipComplete/functionYaml/request.json +0 -0
  29. package/src/TemplateManager/src/CreateRelationship/createRelationshipComplete/functionYaml/template.ejs +33 -0
  30. package/src/TemplateManager/src/CreateRelationship/createRelationshipComplete/handler/HdrSqs/data.js +61 -0
  31. package/src/TemplateManager/src/CreateRelationship/createRelationshipComplete/handler/HdrSqs/request.json +0 -0
  32. package/src/TemplateManager/src/CreateRelationship/createRelationshipComplete/handler/HdrSqs/template.ejs +125 -0
  33. package/src/TemplateManager/src/CreateRelationship/createRelationshipComplete/mainFunction/data.js +56 -0
  34. package/src/TemplateManager/src/CreateRelationship/createRelationshipComplete/mainFunction/request.json +0 -0
  35. package/src/TemplateManager/src/CreateRelationship/createRelationshipComplete/mainFunction/template.ejs +137 -0
  36. package/src/TemplateManager/src/CreateRelationship/createRelationshipComplete/sns-in-sqs/data.js +72 -0
  37. package/src/TemplateManager/src/CreateRelationship/createRelationshipComplete/sns-in-sqs/request.json +0 -0
  38. package/src/TemplateManager/src/CreateRelationship/createRelationshipComplete/sns-in-sqs/template.ejs +47 -0
  39. package/src/TemplateManager/src/CreateRelationship/createRelationshipComplete/sns-out/data.js +72 -0
  40. package/src/TemplateManager/src/CreateRelationship/createRelationshipComplete/sns-out/request.json +0 -0
  41. package/src/TemplateManager/src/FindData/FindDataYaml/data.js +188 -0
  42. package/src/TemplateManager/src/FindData/FindDataYaml/template.ejs +27 -0
  43. package/src/TemplateManager/src/FindData/GetByStorage/getByDynamo.ejs +53 -0
  44. package/src/TemplateManager/src/FindData/GetByStorage/getByGraph.ejs +99 -0
  45. package/src/TemplateManager/src/FindData/Handler/data.js +48 -0
  46. package/src/TemplateManager/src/FindData/Handler/template.ejs +140 -0
  47. package/src/TemplateManager/src/FindData/mainFunction/data.js +279 -0
  48. package/src/TemplateManager/src/FindData/mainFunction/template.ejs +155 -0
  49. package/src/TemplateManager/src/GenerateCode(Old).js +1 -1
  50. package/src/TemplateManager/src/GenerateCode.js +205 -45
  51. package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/functionYaml/data.js +98 -0
  52. package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/functionYaml/template.ejs +33 -0
  53. package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/handler/data.js +0 -0
  54. package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/handler/template.ejs +0 -0
  55. package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/mainFunction/createObjectComplete_main.js +172 -0
  56. package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/mainFunction/data.js +0 -0
  57. package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/mainFunction/template.ejs +0 -0
  58. package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/sns-in-sqs/data.js +0 -0
  59. package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/sns-in-sqs/template.ejs +0 -0
  60. package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/sns-out/data.js +0 -0
  61. package/src/TemplateManager/src/OutPerActionComplete/OutCreateComplete/sns-out/template.ejs +0 -0
  62. package/src/TemplateManager/src/OutPerActionComplete/OutUpdateComplete/functionYaml/data.js +98 -0
  63. package/src/TemplateManager/src/OutPerActionComplete/OutUpdateComplete/functionYaml/template.ejs +33 -0
  64. package/src/TemplateManager/src/OutPerActionComplete/OutUpdateComplete/handler/data.js +59 -0
  65. package/src/TemplateManager/src/OutPerActionComplete/OutUpdateComplete/handler/template.ejs +129 -0
  66. package/src/TemplateManager/src/OutPerActionComplete/OutUpdateComplete/mainFunction/data.js +53 -0
  67. package/src/TemplateManager/src/OutPerActionComplete/OutUpdateComplete/mainFunction/template.ejs +126 -0
  68. package/src/TemplateManager/src/OutPerActionComplete/OutUpdateComplete/sns-out/data.js +62 -0
  69. package/src/TemplateManager/src/OutPerActionComplete/OutUpdateComplete/sqs-in-sns/data.js +58 -0
  70. package/src/TemplateManager/src/OutPerActionComplete/OutUpdateComplete/sqs-in-sns/template.ejs +47 -0
  71. package/src/TemplateManager/src/{FunctionYaml → PerActionEndpoint/FunctionYaml}/HdrApi/data.js +24 -20
  72. package/src/TemplateManager/src/{FunctionYaml → PerActionEndpoint/FunctionYaml}/HdrApi/template.ejs +2 -2
  73. package/src/TemplateManager/src/{FunctionYaml → PerActionEndpoint/FunctionYaml}/HdrDsq/data.js +27 -20
  74. package/src/TemplateManager/src/{FunctionYaml → PerActionEndpoint/FunctionYaml}/HdrInv/data.js +54 -22
  75. package/src/TemplateManager/src/{FunctionYaml → PerActionEndpoint/FunctionYaml}/HdrSqs/data.js +28 -23
  76. package/src/TemplateManager/src/PerActionEndpoint/FunctionYaml/HdrSqs/template.ejs +30 -0
  77. package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrApi/data.js +6 -22
  78. package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrApi/getTemplate.ejs +76 -0
  79. package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrApi/updateTemplate.ejs +67 -0
  80. package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrDsq/data.js +47 -37
  81. package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrDsq/getTemplate.ejs +105 -0
  82. package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrDsq/updateTemplate.ejs +109 -0
  83. package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrInv/createTemplate.ejs +75 -0
  84. package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrInv/data.js +68 -33
  85. package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrInv/getTemplate.ejs +82 -0
  86. package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrInv/updateTemplate.ejs +75 -0
  87. package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrSqs/data.js +46 -30
  88. package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrSqs/getTemplate.ejs +124 -0
  89. package/src/TemplateManager/src/PerActionEndpoint/Handler/HdrSqs/updateTemplate.ejs +133 -0
  90. package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Create/CreateObject_main.js +760 -0
  91. package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Create/data.js +67 -0
  92. package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Create/request.json +0 -0
  93. package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Create/template.ejs +581 -0
  94. package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Get/data.js +0 -21
  95. package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Get/template.ejs +34 -31
  96. package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Get/testParam.json +5 -0
  97. package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Update/data.js +61 -0
  98. package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Update/request.json +0 -0
  99. package/src/TemplateManager/src/PerActionEndpoint/MainFunction/Update/template.ejs +267 -0
  100. package/src/TemplateManager/src/ProcessLogical/Handler/data.js +49 -0
  101. package/src/TemplateManager/src/ProcessLogical/Handler/template.ejs +129 -0
  102. package/src/TemplateManager/src/ProcessLogical/ProcessLogicalYaml/data.js +175 -0
  103. package/src/TemplateManager/src/ProcessLogical/ProcessLogicalYaml/template.ejs +25 -0
  104. package/src/TemplateManager/src/ProcessLogical/mainFunction/data.js +47 -0
  105. package/src/TemplateManager/src/ProcessLogical/mainFunction/template.ejs +421 -0
  106. package/src/TemplateManager/src/ProcessLogicalPagination/DsqYaml/data.js +50 -0
  107. package/src/TemplateManager/src/ProcessLogicalPagination/DsqYaml/template.ejs +32 -0
  108. package/src/TemplateManager/src/ProcessLogicalPagination/FunctionYaml/HdrDsq/data.js +167 -0
  109. package/src/TemplateManager/src/ProcessLogicalPagination/FunctionYaml/HdrDsq/template.ejs +25 -0
  110. package/src/TemplateManager/src/ProcessLogicalPagination/FunctionYaml/HdrSqs/data.js +169 -0
  111. package/src/TemplateManager/src/ProcessLogicalPagination/FunctionYaml/HdrSqs/template.ejs +25 -0
  112. package/src/TemplateManager/src/ProcessLogicalPagination/Handler/HdrDsq/data.js +48 -0
  113. package/src/TemplateManager/src/ProcessLogicalPagination/Handler/HdrDsq/template.ejs +163 -0
  114. package/src/TemplateManager/src/ProcessLogicalPagination/Handler/HdrSqs/data.js +48 -0
  115. package/src/TemplateManager/src/ProcessLogicalPagination/Handler/HdrSqs/template.ejs +146 -0
  116. package/src/TemplateManager/src/ProcessLogicalPagination/mainFunction/data.js +48 -0
  117. package/src/TemplateManager/src/ProcessLogicalPagination/mainFunction/template.ejs +212 -0
  118. package/src/TemplateManager/src/ResourceYaml/CreateSourceData.js +2 -2
  119. package/src/TemplateManager/src/ResourceYaml/dynamodb/awaitingMultipleStepData.js +5 -8
  120. package/src/TemplateManager/src/ResourceYaml/dynamodb/mainResourcePerObjectSchemaData.js +4 -26
  121. package/src/TemplateManager/src/ResourceYaml/dynamodb/processLogicalAndFindData.js +6 -10
  122. package/src/TemplateManager/src/ResourceYaml/sns-in-sqs/defaultSnsInSqsForFindDataAndProcessLogical.js +28 -16
  123. package/src/TemplateManager/src/ResourceYaml/sns-in-sqs/snsAndSqsPerActiondata.js +5 -5
  124. package/src/TemplateManager/src/ResourceYaml/sns-out/data.js +3 -3
  125. package/src/TemplateManager/src/ResourceYaml/sns-out/defaultSnsOutForFindDataAndProcessLogical.js +75 -0
  126. package/src/TemplateManager/src/TranslateIdReq/ProcessingTranslateIds/functionYaml/data.js +95 -0
  127. package/src/TemplateManager/src/{FunctionYaml/HdrSqs → TranslateIdReq/ProcessingTranslateIds/functionYaml}/template.ejs +1 -1
  128. package/src/TemplateManager/src/TranslateIdReq/ProcessingTranslateIds/handler/dataHdrDsq.js +52 -0
  129. package/src/TemplateManager/src/TranslateIdReq/ProcessingTranslateIds/handler/template.ejs +194 -0
  130. package/src/TemplateManager/src/TranslateIdReq/ProcessingTranslateIds/mainFunction/data.js +48 -0
  131. package/src/TemplateManager/src/TranslateIdReq/ProcessingTranslateIds/mainFunction/template.ejs +330 -0
  132. package/src/TemplateManager/src/TranslateIdReq/ProcessingTranslateIds/sns-out/data.js +47 -0
  133. package/src/TemplateManager/src/TranslateIdReq/ProcessingTranslateIds/sqs-sns/data.js +58 -0
  134. package/src/TemplateManager/src/TranslateIdReq/ProcessingTranslateIds/sqs-sns/template.ejs +43 -0
  135. package/src/TemplateManager/src/TranslateIdReq/TranslateIds/functionYaml/HdrDsq/data.js +116 -0
  136. package/src/TemplateManager/src/TranslateIdReq/TranslateIds/functionYaml/HdrSqs/data.js +116 -0
  137. package/src/TemplateManager/src/TranslateIdReq/TranslateIds/handler/HdrDsq/data.js +60 -0
  138. package/src/TemplateManager/src/TranslateIdReq/TranslateIds/handler/HdrDsq/template.ejs +157 -0
  139. package/src/TemplateManager/src/TranslateIdReq/TranslateIds/handler/HdrSqs/data.js +59 -0
  140. package/src/TemplateManager/src/TranslateIdReq/TranslateIds/handler/HdrSqs/template.ejs +175 -0
  141. package/src/TemplateManager/src/TranslateIdReq/TranslateIds/mainFunction/data.js +61 -0
  142. package/src/TemplateManager/src/TranslateIdReq/TranslateIds/mainFunction/template.ejs +155 -0
  143. package/src/TemplateManager/src/TranslateIdReq/TranslateIds/resourceYaml/dynamoDb/data.js +120 -0
  144. package/src/TemplateManager/src/TranslateIdReq/TranslateIds/resourceYaml/sns-sqs/data.js +75 -0
  145. package/src/TemplateManager/src/UpdateRelationshipSchema/updateRalationshipComplete/functionYaml/data.js +8 -24
  146. package/src/TemplateManager/src/UpdateRelationshipSchema/updateRalationshipComplete/handler/HdrSqs/data.js +7 -21
  147. package/src/TemplateManager/src/UpdateRelationshipSchema/updateRalationshipComplete/mainFunction/data.js +4 -3
  148. package/src/TemplateManager/src/UpdateRelationshipSchema/updateRalationshipComplete/mainFunction/template.ejs +1 -1
  149. package/src/TemplateManager/src/UpdateRelationshipSchema/updateRalationshipComplete/sns-in-sqs/data.js +10 -13
  150. package/src/TemplateManager/src/UpdateRelationshipSchema/updateRalationshipComplete/sns-in-sqs/template.ejs +1 -0
  151. package/src/TemplateManager/src/UpdateRelationshipSchema/updateRalationshipComplete/sns-out/data.js +6 -5
  152. package/src/TemplateManager/src/UpdateRelationshipSchema/updateRelationship/functionYaml/HdrApi/data.js +13 -21
  153. package/src/TemplateManager/src/UpdateRelationshipSchema/updateRelationship/functionYaml/HdrDsq/data.js +11 -29
  154. package/src/TemplateManager/src/UpdateRelationshipSchema/updateRelationship/functionYaml/HdrInv/data.js +16 -21
  155. package/src/TemplateManager/src/UpdateRelationshipSchema/updateRelationship/functionYaml/HdrSqs/data.js +12 -27
  156. package/src/TemplateManager/src/UpdateRelationshipSchema/updateRelationship/mainFunction/data.js +3 -18
  157. package/src/TemplateManager/src/UpdateRelationshipSchema/updateRelationship/mainFunction/template.ejs +18 -11
  158. package/src/TemplateManager/src/UpdateRelationshipSchema/updateRelationship/perAction/HdrApi/data.js +5 -18
  159. package/src/TemplateManager/src/UpdateRelationshipSchema/updateRelationship/perAction/HdrDsq/data.js +5 -19
  160. package/src/TemplateManager/src/UpdateRelationshipSchema/updateRelationship/perAction/HdrInv/data.js +7 -18
  161. package/src/TemplateManager/src/UpdateRelationshipSchema/updateRelationship/perAction/HdrSqs/data.js +6 -20
  162. package/src/TemplateManager/src/UpdateRelationshipSchema/updateRelationship/perAction/request.json +3 -4
  163. package/src/TemplateManager/src/UpdateRelationshipSchema/updateRelationship/sns-in-sqs/data.js +5 -6
  164. package/src/TemplateManager/src/UpdateRelationshipSchema/updateRelationship/sns-out/data.js +4 -4
  165. package/src/TemplateManager/src/externalService/LambdaRole/data.js +181 -59
  166. package/src/TemplateManager/src/externalService/LambdaRole/template.ejs +17 -15
  167. package/src/TemplateManager/src/externalService/SnsTopicSubscriotions/data.js +56 -44
  168. package/src/TemplateManager/src/externalService/SnsTopicSubscriotions/template.ejs +3 -4
  169. package/src/TemplateManager/src/libs/Consts.js +162 -13
  170. package/src/TemplateManager/src/PerActionEndpoint/Handler/testRequest.json +0 -5
  171. /package/src/TemplateManager/src/{FunctionYaml → PerActionEndpoint/FunctionYaml}/HdrApi/request.json +0 -0
  172. /package/src/TemplateManager/src/{FunctionYaml → PerActionEndpoint/FunctionYaml}/HdrDsq/request.json +0 -0
  173. /package/src/TemplateManager/src/{FunctionYaml → PerActionEndpoint/FunctionYaml}/HdrDsq/template.ejs +0 -0
  174. /package/src/TemplateManager/src/{FunctionYaml → PerActionEndpoint/FunctionYaml}/HdrInv/example req.js +0 -0
  175. /package/src/TemplateManager/src/{FunctionYaml → PerActionEndpoint/FunctionYaml}/HdrInv/request.json +0 -0
  176. /package/src/TemplateManager/src/{FunctionYaml → PerActionEndpoint/FunctionYaml}/HdrInv/template.ejs +0 -0
  177. /package/src/TemplateManager/src/{FunctionYaml → PerActionEndpoint/FunctionYaml}/HdrSqs/request.json +0 -0
@@ -20,8 +20,6 @@ const path = require('path');
20
20
  const fs = require('fs');
21
21
 
22
22
  const { ACTIONS, HANDLER } = require('@izara_project/izara-core-library-service-schemas/src/Consts')
23
- const { createGetDataDetails } = require('../../../../../GenerateCodeLibs/src/GenerateCodeLibs')
24
-
25
23
  const { firstLetterLowerCase: lowerCase, firstLetterUpperCase: upperCase, firstLetterUpperCase } = require("../../../../../MainLibs/src/Utils")
26
24
  const { DEFAULT_HANDLER_PER_ACTION, SOURCE_PATH } = require("../../../libs/Consts");
27
25
 
@@ -36,8 +34,6 @@ const templatePath = path.join(__dirname, "./template.ejs")
36
34
  * @return {{ templatePath, templateData, setting } }
37
35
  */
38
36
  async function data(_izContext, objectSchema, srcPath) {
39
-
40
- // let createSourceArray = [];
41
37
  if (objectSchema.overwriteGeneratedMainFunction?.length
42
38
  && objectSchema.overwriteGeneratedMainFunction.includes(ACTIONS.get)
43
39
  ) {
@@ -51,15 +47,12 @@ async function createParamForCreateSource(_izContext, objectSchema, action, srcP
51
47
  let objectType = objectSchema.objectType;
52
48
  let actionHandler = action;
53
49
  let functionName = objectType + upperCase(action);
54
- let getDataDetail = await createGetDataDetails(_izContext, objectSchema);
55
- // console.log({ getDataDetail })
56
50
  return {
57
51
  templatePath: templatePath,
58
52
  templateData: {
59
53
  functionName: functionName,
60
54
  objectType: objectType,
61
55
  actionHandler: actionHandler,
62
- getDataDetail: JSON.stringify(getDataDetail)
63
56
  },
64
57
  setting: {
65
58
  savePath: path.join(srcPath, SOURCE_PATH.lambdaPerAction),
@@ -71,18 +64,4 @@ async function createParamForCreateSource(_izContext, objectSchema, action, srcP
71
64
  }
72
65
 
73
66
 
74
- // [
75
- // {
76
- // templatePath: '/home/toughnut/BasProgram/empty-service-template/app/node_modules/@izara_project/izara-market-library-service-schemas/src/TemplateManager/src/MainResourcesYaml/TemplateAndData/DynamoDbMain/Template/DynamoDb.ejs',
77
- // templateData: { tableName: 'ObjectTypeSingle', attributes: [Array] },
78
- // setting: {
79
- // savePath: '/generatedCode/source/',
80
- // saveFileName: 'ObjectTypeGet',
81
- // fileExtension: '.js',
82
- // isAppend: false
83
- // }
84
- // }
85
- // ]
86
-
87
-
88
67
  module.exports = data;
@@ -41,6 +41,8 @@ Copyright (C) 2020 Sven Mason <http: //izara.io>
41
41
 
42
42
 
43
43
  const NoRetryError = require('@izara_project/izara-core-library-core/src/NoRetryError');
44
+ const { createGetDataDetails } = require('@izara_project/izara-market-library-service-schemas/src/GenerateCodeLibs/src/GenerateCodeLibs')
45
+
44
46
 
45
47
 
46
48
  /**
@@ -62,7 +64,7 @@ Copyright (C) 2020 Sven Mason <http: //izara.io>
62
64
  requestParams,
63
65
  callingFlowConfig = {},
64
66
  //(<additionalParams>)
65
- //(</additionalParams>)
67
+ //(</additionalParams>)
66
68
  ) => {
67
69
 
68
70
 
@@ -75,9 +77,8 @@ Copyright (C) 2020 Sven Mason <http: //izara.io>
75
77
  const OBJECT_TYPE = "<%- objectType %>";
76
78
  const SERVICE_TAG = process.env.iz_serviceTag;
77
79
 
78
- let getDataDetails = <%- getDataDetail %>
79
80
  //(<beforeQuery>)
80
- //(</beforeQuery>)
81
+ //(</beforeQuery>)
81
82
 
82
83
  let objectSchema = await getObjSchemaS3WithHierarchy(
83
84
  _izContext,
@@ -89,6 +90,8 @@ Copyright (C) 2020 Sven Mason <http: //izara.io>
89
90
 
90
91
  _izContext.logger.debug("objectSchema: ", objectSchema);
91
92
 
93
+ let getDataDetails = await createGetDataDetails(_izContext, objectSchema);
94
+ _izContext.logger.debug("getDataDetails:", getDataDetails)
92
95
 
93
96
  // start to get data
94
97
  let getResults = {}; // for collect result data from
@@ -113,37 +116,36 @@ Copyright (C) 2020 Sven Mason <http: //izara.io>
113
116
 
114
117
 
115
118
  //(<beforeGetGraph>)
116
- //(</beforeGetGraph>)
117
-
118
- let dataFromGraph = await graphSharedLib.getNode(
119
- _izContext,
120
- graphServiceName,
121
- {
122
- nodeLabel: OBJECT_TYPE,
123
- nodeProperties: {
124
- ...requestParams.identifiers
125
- },
126
- },
127
- versionedDataLabels
128
- );
129
-
130
- _izContext.logger.debug("dataFromGraph: ", dataFromGraph);
131
-
132
- if (Object.keys(dataFromGraph).length) {
133
- getRecordStatus.getAtLeastOneRecord = true;
134
- } else {
135
- getRecordStatus.notFoundSomeRecord = true;
136
- }
119
+ //(</beforeGetGraph>)
120
+
121
+ let dataFromGraph = await graphSharedLib.getNodeV2(
122
+ _izContext,
123
+ graphServiceName,
124
+ {
125
+ objectType: OBJECT_TYPE,
126
+ serviceTag: SERVICE_TAG
127
+ },
128
+ {
129
+ identifiers: requestParams.identifiers
130
+ },
131
+ versionedDataLabels
132
+ )
133
+
134
+ _izContext.logger.debug("dataFromGraphV2: ", dataFromGraph);
135
+
136
+ if (Object.keys(dataFromGraph).length) {
137
+ getRecordStatus.getAtLeastOneRecord = true;
138
+ } else {
139
+ getRecordStatus.notFoundSomeRecord = true
140
+ }
137
141
 
138
- //(<afterGetGraph>)
142
+ //(<afterGetGraph>)
139
143
  //(</afterGetGraph>)
140
144
 
141
-
142
- // collect return data depend on getDataDetail
143
- Object.assign(
144
- getResults,
145
- collectGetData(_izContext, dataFromGraph, getDataDetail)
146
- );
145
+ Object.assign(
146
+ getResults,
147
+ collectGetData(_izContext, dataFromGraph, getDataDetail)
148
+ )
147
149
 
148
150
 
149
151
  } else {
@@ -196,6 +198,7 @@ Copyright (C) 2020 Sven Mason <http: //izara.io>
196
198
  }
197
199
 
198
200
  if (Object.keys(getResults).length) {
201
+ _izContext.logger.debug("getResults", getResults)
199
202
  return getResults;
200
203
  } else {
201
204
  return null
@@ -0,0 +1,5 @@
1
+ {
2
+ "identifiers":{
3
+ "personId":"basTest"
4
+ }
5
+ }
@@ -0,0 +1,61 @@
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
+ const path = require('path');
20
+ const fs = require('fs');
21
+
22
+ const { ACTIONS, HANDLER } = require('@izara_project/izara-core-library-service-schemas/src/Consts')
23
+
24
+ const { firstLetterLowerCase: lowerCase, firstLetterUpperCase: upperCase, firstLetterUpperCase } = require("../../../../../MainLibs/src/Utils")
25
+ const { DEFAULT_HANDLER_PER_ACTION, SOURCE_PATH } = require("../../../libs/Consts");
26
+
27
+
28
+ const templatePath = path.join(__dirname, "./template.ejs")
29
+
30
+ async function data(_izContext, objectSchema, srcPath) {
31
+ if (objectSchema.overwriteGeneratedMainFunction?.length
32
+ && objectSchema.overwriteGeneratedMainFunction.includes(ACTIONS.update)
33
+ ) {
34
+ return [];
35
+ } else {
36
+ return [await createMainFunctionUpdateEndpoint(_izContext, objectSchema, ACTIONS.update, srcPath)]
37
+ }
38
+ }
39
+
40
+ async function createMainFunctionUpdateEndpoint(_izContext, objectSchema, action, srcPath) {
41
+ let objectType = objectSchema.objectType
42
+ let actionHandler = action;
43
+ let functionName = upperCase(objectType) + upperCase(actionHandler);
44
+ return {
45
+ templatePath: templatePath,
46
+ templateData: {
47
+ objectType,
48
+ actionHandler,
49
+ functionName,
50
+ },
51
+ setting: {
52
+ savePath: path.join(srcPath, SOURCE_PATH.lambdaPerAction),
53
+ saveFileName: `${upperCase(objectSchema.objectType)}${upperCase(action)}_Main`,
54
+ fileExtension: ".js",
55
+ isAppend: false
56
+ }
57
+ }
58
+ }
59
+
60
+
61
+ module.exports = data
@@ -0,0 +1,267 @@
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
16
+ <http: //www.gnu.org/licenses />.
17
+ */
18
+
19
+ 'use strict';
20
+
21
+ const hash = require("object-hash");
22
+ const {
23
+ getObjSchemaS3WithHierarchy,
24
+ } = require('@izara_project/izara-core-library-service-schemas/src/GetObjectSchema');
25
+
26
+ const {
27
+ getGraphServiceTagWithCache,
28
+ getServiceNameWithCache
29
+ } = require('@izara_project/izara-core-library-service-schemas/src/ServiceConfig');
30
+
31
+ const consts = require('@izara_project/izara-core-library-service-schemas/src/Consts');
32
+
33
+
34
+ const {
35
+ dynamoDbIdentifiersByStorageResource,
36
+ collectGetData
37
+ } = require('@izara_project/izara-market-library-service-schemas/src/GenerateCodeLibs/src/GenerateCodeLibs');
38
+
39
+ const izaraShared = require('@izara_project/izara-shared');
40
+ const dynamodbSharedLib = izaraShared.dynamodbSharedLib;
41
+ const graphSharedLib = izaraShared.graphSharedLib;
42
+ const snsSharedLib = izaraShared.snsSharedLib;
43
+ const asyncFlowSharedLib = izaraShared.asyncFlowSharedLib;
44
+ const callingFlowSharedLib = izaraShared.callingFlowSharedLib;
45
+ const lambdaSharedLib = izaraShared.lambdaSharedLib
46
+
47
+ const externalRequest = require('@izara_project/izara-core-library-external-request');
48
+ const sns = externalRequest.sns
49
+
50
+ const serviceSchema = require('@izara_project/izara-core-library-service-schemas/src/Utils')
51
+
52
+ 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
+ const { PREFIX, TOPIC_NAME_GENERATE_CODE, TOPIC_NAME_GRAPH_HANDLER } = require('@izara_project/izara-market-library-service-schemas/src/GenerateCodeLibs/src/Consts');
55
+ const coreConsts = require('@izara_project/izara-core-library-core/src/Consts')
56
+
57
+
58
+ /**
59
+ *
60
+ *
61
+ * description of function.
62
+ * @param {Object} _izContext
63
+ * @param {CorrelationIds} _izContext.correlationIds - property of _izContext
64
+ * @param {Logger} _izContext.logger - property of _izContext
65
+ * @param {Object} requestParams - request params
66
+ * @param {Object} requestParams.identifiers - identifiers for get data
67
+ * @param {Object} requestParams.additionalRequest - additionalRequest
68
+ *
69
+ *
70
+ * @returns {object} description of return value
71
+ */
72
+
73
+ module.exports.<%- functionName %>Main = async (
74
+ _izContext,
75
+ requestParams,
76
+ callingFlowConfig = {},
77
+ //(<additionalParams>)
78
+ //(</additionalParams>)
79
+ ) => {
80
+
81
+ try {
82
+ _izContext.logger.debug("<%- functionName %> _izContext", _izContext)
83
+ _izContext.logger.debug("<%- functionName %> requestParams", requestParams)
84
+ _izContext.logger.debug("<%- functionName %> callingFlowConfig", callingFlowConfig)
85
+
86
+ _izContext.correlationIds.set(coreConsts.BASE_USER_ID, "BasDev");
87
+ const userId = _izContext.correlationIds.get(coreConsts.BASE_USER_ID)
88
+ if (!userId) {
89
+ errorFounds.push("Not Have UserId")
90
+ }
91
+
92
+ const OBJECT_TYPE = "<%- objectType %>"
93
+ const SERVICE_TAG = process.env.iz_serviceTag;
94
+ //(<beforeQuery>)
95
+ //(</beforeQuery>)
96
+
97
+ const fields = requestParams.objInstanceFull.fields;
98
+ const identifiers = requestParams.objInstanceFull.identifiers;
99
+ _izContext.logger.debug("explode requestParams", {
100
+ fields: fields,
101
+ identifiers: identifiers
102
+ })
103
+ let objectSchema = await getObjSchemaS3WithHierarchy(
104
+ _izContext,
105
+ {
106
+ objectType: OBJECT_TYPE,
107
+ serviceTag: SERVICE_TAG
108
+ }
109
+ )
110
+ _izContext.logger.debug("objectSchema", objectSchema);
111
+
112
+ let updateDataDetails = await createUpdateDataDetail(_izContext, objectSchema);
113
+
114
+ _izContext.logger.debug("updateDataDetails", updateDataDetails);
115
+
116
+ let originTimestamp = Date.now();
117
+
118
+ let errorFounds = [];
119
+
120
+ let messageAttributes
121
+ _izContext.logger.debug("messageAttributes", messageAttributes)
122
+
123
+ if (errorFounds.length) {
124
+ let updateNodeCompleteMessage = {
125
+ objType: {
126
+ objecType: OBJECT_TYPE,
127
+ serviceTag: SERVICE_TAG
128
+ },
129
+ objInstanceFull: {
130
+ identifiers: identifiers,
131
+ fields: fields
132
+ },
133
+ status: 'error',
134
+ errorFounds: errorFounds
135
+ };
136
+
137
+
138
+ updateNodeCompleteMessage = callingFlowSharedLib.addPassBackPropertiesToSnsResponseMessageObject(callingFlowConfig, updateNodeCompleteMessage);
139
+
140
+
141
+ let messageParams = {
142
+ Message: JSON.stringify(updateNodeCompleteMessage),
143
+ MessageAttributes: sns.createStringMessageAttributes(_izContext, messageAttributes),
144
+ TopicArn: await snsSharedLib.snsTopicArn(_izContext, TOPIC_NAME_GENERATE_CODE.outUpdateNodeComplete),
145
+ };
146
+
147
+ _izContext.logger.debug("messageParams OutUpdateNodeComplete ::::::: ", messageParams);
148
+ await sns.publishAsync(_izContext, messageParams);
149
+
150
+ return updateNodeCompleteMessage
151
+ }
152
+
153
+ let awaitingStepIds = [];
154
+
155
+ // start update data
156
+ await Promise.all(
157
+ Object.entries(updateDataDetails).map(
158
+ async ([storageTag, updateDataDetail]) => {
159
+ if (updateDataDetail.storageType === consts.STORAGE_TYPES.graph) {
160
+ // let graphServiceName = await getGraphServiceTagWithCache(_izContext, getDataDetail.graphServiceTag)
161
+
162
+ awaitingStepIds.push( // createAwaitingstepId if updateGraph
163
+ asyncFlowSharedLib.createAwaitingStepId(
164
+ hash({
165
+ objectType: OBJECT_TYPE,
166
+ serviceTag: SERVICE_TAG,
167
+ identifiers: identifiers,
168
+ fields: fields,
169
+ // correlationIds: _izContext.correlationIds.get("id")
170
+ }),
171
+ PREFIX.updateNode
172
+ )
173
+ )
174
+ _izContext.logger.debug("awaitingStepIds", awaitingStepIds)
175
+
176
+ if (awaitingStepIds.length) {
177
+ let awaitingMultipleStep = await asyncFlowSharedLib.createAwaitingMultipleSteps(
178
+ _izContext,
179
+ awaitingStepIds,
180
+ asyncFlowSharedLib.createPendingStepId(
181
+ hash(
182
+ {
183
+ identifiers,
184
+ fields
185
+ })
186
+ )
187
+ )
188
+ _izContext.logger.debug("awaitingMultipleStep", awaitingMultipleStep)
189
+ }
190
+
191
+ let updateNodeParams = {
192
+ objType: {
193
+ objectType: OBJECT_TYPE,
194
+ serviceTag: SERVICE_TAG
195
+ },
196
+ objInstanceFull: {
197
+ identifiers: identifiers,
198
+ fields: fields
199
+ },
200
+ originTimestamp
201
+ }
202
+
203
+ updateNodeParams = callingFlowSharedLib.addCallingFlowToSnsRequestMessageObject(
204
+ updateNodeParams,
205
+ callingFlowSharedLib.addParentCallingFlowConfig(
206
+ callingFlowConfig,
207
+ callingFlowSharedLib.createCallingFlowConfig(
208
+ await lambdaSharedLib.lambdaFunctionName(_izContext, TOPIC_NAME_GENERATE_CODE.updateNodeComplete),
209
+ {}
210
+ )
211
+ )
212
+ )
213
+
214
+ _izContext.logger.debug("messageObject before send message:", updateNodeParams);
215
+
216
+
217
+ let updateNodeMessageBody = {
218
+ Message: JSON.stringify(updateNodeParams),
219
+ MessageAttributes: sns.createStringMessageAttributes(_izContext, messageAttributes),
220
+ TopicArn: await snsSharedLib.snsTopicArn(_izContext, TOPIC_NAME_GRAPH_HANDLER.inUpdateNode, storageTag,)
221
+ }
222
+
223
+ _izContext.logger.debug('requset param before send to topic InUpdateNode:::', updateNodeMessageBody);
224
+
225
+ let resSNS = await sns.publishAsync(_izContext, updateNodeMessageBody)
226
+ _izContext.logger.debug('resSNS send to topic InUpdateNode finish!', resSNS);
227
+
228
+ } else {
229
+
230
+ let identifiersForUpdateData = await dynamoDbIdentifiersByStorageResource(
231
+ _izContext,
232
+ objectSchema,
233
+ updateDataDetail,
234
+ identifiers
235
+ )
236
+ _izContext.logger.debug("identifiersForUpdateData", identifiersForUpdateData)
237
+ _izContext.logger.debug("fields", fields)
238
+
239
+ await dynamodbSharedLib.updateItem(
240
+ _izContext,
241
+ await dynamodbSharedLib.tableName(_izContext, updateDataDetail.tableName),
242
+ identifiersForUpdateData,
243
+ fields
244
+ )
245
+ }
246
+ }
247
+ )
248
+ )
249
+ return {
250
+ returnValues: {
251
+ objType: {
252
+ objectType: OBJECT_TYPE,
253
+ serviceTag: SERVICE_TAG
254
+ },
255
+ objInstanceFull: {
256
+ identifiers: identifiers,
257
+ fields: fields
258
+ }
259
+ },
260
+ status: "complete",
261
+ errorFounds
262
+ }
263
+ } catch (err) {
264
+ _izContext.logger.error('error <%- functionName %>: ', err)
265
+ throw (err)
266
+ }
267
+ }
@@ -0,0 +1,49 @@
1
+ /*
2
+ Copyright (C) 2020 Sven Mason <http://izara.io>
3
+
4
+ This program is free software: you can redistribute it and/or modify
5
+ it under the terms of the GNU Affero General Public License as
6
+ published by the Free Software Foundation, either version 3 of the
7
+ License, or (at your option) any later version.
8
+
9
+ This program is distributed in the hope that it will be useful,
10
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ GNU Affero General Public License for more details.
13
+
14
+ You should have received a copy of the GNU Affero General Public License
15
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
16
+ */
17
+
18
+ 'use strict';
19
+
20
+ const path = require('path');
21
+
22
+ const templatePath = path.join(__dirname, "./template.ejs")
23
+
24
+ const { DEFAULT_HANDLER_PER_ACTION, SOURCE_PATH, FUNCTION_NAME, HANDLER } = require("../../libs/Consts");
25
+ const { firstLetterLowerCase: lowerCase, firstLetterUpperCase: upperCase } = require('../../../../MainLibs/src/Utils')
26
+
27
+ /**
28
+ * receive srcPath
29
+ * not create data for ProcessLogical Handler template
30
+ *
31
+ * @param {string} srcPath
32
+ * @return {{ templatePath, templateData, setting } }
33
+ */
34
+ function data(_izContext, srcPath) {
35
+
36
+
37
+ return {
38
+ templatePath: templatePath,
39
+ templateData: {},
40
+ setting: {
41
+ savePath: path.join(srcPath, SOURCE_PATH.processLogical),
42
+ saveFileName: `${upperCase(FUNCTION_NAME.processLogical)}_${upperCase(HANDLER.hdrSqs)}`,
43
+ fileExtension: '.js',
44
+ isAppend: false
45
+ }
46
+ }
47
+ }
48
+
49
+ module.exports = data;
@@ -0,0 +1,129 @@
1
+ /*
2
+ Copyright (C) 2020 Sven Mason <http://izara.io>
3
+
4
+ This program is free software: you can redistribute it and/or modify
5
+ it under the terms of the GNU Affero General Public License as
6
+ published by the Free Software Foundation, either version 3 of the
7
+ License, or (at your option) any later version.
8
+
9
+ This program is distributed in the hope that it will be useful,
10
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ GNU Affero General Public License for more details.
13
+
14
+ You should have received a copy of the GNU Affero General Public License
15
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
16
+ */
17
+
18
+ 'use strict';
19
+
20
+ // const AWS = require('aws-sdk');
21
+ // const sqs = new AWS.SQS({ apiVersion: '2012-11-05' });
22
+
23
+ const izara = require("@izara_project/izara-middleware");
24
+ const middleware = izara.middlewareHandler;
25
+ const recordHandlerSharedLib = require("@izara_project/izara-shared").recordHandlerSharedLib;
26
+ const Logger = require('@izara_project/izara-core-library-logger');
27
+
28
+ const processLogical = require('./ProcessLogical_Main');
29
+
30
+ // validate event properties in body.Message of sqs event
31
+ middleware.setValidatorSchema(recordHandlerSharedLib.baseValidatorSchema());
32
+
33
+ // set schema for record.body.Message
34
+ const perRecordsValidatorSchema = {
35
+ type: "object",
36
+ required: [
37
+ 'objType',
38
+ 'element'
39
+ ],
40
+ properties: {
41
+ objType: {
42
+ type: 'object',
43
+ required: ["serviceTag", "objectType"],
44
+ properties: {
45
+ serviceTag: {
46
+ type: "string",
47
+ enum: [process.env.iz_serviceTag]
48
+ },
49
+ objectType: izara.validatorSchema.stringNotEmpty()
50
+ }
51
+ },
52
+ element: {
53
+ type: "object"
54
+ },
55
+ callingFlow: {
56
+ type: 'string',
57
+ default: ''
58
+ }
59
+ }
60
+ };
61
+
62
+ // set schema for record.body.MessageAttributes
63
+ // const messageAttributeValidatorSchema = {
64
+ // type: "object",
65
+ // required: ['msgAtrrParam1', 'msgAtrrParam2'],
66
+ // properties: {
67
+ // msgAtrrParam1: {
68
+ // type: "string"
69
+ // },
70
+ // msgAtrrParam2: {
71
+ // type: "object"
72
+ // }
73
+ // }
74
+ // };
75
+
76
+ module.exports.main = middleware.wrap(async (event, context, callback) => {
77
+
78
+ try {
79
+
80
+ let recordPromises = [];
81
+
82
+ // loop each record and send to mainFunction
83
+ await Promise.all(event.Records.map(async record => { // promise.all for map() function
84
+
85
+ let passOnProperties = []
86
+ record._izContext.logger.debug('record ReceiveMsgOutHdrSqs', record);
87
+
88
+ // validate message (and MessageAttributes)
89
+ await recordHandlerSharedLib.validateRecord(
90
+ record, // one record will send to mainFunction
91
+ "ProcessLogicalHdrSqs", // queue name that need to retry or send to dlq
92
+ perRecordsValidatorSchema, // schema for record.Message
93
+ // messageAttributeValidatorSchema // ----- for msgAttr default is null -> do not send this parameter if not want to validate msgAtt
94
+ );
95
+
96
+ // add argument (to invoke lambda) to passOnProperties[]
97
+ passOnProperties.push(record.body.Message.objType)
98
+ passOnProperties.push(record.body.Message.element)
99
+ passOnProperties.push(record.body.Message.callingFlow)
100
+ record._izContext.logger.debug('passOnProperties in handler', passOnProperties);
101
+
102
+ // call recordHandlerSharedLib.recordHandler with 3 parameters and return promise(resolve)
103
+ let recordPromise = recordHandlerSharedLib.recordHandler(
104
+ record, // one record will send to mainFunction
105
+ processLogical.processLogical, // mainFunction that need to invoke.
106
+ "ProcessLogicalHdrSqs", // queue name that need to retry or send to dlq
107
+ passOnProperties, // all parameters that mainFunction needed.
108
+ );
109
+ record._izContext.logger.debug('after recordPromise in handler');
110
+ recordPromises.push(recordPromise); // push promise to recordPromises
111
+ }))
112
+
113
+ Logger.debug('before Promise.all(recordPromises) in handler');
114
+ try {
115
+ // --- main await all promises
116
+ await Promise.all(recordPromises); // await all promises
117
+
118
+ return event.Records // return all for local testing
119
+
120
+ } catch {
121
+ Logger.debug('Promise.all(recordPromises) in handler threw error (at least one record did no resolve)');
122
+ }
123
+ Logger.debug('after Promise.all(recordPromises) in handler');
124
+
125
+ } catch (err) {
126
+ Logger.error('Unhandled Error, ProcessLogicalHdrSqs: ', err);
127
+ throw (err);
128
+ }
129
+ });