@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
@@ -21,12 +21,13 @@ const fs = require('fs');
21
21
 
22
22
  const { ACTIONS, HANDLER } = require('@izara_project/izara-core-library-service-schemas/src/Consts')
23
23
 
24
- const { firstLetterLowerCase: lowerCase, firstLetterUpperCase: upperCase, firstLetterUpperCase } = require("../../../../../MainLibs/src/Utils")
25
- const { DEFAULT_HANDLER_PER_ACTION, SOURCE_PATH } = require("../../../libs/Consts");
24
+ const { firstLetterLowerCase: lowerCase, firstLetterUpperCase: upperCase, firstLetterUpperCase, checkOverWriteGenerateMainFunction } = require("../../../../../MainLibs/src/Utils")
25
+ const { DEFAULT_HANDLER_PER_ACTION, SOURCE_PATH, FUNCTION_NAME } = require("../../../libs/Consts");
26
26
 
27
27
 
28
- const templatePath = path.join(__dirname, "./template.ejs")
29
-
28
+ const getTemplatePath = path.join(__dirname, "./getTemplate.ejs")
29
+ const updateTemplatePath = path.join(__dirname, "./updateTemplate.ejs")
30
+ const createTemplatePath = path.join(__dirname, "./createTemplate.ejs")
30
31
  /**
31
32
  * receive objectSchema
32
33
  * create data for hdrInv template
@@ -41,17 +42,30 @@ function data(_izContext, objectSchema, srcPath) {
41
42
  if (objectSchema.overWriteHandlers?.[action]) {
42
43
  // if have overWriteHander of action check hdrInv inside
43
44
  if (objectSchema.overWriteHandlers[action].includes(HANDLER.hdrInv)) {
44
- // create template data
45
- const createSourceParam = createParamForCreateSource(objectSchema, action, srcPath)
46
- createSourceArray.push(createSourceParam)
45
+ if (action == ACTIONS.get) {
46
+ // create template data
47
+ const createHandlerGet = createParamForCreateHandlerGet(objectSchema, action, HANDLER.hdrInv, srcPath)
48
+ createHandlerGet && createSourceArray.push(createHandlerGet)
49
+ } else if (action == ACTIONS.update) {
50
+ const createHandlerUpdate = createParamForCreateHandlerUpdate(objectSchema, action, HANDLER.hdrInv, srcPath)
51
+ createHandlerUpdate && createSourceArray.push(createHandlerUpdate)
52
+ } else if (action == ACTIONS.create) {
53
+ const createHandlerCreate = createParamForCreateHandlerCreate(objectSchema, action, HANDLER.hdrInv, srcPath)
54
+ createHandlerCreate && createSourceArray.push(createHandlerCreate)
55
+ }
47
56
  }
48
57
  } else {
49
58
  // if not have overWriteHander of action will use default handler
50
59
  const defaultHandler = DEFAULT_HANDLER_PER_ACTION[action]
51
- if (defaultHandler.includes(HANDLER.hdrInv)) {
52
- // create template data and object for create source
53
- const createSourceParam = createParamForCreateSource(objectSchema, action, srcPath)
54
- createSourceArray.push(createSourceParam)
60
+ if (action = ACTIONS.get) {
61
+ if (defaultHandler.includes(HANDLER.hdrInv)) {
62
+ // create template data and object for create source
63
+ const createHandlerGet = createParamForCreateHandlerGet(objectSchema, action, HANDLER.hdrInv, srcPath)
64
+ createHandlerGet && createSourceArray.push(createHandlerGet)
65
+ }
66
+ } else if (action = ACTIONS.update) {
67
+ const createHandlerUpdate = createParamForCreateHandlerUpdate(objectSchema, action, HANDLER.hdrInv, srcPath)
68
+ createHandlerGet && createSourceArray.push(createHandlerUpdate);
55
69
  }
56
70
  }
57
71
  }
@@ -60,43 +74,64 @@ function data(_izContext, objectSchema, srcPath) {
60
74
  }
61
75
 
62
76
 
63
- function createParamForCreateSource(objectSchema, action, srcPath) {
77
+ function createParamForCreateHandlerGet(objectSchema, action, handler, srcPath) {
64
78
  let objectType = objectSchema.objectType;
65
- let actionHandler = action;
66
79
  let functionName = objectType + upperCase(action);
67
-
68
80
  return {
69
- templatePath: templatePath,
81
+ templatePath: getTemplatePath,
70
82
  templateData: {
71
83
  functionName: functionName,
72
84
  objectType: objectType,
73
- actionHandler: actionHandler,
74
- isCreateMainFunction: (objectSchema.overwriteGeneratedMainFunction?.length
75
- && objectSchema.overwriteGeneratedMainFunction.includes(action)
76
- ) ? true : false,
85
+ action: action,
86
+ isCreateMainFunction: checkOverWriteGenerateMainFunction(objectSchema, action)
77
87
  },
78
88
  setting: {
79
89
  savePath: path.join(srcPath, SOURCE_PATH.lambdaPerAction),
80
- saveFileName: `${upperCase(objectSchema.objectType)}${upperCase(action)}_HdrInv`,
90
+ saveFileName: `${upperCase(objectType)}${upperCase(action)}_${upperCase(handler)}`,
81
91
  fileExtension: '.js',
82
92
  isAppend: false
83
93
  }
84
94
  }
85
95
  }
86
96
 
97
+ function createParamForCreateHandlerUpdate(objectSchema, action, handler, srcPath) {
98
+ let objectType = objectSchema.objectType;
99
+ let functionName = objectType + upperCase(action);
100
+ return {
101
+ templatePath: updateTemplatePath,
102
+ templateData: {
103
+ functionName,
104
+ objectType,
105
+ action,
106
+ isCreateMainFunction: checkOverWriteGenerateMainFunction(objectSchema, action)
107
+ },
108
+ setting: {
109
+ savePath: path.join(srcPath, SOURCE_PATH.lambdaPerAction),
110
+ saveFileName: `${upperCase(objectType)}${upperCase(action)}_${upperCase(handler)}`,
111
+ fileExtension: ".js",
112
+ isAppend: false
113
+ }
114
+ }
115
+ }
87
116
 
88
- // [
89
- // {
90
- // 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',
91
- // templateData: { tableName: 'ObjectTypeSingle', attributes: [Array] },
92
- // setting: {
93
- // savePath: '/generatedCode/source/',
94
- // saveFileName: 'ObjectTypeGet',
95
- // fileExtension: '.js',
96
- // isAppend: false
97
- // }
98
- // }
99
- // ]
100
-
117
+ function createParamForCreateHandlerCreate(objectSchema, action, handler, srcPath) {
118
+ let objectType = objectSchema.objectType;
119
+ let functionName = objectType + upperCase(action);
120
+ return {
121
+ templatePath: createTemplatePath,
122
+ templateData: {
123
+ functionName,
124
+ objectType,
125
+ action,
126
+ isCreateMainFunction: checkOverWriteGenerateMainFunction(objectSchema, action)
127
+ },
128
+ setting: {
129
+ savePath: path.join(srcPath, SOURCE_PATH.lambdaPerAction),
130
+ saveFileName: `${upperCase(objectType)}${upperCase(action)}_${upperCase(handler)}`,
131
+ fileExtension: ".js",
132
+ isAppend: false
133
+ }
134
+ }
135
+ }
101
136
 
102
137
  module.exports = data;
@@ -0,0 +1,82 @@
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 middleware = require("@izara_project/izara-middleware/src/MiddlewareCore/MiddlewareHandler");
21
+
22
+ const callingFlowSharedLib = require('@izara_project/izara-shared/src/CallingFlowSharedLib')
23
+
24
+
25
+ const {
26
+ validateSchemaMiddleware
27
+ } = require('@izara_project/izara-market-library-service-schemas/src/GenerateCodeLibs/src/GenerateCodeLibs');
28
+
29
+
30
+ <%_ if (isCreateMainFunction == true) { _%>
31
+ // user generate main function
32
+ <%_ } else { %>
33
+ const <%- functionName %> =require('./<%- firstLetterUpperCase(objectType) %><%- firstLetterUpperCase(action) %>_Main')
34
+ <%_ } _%>
35
+
36
+ //(<globalVariable>
37
+ //</globalVariable>)
38
+
39
+
40
+ //validate event params in middleware before into function
41
+ validateSchemaMiddleware(
42
+ middleware,
43
+ "<%- firstLetterUpperCase(objectType) %>", // objectType
44
+ "<%- action %>", // action
45
+ //(<validateSchemaSetting>)
46
+ //(</validateSchemaSetting>)
47
+ )
48
+
49
+ // if need to validate authorizer or additional params, add code to hook tag below
50
+
51
+ //(<afterValidateWithGenereatedSchema>)
52
+ //(</afterValidateWithGenereatedSchema>)
53
+
54
+
55
+ module.exports.main = middleware.wrap(async (event, context, callback) => {
56
+ event._izContext.logger.debug('Event:', event);
57
+ event._izContext.logger.debug('context:', context);
58
+
59
+ try {
60
+
61
+ //(<beforeInvoke>)
62
+ //(</beforeInvoke>)
63
+
64
+ // invoke LambdaFunction
65
+ return await <%- functionName %>.<%- functionName %>Main(
66
+ event._izContext, // correlationId/logger/integrationTestDetail/uniqueRequestId
67
+ event,
68
+ callingFlowSharedLib.addCallingFlowToPassOnProperties(event)
69
+ );
70
+
71
+ } catch (err) {
72
+ event._izContext.logger.error('Error, <%- firstLetterUpperCase(objectType) %>: ', err);
73
+ throw (err);
74
+ }
75
+ });
76
+
77
+ <%_ function firstLetterUpperCase(text){
78
+ return text.charAt(0).toUpperCase() + text.slice(1)
79
+ } _%>
80
+ <%_ function firstLetterLowerCase(str) {
81
+ return str.charAt(0).toLowerCase() + str.slice(1)
82
+ } _%>
@@ -0,0 +1,75 @@
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 middleware = require("@izara_project/izara-middleware/src/MiddlewareCore/MiddlewareHandler");
21
+
22
+ const callingFlowSharedLib = require('@izara_project/izara-shared/src/CallingFlowSharedLib')
23
+
24
+
25
+ const {
26
+ validateSchemaMiddleware
27
+ } = require('@izara_project/izara-market-library-service-schemas/src/GenerateCodeLibs/src/GenerateCodeLibs');
28
+
29
+
30
+ <%_ if (isCreateMainFunction == true) { _%>
31
+ // user generate main function
32
+ <%_ } else { %>
33
+ const <%- functionName %> =require('./<%- firstLetterUpperCase(objectType) %><%- firstLetterUpperCase(action) %>_Main')
34
+ <%_ } _%>
35
+
36
+ //validate event params in middleware before into function
37
+ validateSchemaMiddleware(
38
+ middleware,
39
+ "<%- firstLetterUpperCase(objectType) %>", // objectType
40
+ "<%- action %>", // action
41
+ //(<validateSchemaSetting>)
42
+ //(</validateSchemaSetting>)
43
+ )
44
+
45
+ //(<afterValidateWithGenereatedSchema>)
46
+ //(</afterValidateWithGenereatedSchema>)
47
+
48
+ module.exports.main = middleware.wrap(async (event, context, callback) => {
49
+ event._izContext.logger.debug('Event:', event);
50
+ event._izContext.logger.debug('context:', context);
51
+
52
+ try {
53
+
54
+ //(<beforeInvoke>)
55
+ //(</beforeInvoke>)
56
+
57
+ // invoke LambdaFunction
58
+ return await <%- functionName %>.<%- functionName %>Main(
59
+ event._izContext, // correlationId/logger/integrationTestDetail/uniqueRequestId
60
+ event,
61
+ callingFlowSharedLib.addCallingFlowToPassOnProperties(event)
62
+ );
63
+
64
+ } catch (err) {
65
+ event._izContext.logger.error('Error, <%- firstLetterUpperCase(objectType) %>: ', err);
66
+ throw (err);
67
+ }
68
+ });
69
+
70
+ <%_ function firstLetterUpperCase(text){
71
+ return text.charAt(0).toUpperCase() + text.slice(1)
72
+ } _%>
73
+ <%_ function firstLetterLowerCase(str) {
74
+ return str.charAt(0).toLowerCase() + str.slice(1)
75
+ } _%>
@@ -21,10 +21,11 @@ const fs = require('fs');
21
21
 
22
22
  const { ACTIONS, HANDLER } = require('@izara_project/izara-core-library-service-schemas/src/Consts')
23
23
 
24
- const { firstLetterLowerCase: lowerCase, firstLetterUpperCase: upperCase, firstLetterUpperCase } = require("../../../../../MainLibs/src/Utils")
24
+ const { firstLetterLowerCase: lowerCase, firstLetterUpperCase: upperCase, firstLetterUpperCase, checkOverWriteGenerateMainFunction } = require("../../../../../MainLibs/src/Utils")
25
25
  const { DEFAULT_HANDLER_PER_ACTION, SOURCE_PATH } = require("../../../libs/Consts");
26
26
 
27
- const templatePath = path.join(__dirname, "./template.ejs")
27
+ const getTemplatePath = path.join(__dirname, "./getTemplate.ejs")
28
+ const updateTemplatePath = path.join(__dirname, "./updateTemplate.ejs")
28
29
 
29
30
  /**
30
31
  * receive objectSchema
@@ -40,17 +41,27 @@ function data(_izContext, objectSchema, srcPath) {
40
41
  if (objectSchema.overWriteHandlers?.[action]) {
41
42
  // if have overWriteHander of action check hdrInv inside
42
43
  if (objectSchema.overWriteHandlers[action].includes(HANDLER.hdrSqs)) {
43
- // create template data
44
- const createSourceParam = createParamForCreateSource(objectSchema, action, srcPath)
45
- createSourceArray.push(createSourceParam)
44
+ if (action == ACTIONS.get) {
45
+ // create template data
46
+ const createSourceParamHandlerGet = createParamForCreateSourceGetHandler(objectSchema, action, HANDLER.hdrSqs, srcPath)
47
+ createSourceParamHandlerGet && createSourceArray.push(createSourceParamHandlerGet)
48
+ } else if (action == ACTIONS.update) {
49
+ const createSourceParamHandlerUpdate = createParamForCreateSourceUpdateHandler(objectSchema, action, HANDLER.hdrSqs, srcPath)
50
+ createSourceParamHandlerUpdate && createSourceArray.push(createSourceParamHandlerUpdate)
51
+ }
46
52
  }
47
53
  } else {
48
54
  // if not have overWriteHander of action will use default handler
49
55
  const defaultHandler = DEFAULT_HANDLER_PER_ACTION[action]
50
56
  if (defaultHandler.includes(HANDLER.hdrSqs)) {
51
- // create template data and object for create source
52
- const createSourceParam = createParamForCreateSource(objectSchema, action, srcPath)
53
- createSourceArray.push(createSourceParam)
57
+ if (action == ACTIONS.get) {
58
+ // create template data and object for create source
59
+ const createSourceParam = createParamForCreateSourceGetHandler(objectSchema, action, srcPath)
60
+ createSourceParamHandlerGet && createSourceArray.push(createSourceParam)
61
+ } else if (action == ACTIONS.update) {
62
+ const createSourceParamHandlerUpdate = createParamForCreateSourceUpdateHandler(objectSchema, action, HANDLER.hdrSqs, srcPath)
63
+ createSourceParamHandlerUpdate && createSourceArray.push(createSourceParamHandlerUpdate)
64
+ }
54
65
  }
55
66
  }
56
67
  }
@@ -59,25 +70,22 @@ function data(_izContext, objectSchema, srcPath) {
59
70
  }
60
71
 
61
72
 
62
- function createParamForCreateSource(objectSchema, action, srcPath) {
73
+ function createParamForCreateSourceGetHandler(objectSchema, action, handler, srcPath) {
63
74
  let objectType = objectSchema.objectType;
64
- let actionHandler = action;
65
75
  let functionName = objectType + firstLetterUpperCase(action);
66
- let queueName = objectType + firstLetterUpperCase(action) + "HdrSqs"
76
+ let queueName = functionName + handler;
67
77
  return {
68
- templatePath: templatePath,
78
+ templatePath: getTemplatePath,
69
79
  templateData: {
70
80
  functionName: functionName,
71
81
  objectType: objectType,
72
- actionHandler: actionHandler,
73
82
  queueName,
74
- isCreateMainFunction: (objectSchema.overwriteGeneratedMainFunction?.length
75
- && objectSchema.overwriteGeneratedMainFunction.includes(action)
76
- ) ? true : false,
83
+ action,
84
+ isCreateMainFunction: checkOverWriteGenerateMainFunction(objectSchema, action)
77
85
  },
78
86
  setting: {
79
87
  savePath: path.join(srcPath, SOURCE_PATH.lambdaPerAction),
80
- saveFileName: `${upperCase(objectSchema.objectType)}${upperCase(action)}_HdrSqs`,
88
+ saveFileName: `${upperCase(objectType)}${upperCase(action)}_${upperCase(handler)}`,
81
89
  fileExtension: '.js',
82
90
  isAppend: false
83
91
  }
@@ -85,18 +93,26 @@ function createParamForCreateSource(objectSchema, action, srcPath) {
85
93
  }
86
94
 
87
95
 
88
- // [
89
- // {
90
- // 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',
91
- // templateData: { tableName: 'ObjectTypeSingle', attributes: [Array] },
92
- // setting: {
93
- // savePath: '/generatedCode/source/',
94
- // saveFileName: 'ObjectTypeGet',
95
- // fileExtension: '.js',
96
- // isAppend: false
97
- // }
98
- // }
99
- // ]
100
-
96
+ function createParamForCreateSourceUpdateHandler(objectSchema, action, handler, srcPath) {
97
+ let objectType = objectSchema.objectType;
98
+ let functionName = objectType + upperCase(action);
99
+ let queueName = functionName + handler
100
+ return {
101
+ templatePath: updateTemplatePath,
102
+ templateData: {
103
+ objectType,
104
+ functionName,
105
+ queueName,
106
+ action,
107
+ isCreateMainFunction: checkOverWriteGenerateMainFunction(objectSchema, action)
108
+ },
109
+ setting: {
110
+ savePath: path.join(srcPath, SOURCE_PATH.lambdaPerAction),
111
+ saveFileName: `${upperCase(objectType)}${upperCase(action)}_${upperCase(handler)}`,
112
+ fileExtension: '.js',
113
+ isAppend: false
114
+ }
115
+ }
116
+ }
101
117
 
102
118
  module.exports = data;
@@ -0,0 +1,124 @@
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 izara = require("@izara_project/izara-middleware");
20
+ const middleware = izara.middlewareHandler;
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
+ const Logger = require('@izara_project/izara-core-library-logger');
26
+ const recordHandlerSharedLib = require('@izara_project/izara-shared').recordHandlerSharedLib
27
+
28
+ <%_ if (isCreateMainFunction == true) { _%>
29
+ // user generate main function
30
+ <%_ } else { %>
31
+ const <%- functionName %> =require('./<%- firstLetterUpperCase(objectType) %><%- firstLetterUpperCase(action) %>_Main')
32
+ <%_ } _%>
33
+
34
+ //(<globalVarible>
35
+ //</globalVarible>)
36
+
37
+ const perRecordValidatorSchema = {
38
+ type: "object",
39
+ required: ['identifiers'],
40
+ properties: {
41
+ identifiers: {
42
+ type: 'object'
43
+ }
44
+ }
45
+ }
46
+
47
+ const messageAttributeValidatorSchema = {
48
+ type: "object",
49
+ require: ['msgAtrrParam1','msgAtrrParam2'],
50
+ properties: {
51
+ msgAtrrParam1: {
52
+ type: 'string'
53
+ },
54
+ msgAtrrParam2: {
55
+ type: 'string'
56
+ }
57
+ }
58
+ };
59
+
60
+ //validate event params in middleware before into main function
61
+ validateSchemaMiddleware(
62
+ middleware,
63
+ "<%- firstLetterUpperCase(objectType) %>",
64
+ "<%- action %>"
65
+ //(<validateSchemaSetting>
66
+ //</validateSchemaSetting>)
67
+ )
68
+ // if need to validate authorizer or additional params , add code to hook tag below
69
+
70
+ //(<afterValidateWith)
71
+ module.exports.main = middleware.wrap(async (event, context, callback) => {
72
+ try {
73
+
74
+ let recordPromises = [];
75
+
76
+ await Promise.all(event.Records.map(async record => {
77
+
78
+ let passOnProperties = [];
79
+ record._izContext.logger.debug('record ReceiveMesOutHdrSqs' , record);
80
+
81
+ // validate message (and MessageAttributes)
82
+ await recordHandlerSharedLib.validateRecord(
83
+ record,
84
+ "<%- functionName %>",
85
+ perRecordValidatorSchema,
86
+ // messageAttributeValidatorSchema
87
+ );
88
+
89
+ // add argument (to invoke lambda) to passOnProperties[]
90
+ passOnProperties.push(record.body.Message)
91
+ record._izContext.logger.debug("passOnProperties in handler", passOnProperties);
92
+
93
+ // call recordHandlerSharedLib.recordHandler with 3 parameters and return Promise (resolve)
94
+ let recordPromise = recordHandlerSharedLib.recordHandler(
95
+ record,
96
+ <%- functionName %>.<%- functionName %>Main,
97
+ "<%- queueName %>",
98
+ passOnProperties,
99
+ );
100
+ record._izContext.logger.debug('after recoedPromise in handler');
101
+ recordPromises.push(recordPromise);
102
+ }))
103
+
104
+ Logger.debug('before Promise.all(recordPromises) in handler');
105
+ try {
106
+ // --- main await all Promises
107
+ await Promise.all(recordPromises); // await all Promises
108
+
109
+ return event.Records // return all for local testing
110
+ } catch {
111
+ Logger.debug('Promise.all(recordPromises) in handler threw error (at least one record did not resolve)');
112
+ }
113
+ Logger.debug('after Promise,all(recordPromises) in handler');
114
+ } catch (err) {
115
+ Logger.error('unhandler Error , <%- functionName %>:', err);
116
+ throw (err);
117
+ }
118
+ })
119
+ <%_ function firstLetterUpperCase(text){
120
+ return text.charAt(0).toUpperCase() + text.slice(1)
121
+ } _%>
122
+ <%_ function firstLetterLowerCase(str) {
123
+ return str.charAt(0).toLowerCase() + str.slice(1)
124
+ } _%>
@@ -0,0 +1,133 @@
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 izara = require("@izara_project/izara-middleware");
20
+ const middleware = izara.middlewareHandler;
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
+ const Logger = require('@izara_project/izara-core-library-logger');
26
+ const recordHandlerSharedLib = require('@izara_project/izara-shared').recordHandlerSharedLib
27
+
28
+ <%_ if (isCreateMainFunction == true) { _%>
29
+ // user generate main function
30
+ <%_ } else { %>
31
+ const <%- functionName %> =require('./<%- firstLetterUpperCase(objectType) %><%- firstLetterUpperCase(action) %>_Main')
32
+ <%_ } _%>
33
+
34
+ //(<globalVarible>
35
+ //</globalVarible>)
36
+
37
+ const perRecordValidatorSchema = {
38
+ type: "object",
39
+ required: ["objInstance"],
40
+ properties: {
41
+ objInstance: {
42
+ type: "object",
43
+ required: ["identifiers", "fields"],
44
+ properties: {
45
+ identifiers: {
46
+ type: "object"
47
+ },
48
+ fields: {
49
+ type: "object"
50
+ }
51
+ }
52
+ }
53
+ }
54
+ }
55
+
56
+ const messageAttributeValidatorSchema = {
57
+ type: "object",
58
+ require: ['msgAtrrParam1','msgAtrrParam2'],
59
+ properties: {
60
+ msgAtrrParam1: {
61
+ type: 'string'
62
+ },
63
+ msgAtrrParam2: {
64
+ type: 'string'
65
+ }
66
+ }
67
+ };
68
+
69
+ //validate event params in middleware before into main function
70
+ validateSchemaMiddleware(
71
+ middleware,
72
+ "<%- firstLetterUpperCase(objectType) %>",
73
+ "<%- action %>"
74
+ //(<validateSchemaSetting>
75
+ //</validateSchemaSetting>)
76
+ )
77
+ // if need to validate authorizer or additional params , add code to hook tag below
78
+
79
+ //(<afterValidateWith)
80
+ module.exports.main = middleware.wrap(async (event, context, callback) => {
81
+ try {
82
+
83
+ let recordPromises = [];
84
+
85
+ await Promise.all(event.Records.map(async record => {
86
+
87
+ let passOnProperties = [];
88
+ record._izContext.logger.debug('record ReceiveMesOutHdrSqs' , record);
89
+
90
+ // validate message (and MessageAttributes)
91
+ await recordHandlerSharedLib.validateRecord(
92
+ record,
93
+ "<%- functionName %>",
94
+ perRecordValidatorSchema,
95
+ // messageAttributeValidatorSchema
96
+ );
97
+
98
+ // add argument (to invoke lambda) to passOnProperties[]
99
+ passOnProperties.push(record.body.Message)
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,
105
+ <%- functionName %>.<%- functionName %>Main,
106
+ "<%- queueName %>",
107
+ passOnProperties,
108
+ );
109
+ record._izContext.logger.debug('after recoedPromise in handler');
110
+ recordPromises.push(recordPromise);
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
+ } catch {
120
+ Logger.debug('Promise.all(recordPromises) in handler threw error (at least one record did not resolve)');
121
+ }
122
+ Logger.debug('after Promise,all(recordPromises) in handler');
123
+ } catch (err) {
124
+ Logger.error('unhandler Error , <%- functionName %>:', err);
125
+ throw (err);
126
+ }
127
+ })
128
+ <%_ function firstLetterUpperCase(text){
129
+ return text.charAt(0).toUpperCase() + text.slice(1)
130
+ } _%>
131
+ <%_ function firstLetterLowerCase(str) {
132
+ return str.charAt(0).toLowerCase() + str.slice(1)
133
+ } _%>