arkos 1.3.1-beta → 1.3.2-beta

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 (256) hide show
  1. package/dist/cjs/app.js +139 -1
  2. package/dist/cjs/exports/auth/index.js +6 -1
  3. package/dist/cjs/exports/controllers/index.js +11 -1
  4. package/dist/cjs/exports/error-handler/index.js +11 -1
  5. package/dist/cjs/exports/index.js +12 -1
  6. package/dist/cjs/exports/middlewares/index.js +7 -1
  7. package/dist/cjs/exports/prisma/index.js +13 -1
  8. package/dist/cjs/exports/services/index.js +48 -1
  9. package/dist/cjs/exports/utils/index.js +44 -1
  10. package/dist/cjs/exports/validation/index.js +11 -1
  11. package/dist/cjs/modules/auth/auth.controller.js +229 -1
  12. package/dist/cjs/modules/auth/auth.controller.js.map +1 -1
  13. package/dist/cjs/modules/auth/auth.router.js +82 -1
  14. package/dist/cjs/modules/auth/auth.router.js.map +1 -1
  15. package/dist/cjs/modules/auth/auth.service.js +226 -1
  16. package/dist/cjs/modules/auth/utils/auth-error-objects.js +10 -1
  17. package/dist/cjs/modules/auth/utils/helpers/auth.controller.helpers.js +83 -1
  18. package/dist/cjs/modules/auth/utils/services/auth-action.service.js +92 -1
  19. package/dist/cjs/modules/auth/utils/services/auth-action.service.js.map +1 -1
  20. package/dist/cjs/modules/base/base.controller.js +172 -1
  21. package/dist/cjs/modules/base/base.middlewares.js +92 -1
  22. package/dist/cjs/modules/base/base.router.js +22 -1
  23. package/dist/cjs/modules/base/base.service.js +507 -1
  24. package/dist/cjs/modules/base/base.service.js.map +1 -1
  25. package/dist/cjs/modules/base/types/base.service.types.js +3 -1
  26. package/dist/cjs/modules/base/types/base.service.types.js.map +1 -1
  27. package/dist/cjs/modules/base/utils/helpers/base.controller.helpers.js +80 -1
  28. package/dist/cjs/modules/base/utils/helpers/base.middlewares.helpers.js +50 -1
  29. package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js +104 -1
  30. package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js +208 -1
  31. package/dist/cjs/modules/base/utils/router-validator.js +16 -1
  32. package/dist/cjs/modules/base/utils/service-hooks-manager.js +19 -1
  33. package/dist/cjs/modules/email/email.service.js +104 -1
  34. package/dist/cjs/modules/error-handler/error-handler.controller.js +146 -4
  35. package/dist/cjs/modules/error-handler/utils/app-error.js +17 -1
  36. package/dist/cjs/modules/error-handler/utils/catch-async.js +21 -1
  37. package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js +205 -3
  38. package/dist/cjs/modules/file-upload/file-upload.controller.js +233 -1
  39. package/dist/cjs/modules/file-upload/file-upload.router.js +60 -1
  40. package/dist/cjs/modules/file-upload/file-upload.service.js +322 -1
  41. package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js +97 -1
  42. package/dist/cjs/modules/swagger/swagger.router.js +38 -1
  43. package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +338 -1
  44. package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js +64 -1
  45. package/dist/cjs/modules/swagger/utils/helpers/get-system-json-schema-paths.js +37 -1
  46. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +48 -1
  47. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +32 -1
  48. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js +49 -1
  49. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js +34 -1
  50. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js +471 -1
  51. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.js +572 -1
  52. package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js +260 -1
  53. package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js +112 -1
  54. package/dist/cjs/paths.js +9 -1
  55. package/dist/cjs/server.js +94 -5
  56. package/dist/cjs/types/arkos-config.js +3 -1
  57. package/dist/cjs/types/arkos-config.js.map +1 -1
  58. package/dist/cjs/types/auth.js +3 -1
  59. package/dist/cjs/types/index.js +11 -1
  60. package/dist/cjs/types/router-config.js +3 -1
  61. package/dist/cjs/utils/arkos-env.js +9 -1
  62. package/dist/cjs/utils/cli/build.js +214 -5
  63. package/dist/cjs/utils/cli/dev.js +154 -3
  64. package/dist/cjs/utils/cli/generate.js +109 -1
  65. package/dist/cjs/utils/cli/index.js +104 -1
  66. package/dist/cjs/utils/cli/index.js.map +1 -1
  67. package/dist/cjs/utils/cli/prisma-generate.js +120 -0
  68. package/dist/cjs/utils/cli/prisma-generate.js.map +1 -0
  69. package/dist/cjs/utils/cli/start.js +103 -1
  70. package/dist/cjs/utils/cli/utils/cli.helpers.js +24 -1
  71. package/dist/cjs/utils/cli/utils/smart-fs-watcher.js +73 -1
  72. package/dist/cjs/utils/cli/utils/template-generator/templates/auth-configs-template.js +36 -0
  73. package/dist/cjs/utils/cli/utils/template-generator/templates/auth-configs-template.js.map +1 -0
  74. package/dist/cjs/utils/cli/utils/template-generator/templates/controller-template.js +21 -0
  75. package/dist/cjs/utils/cli/utils/template-generator/templates/controller-template.js.map +1 -0
  76. package/dist/cjs/utils/cli/utils/template-generator/templates/hooks-template.js +201 -0
  77. package/dist/cjs/utils/cli/utils/template-generator/templates/hooks-template.js.map +1 -0
  78. package/dist/cjs/utils/cli/utils/template-generator/templates/middlewares-template.js +288 -0
  79. package/dist/cjs/utils/cli/utils/template-generator/templates/{generate-middlewares.js.map → middlewares-template.js.map} +1 -1
  80. package/dist/cjs/utils/cli/utils/template-generator/templates/query-options-template.js +64 -0
  81. package/dist/cjs/utils/cli/utils/template-generator/templates/query-options-template.js.map +1 -0
  82. package/dist/cjs/utils/cli/utils/template-generator/templates/router-template.js +45 -0
  83. package/dist/cjs/utils/cli/utils/template-generator/templates/router-template.js.map +1 -0
  84. package/dist/cjs/utils/cli/utils/template-generator/templates/service-template.js +29 -0
  85. package/dist/cjs/utils/cli/utils/template-generator/templates/service-template.js.map +1 -0
  86. package/dist/cjs/utils/cli/utils/template-generators.js +34 -2
  87. package/dist/cjs/utils/cli/utils/template-generators.js.map +1 -1
  88. package/dist/cjs/utils/cli/utils/watermark-stamper.js +17 -3
  89. package/dist/cjs/utils/dotenv.helpers.js +43 -1
  90. package/dist/cjs/utils/dynamic-loader.js +270 -9
  91. package/dist/cjs/utils/features/api.features.js +169 -1
  92. package/dist/cjs/utils/features/change-case.features.js +67 -1
  93. package/dist/cjs/utils/features/port-and-host-allocator.js +105 -1
  94. package/dist/cjs/utils/helpers/api.features.helpers.js +112 -1
  95. package/dist/cjs/utils/helpers/change-case.helpers.js +177 -1
  96. package/dist/cjs/utils/helpers/deepmerge.helper.js +115 -1
  97. package/dist/cjs/utils/helpers/dynamic-loader.helpers.js +76 -1
  98. package/dist/cjs/utils/helpers/fs.helpers.js +57 -1
  99. package/dist/cjs/utils/helpers/global.helpers.js +94 -1
  100. package/dist/cjs/utils/helpers/prisma.helpers.js +40 -1
  101. package/dist/cjs/utils/helpers/query-parser.helpers.js +45 -1
  102. package/dist/cjs/utils/helpers/routers.helpers.js +37 -1
  103. package/dist/cjs/utils/helpers/text.helpers.js +28 -1
  104. package/dist/cjs/utils/prisma/prisma-json-schema-generator.js +455 -1
  105. package/dist/cjs/utils/prisma/prisma-schema-parser.js +216 -4
  106. package/dist/cjs/utils/prisma/types.js +3 -1
  107. package/dist/cjs/utils/sheu.js +120 -1
  108. package/dist/cjs/utils/validate-dto.js +17 -1
  109. package/dist/cjs/utils/validate-schema.js +15 -1
  110. package/dist/esm/app.js +132 -1
  111. package/dist/esm/exports/auth/index.js +2 -1
  112. package/dist/esm/exports/controllers/index.js +4 -1
  113. package/dist/esm/exports/error-handler/index.js +4 -1
  114. package/dist/esm/exports/index.js +8 -1
  115. package/dist/esm/exports/middlewares/index.js +2 -1
  116. package/dist/esm/exports/prisma/index.js +6 -1
  117. package/dist/esm/exports/services/index.js +9 -1
  118. package/dist/esm/exports/utils/index.js +4 -1
  119. package/dist/esm/exports/validation/index.js +4 -1
  120. package/dist/esm/modules/auth/auth.controller.js +222 -1
  121. package/dist/esm/modules/auth/auth.controller.js.map +1 -1
  122. package/dist/esm/modules/auth/auth.router.js +76 -1
  123. package/dist/esm/modules/auth/auth.router.js.map +1 -1
  124. package/dist/esm/modules/auth/auth.service.js +219 -1
  125. package/dist/esm/modules/auth/utils/auth-error-objects.js +4 -1
  126. package/dist/esm/modules/auth/utils/helpers/auth.controller.helpers.js +73 -1
  127. package/dist/esm/modules/auth/utils/services/auth-action.service.js +90 -1
  128. package/dist/esm/modules/auth/utils/services/auth-action.service.js.map +1 -1
  129. package/dist/esm/modules/base/base.controller.js +165 -1
  130. package/dist/esm/modules/base/base.middlewares.js +81 -1
  131. package/dist/esm/modules/base/base.router.js +15 -1
  132. package/dist/esm/modules/base/base.service.js +500 -1
  133. package/dist/esm/modules/base/base.service.js.map +1 -1
  134. package/dist/esm/modules/base/types/base.service.types.js +2 -1
  135. package/dist/esm/modules/base/types/base.service.types.js.map +1 -1
  136. package/dist/esm/modules/base/utils/helpers/base.controller.helpers.js +76 -1
  137. package/dist/esm/modules/base/utils/helpers/base.middlewares.helpers.js +44 -1
  138. package/dist/esm/modules/base/utils/helpers/base.router.helpers.js +96 -1
  139. package/dist/esm/modules/base/utils/helpers/base.service.helpers.js +198 -1
  140. package/dist/esm/modules/base/utils/router-validator.js +14 -1
  141. package/dist/esm/modules/base/utils/service-hooks-manager.js +17 -1
  142. package/dist/esm/modules/email/email.service.js +97 -1
  143. package/dist/esm/modules/error-handler/error-handler.controller.js +107 -4
  144. package/dist/esm/modules/error-handler/utils/app-error.js +15 -1
  145. package/dist/esm/modules/error-handler/utils/catch-async.js +19 -1
  146. package/dist/esm/modules/error-handler/utils/error-handler.helpers.js +163 -3
  147. package/dist/esm/modules/file-upload/file-upload.controller.js +228 -1
  148. package/dist/esm/modules/file-upload/file-upload.router.js +54 -1
  149. package/dist/esm/modules/file-upload/file-upload.service.js +314 -1
  150. package/dist/esm/modules/file-upload/utils/helpers/file-upload.helpers.js +87 -1
  151. package/dist/esm/modules/swagger/swagger.router.js +32 -1
  152. package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +333 -1
  153. package/dist/esm/modules/swagger/utils/helpers/get-swagger-default-configs.js +58 -1
  154. package/dist/esm/modules/swagger/utils/helpers/get-system-json-schema-paths.js +34 -1
  155. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +42 -1
  156. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +26 -1
  157. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js +46 -1
  158. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js +28 -1
  159. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js +465 -1
  160. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.js +566 -1
  161. package/dist/esm/modules/swagger/utils/helpers/missing-json-schemas-generator.js +255 -1
  162. package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js +101 -1
  163. package/dist/esm/paths.js +3 -1
  164. package/dist/esm/server.js +85 -5
  165. package/dist/esm/types/arkos-config.js +2 -1
  166. package/dist/esm/types/arkos-config.js.map +1 -1
  167. package/dist/esm/types/auth.js +2 -1
  168. package/dist/esm/types/index.js +8 -1
  169. package/dist/esm/types/router-config.js +2 -1
  170. package/dist/esm/utils/arkos-env.js +7 -1
  171. package/dist/esm/utils/cli/build.js +208 -5
  172. package/dist/esm/utils/cli/dev.js +147 -3
  173. package/dist/esm/utils/cli/generate.js +103 -1
  174. package/dist/esm/utils/cli/index.js +94 -1
  175. package/dist/esm/utils/cli/index.js.map +1 -1
  176. package/dist/esm/utils/cli/prisma-generate.js +114 -0
  177. package/dist/esm/utils/cli/prisma-generate.js.map +1 -0
  178. package/dist/esm/utils/cli/start.js +96 -1
  179. package/dist/esm/utils/cli/utils/cli.helpers.js +16 -1
  180. package/dist/esm/utils/cli/utils/smart-fs-watcher.js +68 -1
  181. package/dist/esm/utils/cli/utils/template-generator/templates/auth-configs-template.js +33 -0
  182. package/dist/esm/utils/cli/utils/template-generator/templates/auth-configs-template.js.map +1 -0
  183. package/dist/esm/utils/cli/utils/template-generator/templates/controller-template.js +18 -0
  184. package/dist/esm/utils/cli/utils/template-generator/templates/controller-template.js.map +1 -0
  185. package/dist/esm/utils/cli/utils/template-generator/templates/hooks-template.js +198 -0
  186. package/dist/esm/utils/cli/utils/template-generator/templates/hooks-template.js.map +1 -0
  187. package/dist/esm/utils/cli/utils/template-generator/templates/middlewares-template.js +285 -0
  188. package/dist/esm/utils/cli/utils/template-generator/templates/{generate-middlewares.js.map → middlewares-template.js.map} +1 -1
  189. package/dist/esm/utils/cli/utils/template-generator/templates/query-options-template.js +61 -0
  190. package/dist/esm/utils/cli/utils/template-generator/templates/query-options-template.js.map +1 -0
  191. package/dist/esm/utils/cli/utils/template-generator/templates/router-template.js +39 -0
  192. package/dist/esm/utils/cli/utils/template-generator/templates/router-template.js.map +1 -0
  193. package/dist/esm/utils/cli/utils/template-generator/templates/service-template.js +26 -0
  194. package/dist/esm/utils/cli/utils/template-generator/templates/service-template.js.map +1 -0
  195. package/dist/esm/utils/cli/utils/template-generators.js +28 -2
  196. package/dist/esm/utils/cli/utils/template-generators.js.map +1 -1
  197. package/dist/esm/utils/cli/utils/watermark-stamper.js +15 -3
  198. package/dist/esm/utils/dotenv.helpers.js +37 -1
  199. package/dist/esm/utils/dynamic-loader.js +254 -9
  200. package/dist/esm/utils/features/api.features.js +162 -1
  201. package/dist/esm/utils/features/change-case.features.js +31 -1
  202. package/dist/esm/utils/features/port-and-host-allocator.js +67 -1
  203. package/dist/esm/utils/helpers/api.features.helpers.js +106 -1
  204. package/dist/esm/utils/helpers/change-case.helpers.js +161 -1
  205. package/dist/esm/utils/helpers/deepmerge.helper.js +113 -1
  206. package/dist/esm/utils/helpers/dynamic-loader.helpers.js +69 -1
  207. package/dist/esm/utils/helpers/fs.helpers.js +48 -1
  208. package/dist/esm/utils/helpers/global.helpers.js +51 -1
  209. package/dist/esm/utils/helpers/prisma.helpers.js +32 -1
  210. package/dist/esm/utils/helpers/query-parser.helpers.js +40 -1
  211. package/dist/esm/utils/helpers/routers.helpers.js +29 -1
  212. package/dist/esm/utils/helpers/text.helpers.js +22 -1
  213. package/dist/esm/utils/prisma/prisma-json-schema-generator.js +448 -1
  214. package/dist/esm/utils/prisma/prisma-schema-parser.js +209 -4
  215. package/dist/esm/utils/prisma/types.js +2 -1
  216. package/dist/esm/utils/sheu.js +118 -1
  217. package/dist/esm/utils/validate-dto.js +11 -1
  218. package/dist/esm/utils/validate-schema.js +9 -1
  219. package/dist/types/modules/auth/utils/services/auth-action.service.d.ts +1 -1
  220. package/dist/types/modules/base/types/base.service.types.d.ts +12 -9
  221. package/dist/types/types/arkos-config.d.ts +3 -2
  222. package/dist/types/utils/cli/prisma-generate.d.ts +1 -0
  223. package/package.json +2 -2
  224. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js +0 -21
  225. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js.map +0 -1
  226. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js +0 -12
  227. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +0 -1
  228. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-hooks-template.js +0 -144
  229. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-hooks-template.js.map +0 -1
  230. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-middlewares.js +0 -256
  231. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js +0 -36
  232. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js.map +0 -1
  233. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-router-template.js +0 -18
  234. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-router-template.js.map +0 -1
  235. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-service-template.js +0 -9
  236. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-service-template.js.map +0 -1
  237. package/dist/esm/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js +0 -21
  238. package/dist/esm/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js.map +0 -1
  239. package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js +0 -12
  240. package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +0 -1
  241. package/dist/esm/utils/cli/utils/template-generator/templates/generate-hooks-template.js +0 -144
  242. package/dist/esm/utils/cli/utils/template-generator/templates/generate-hooks-template.js.map +0 -1
  243. package/dist/esm/utils/cli/utils/template-generator/templates/generate-middlewares.js +0 -256
  244. package/dist/esm/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js +0 -36
  245. package/dist/esm/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js.map +0 -1
  246. package/dist/esm/utils/cli/utils/template-generator/templates/generate-router-template.js +0 -18
  247. package/dist/esm/utils/cli/utils/template-generator/templates/generate-router-template.js.map +0 -1
  248. package/dist/esm/utils/cli/utils/template-generator/templates/generate-service-template.js +0 -9
  249. package/dist/esm/utils/cli/utils/template-generator/templates/generate-service-template.js.map +0 -1
  250. /package/dist/types/utils/cli/utils/template-generator/templates/{generate-auth-configs-template.d.ts → auth-configs-template.d.ts} +0 -0
  251. /package/dist/types/utils/cli/utils/template-generator/templates/{generate-controller-template.d.ts → controller-template.d.ts} +0 -0
  252. /package/dist/types/utils/cli/utils/template-generator/templates/{generate-hooks-template.d.ts → hooks-template.d.ts} +0 -0
  253. /package/dist/types/utils/cli/utils/template-generator/templates/{generate-middlewares.d.ts → middlewares-template.d.ts} +0 -0
  254. /package/dist/types/utils/cli/utils/template-generator/templates/{generate-prisma-query-options.d.ts → query-options-template.d.ts} +0 -0
  255. /package/dist/types/utils/cli/utils/template-generator/templates/{generate-router-template.d.ts → router-template.d.ts} +0 -0
  256. /package/dist/types/utils/cli/utils/template-generator/templates/{generate-service-template.d.ts → service-template.d.ts} +0 -0
@@ -1 +1,507 @@
1
- "use strict";var __importDefault=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.BaseService=void 0;const change_case_helpers_1=require("../../utils/helpers/change-case.helpers"),dynamic_loader_1=require("../../utils/dynamic-loader"),deepmerge_helper_1=__importDefault(require("../../utils/helpers/deepmerge.helper")),base_service_helpers_1=require("./utils/helpers/base.service.helpers"),prisma_helpers_1=require("../../utils/helpers/prisma.helpers"),auth_service_1=__importDefault(require("../auth/auth.service")),service_hooks_manager_1=__importDefault(require("./utils/service-hooks-manager")),prisma_schema_parser_1=__importDefault(require("../../utils/prisma/prisma-schema-parser"));class BaseService{constructor(a){this.modelName=(0,change_case_helpers_1.camelCase)(a);const r=prisma_schema_parser_1.default.getModelRelations(a);this.relationFields={singular:r?.filter(e=>e.isRelation&&!e.isArray)||[],list:r?.filter(e=>e.isRelation&&e.isArray)||[]}}async createOne(a,r,e){const s=(0,dynamic_loader_1.getModuleComponents)(this.modelName)?.hooks;try{s?.beforeCreateOne&&!e?.skip?.includes("before")&&await service_hooks_manager_1.default.handleHook(s.beforeCreateOne,{data:a,queryOptions:r,context:e}),(0,change_case_helpers_1.kebabCase)(this.modelName)==="user"&&a.password&&(auth_service_1.default.isPasswordHashed(a.password)||(a.password=await auth_service_1.default.hashPassword(a.password)));const o=(0,prisma_helpers_1.getPrismaInstance)(),i=(0,base_service_helpers_1.handleRelationFieldsInBody)(a,{...this.relationFields},["delete","disconnect","update"]),d=await o[this.modelName].create((0,deepmerge_helper_1.default)({data:i},r||{}));return s?.afterCreateOne&&!e?.skip?.includes("after")&&await service_hooks_manager_1.default.handleHook(s.afterCreateOne,{result:d,data:a,queryOptions:r,context:e}),d}catch(o){if(s?.onCreateOneError&&!e?.skip?.includes("error")&&await service_hooks_manager_1.default.handleHook(s.onCreateOneError,{error:o,data:a,queryOptions:r,context:e}),e?.throwOnError!==!1)throw o;return}}async createMany(a,r,e){const s=(0,dynamic_loader_1.getModuleComponents)(this.modelName)?.hooks;try{s?.beforeCreateMany&&!e?.skip?.includes("before")&&await service_hooks_manager_1.default.handleHook(s.beforeCreateMany,{data:a,queryOptions:r,context:e});const o=(0,prisma_helpers_1.getPrismaInstance)(),i=[];if(Array.isArray(a))for(let n=0;n<a.length;n++){const l=a[n];"password"in l&&this.modelName==="user"&&(auth_service_1.default.isPasswordHashed(l.password)||(a[n].password=await auth_service_1.default.hashPassword(l?.password))),i[n]=(0,base_service_helpers_1.handleRelationFieldsInBody)(a[n],{...this.relationFields},["delete","disconnect","update"])}const d=await o[this.modelName].createMany((0,deepmerge_helper_1.default)({data:i},r||{}));return s?.afterCreateMany&&!e?.skip?.includes("after")&&await service_hooks_manager_1.default.handleHook(s.afterCreateMany,{result:d,data:a,queryOptions:r,context:e}),d}catch(o){if(s?.onCreateManyError&&!e?.skip?.includes("error")&&await service_hooks_manager_1.default.handleHook(s.onCreateManyError,{error:o,data:a,queryOptions:r,context:e}),e?.throwOnError!==!1)throw o;return}}async count(a,r){const e=(0,dynamic_loader_1.getModuleComponents)(this.modelName)?.hooks;try{e?.beforeCount&&!r?.skip?.includes("before")&&await service_hooks_manager_1.default.handleHook(e.beforeCount,{filters:a,context:r});const o=await(0,prisma_helpers_1.getPrismaInstance)()[this.modelName].count({where:a});return e?.afterCount&&!r?.skip?.includes("after")&&await service_hooks_manager_1.default.handleHook(e.afterCount,{result:o,filters:a,context:r}),o}catch(s){if(e?.onCountError&&!r?.skip?.includes("error")&&await service_hooks_manager_1.default.handleHook(e.onCountError,{error:s,filters:a,context:r}),r?.throwOnError!==!1)throw s;return 0}}async findMany(a,r,e){const s=(0,dynamic_loader_1.getModuleComponents)(this.modelName)?.hooks;try{s?.beforeFindMany&&!e?.skip?.includes("before")&&await service_hooks_manager_1.default.handleHook(s.beforeFindMany,{filters:a,queryOptions:r,context:e});const i=await(0,prisma_helpers_1.getPrismaInstance)()[this.modelName].findMany((0,deepmerge_helper_1.default)({where:a},r||{}));return s?.afterFindMany&&!e?.skip?.includes("after")&&await service_hooks_manager_1.default.handleHook(s.afterFindMany,{result:i,filters:a,queryOptions:r,context:e}),i}catch(o){if(s?.onFindManyError&&!e?.skip?.includes("error")&&await service_hooks_manager_1.default.handleHook(s.onFindManyError,{error:o,filters:a,queryOptions:r,context:e}),e?.throwOnError!==!1)throw o;return[]}}async findById(a,r,e){const s=(0,dynamic_loader_1.getModuleComponents)(this.modelName)?.hooks;try{s?.beforeFindById&&!e?.skip?.includes("before")&&await service_hooks_manager_1.default.handleHook(s.beforeFindById,{id:a,queryOptions:r,context:e});const i=await(0,prisma_helpers_1.getPrismaInstance)()[this.modelName].findUnique((0,deepmerge_helper_1.default)({where:{id:a}},r||{}));return s?.afterFindById&&!e?.skip?.includes("after")&&await service_hooks_manager_1.default.handleHook(s.afterFindById,{result:i,id:a,queryOptions:r,context:e}),i}catch(o){if(s?.onFindByIdError&&!e?.skip?.includes("error")&&await service_hooks_manager_1.default.handleHook(s.onFindByIdError,{error:o,id:a,queryOptions:r,context:e}),e?.throwOnError!==!1)throw o;return}}async findOne(a,r,e){const s=(0,dynamic_loader_1.getModuleComponents)(this.modelName)?.hooks;try{s?.beforeFindOne&&!e?.skip?.includes("before")&&await service_hooks_manager_1.default.handleHook(s.beforeFindOne,{filters:a,queryOptions:r,context:e});const o=(0,prisma_helpers_1.getPrismaInstance)();let i;return Object.keys(a).length===1&&"id"in a&&a.id!=="me"?i=await o[this.modelName].findUnique((0,deepmerge_helper_1.default)({where:a},r||{})):i=await o[this.modelName].findFirst((0,deepmerge_helper_1.default)({where:a},r||{})),s?.afterFindOne&&!e?.skip?.includes("after")&&await service_hooks_manager_1.default.handleHook(s.afterFindOne,{result:i,filters:a,queryOptions:r,context:e}),i}catch(o){if(s?.onFindOneError&&!e?.skip?.includes("error")&&await service_hooks_manager_1.default.handleHook(s.onFindOneError,{error:o,filters:a,queryOptions:r,context:e}),e?.throwOnError!==!1)throw o;return}}async updateOne(a,r,e,s){const o=(0,dynamic_loader_1.getModuleComponents)(this.modelName)?.hooks;try{o?.beforeUpdateOne&&!s?.skip?.includes("before")&&await service_hooks_manager_1.default.handleHook(o.beforeUpdateOne,{filters:a,data:r,queryOptions:e,context:s}),(0,change_case_helpers_1.kebabCase)(this.modelName)==="user"&&r?.password&&(auth_service_1.default.isPasswordHashed(r.password)||(r.password=await auth_service_1.default.hashPassword(r?.password)));const i=(0,prisma_helpers_1.getPrismaInstance)(),d=(0,base_service_helpers_1.handleRelationFieldsInBody)(r,{...this.relationFields}),n=await i[this.modelName].update((0,deepmerge_helper_1.default)({where:a,data:d},e||{}));return o?.afterUpdateOne&&!s?.skip?.includes("after")&&await service_hooks_manager_1.default.handleHook(o.afterUpdateOne,{result:n,filters:a,data:r,queryOptions:e,context:s}),n}catch(i){if(o?.onUpdateOneError&&!s?.skip?.includes("error")&&await service_hooks_manager_1.default.handleHook(o.onUpdateOneError,{error:i,filters:a,data:r,queryOptions:e,context:s}),s?.throwOnError!==!1)throw i;return}}async updateMany(a,r,e,s){const o=(0,dynamic_loader_1.getModuleComponents)(this.modelName)?.hooks;try{o?.beforeUpdateMany&&!s?.skip?.includes("before")&&await service_hooks_manager_1.default.handleHook(o.beforeUpdateMany,{filters:a,data:r,queryOptions:e,context:s});const i=(0,prisma_helpers_1.getPrismaInstance)();this.modelName==="user"&&"password"in r&&r?.password&&(auth_service_1.default.isPasswordHashed(r.password)||(r.password=await auth_service_1.default.hashPassword(r?.password)));const d=(0,deepmerge_helper_1.default)({data:r},e||{}),n=await i[this.modelName].updateMany((0,deepmerge_helper_1.default)({where:a},d));return o?.afterUpdateMany&&!s?.skip?.includes("after")&&await service_hooks_manager_1.default.handleHook(o.afterUpdateMany,{result:n,filters:a,data:r,queryOptions:e,context:s}),n}catch(i){if(o?.onUpdateManyError&&!s?.skip?.includes("error")&&await service_hooks_manager_1.default.handleHook(o.onUpdateManyError,{error:i,filters:a,data:r,queryOptions:e,context:s}),s?.throwOnError!==!1)throw i;return}}async deleteOne(a,r){const e=(0,dynamic_loader_1.getModuleComponents)(this.modelName)?.hooks;try{e?.beforeDeleteOne&&!r?.skip?.includes("before")&&await service_hooks_manager_1.default.handleHook(e.beforeDeleteOne,{filters:a,context:r});const o=await(0,prisma_helpers_1.getPrismaInstance)()[this.modelName].delete({where:a});return e?.afterDeleteOne&&!r?.skip?.includes("after")&&await service_hooks_manager_1.default.handleHook(e.afterDeleteOne,{result:o,filters:a,context:r}),o}catch(s){if(e?.onDeleteOneError&&!r?.skip?.includes("error")&&await service_hooks_manager_1.default.handleHook(e.onDeleteOneError,{error:s,filters:a,context:r}),r?.throwOnError!==!1)throw s;return}}async deleteMany(a,r){const e=(0,dynamic_loader_1.getModuleComponents)(this.modelName)?.hooks;try{e?.beforeDeleteMany&&!r?.skip?.includes("before")&&await service_hooks_manager_1.default.handleHook(e.beforeDeleteMany,{filters:a,context:r});const o=await(0,prisma_helpers_1.getPrismaInstance)()[this.modelName].deleteMany({where:a});return e?.afterDeleteMany&&!r?.skip?.includes("after")&&await service_hooks_manager_1.default.handleHook(e.afterDeleteMany,{result:o,filters:a,context:r}),o}catch(s){if(e?.onDeleteManyError&&!r?.skip?.includes("error")&&await service_hooks_manager_1.default.handleHook(e.onDeleteManyError,{error:s,filters:a,context:r}),r?.throwOnError!==!1)throw s;return}}}exports.BaseService=BaseService;
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.BaseService = void 0;
7
+ const change_case_helpers_1 = require("../../utils/helpers/change-case.helpers");
8
+ const dynamic_loader_1 = require("../../utils/dynamic-loader");
9
+ const deepmerge_helper_1 = __importDefault(require("../../utils/helpers/deepmerge.helper"));
10
+ const base_service_helpers_1 = require("./utils/helpers/base.service.helpers");
11
+ const prisma_helpers_1 = require("../../utils/helpers/prisma.helpers");
12
+ const auth_service_1 = __importDefault(require("../auth/auth.service"));
13
+ const service_hooks_manager_1 = __importDefault(require("./utils/service-hooks-manager"));
14
+ const prisma_schema_parser_1 = __importDefault(require("../../utils/prisma/prisma-schema-parser"));
15
+ class BaseService {
16
+ constructor(modelName) {
17
+ this.modelName = (0, change_case_helpers_1.camelCase)(modelName);
18
+ const modelFields = prisma_schema_parser_1.default.getModelRelations(modelName);
19
+ this.relationFields = {
20
+ singular: modelFields?.filter((field) => field.isRelation && !field.isArray) ||
21
+ [],
22
+ list: modelFields?.filter((field) => field.isRelation && field.isArray) || [],
23
+ };
24
+ }
25
+ async createOne(data, queryOptions, context) {
26
+ const serviceHooks = (0, dynamic_loader_1.getModuleComponents)(this.modelName)?.hooks;
27
+ try {
28
+ if (serviceHooks?.beforeCreateOne &&
29
+ context?.skip !== "before" &&
30
+ context?.skip !== "all" &&
31
+ !context?.skip?.includes("before"))
32
+ await service_hooks_manager_1.default.handleHook(serviceHooks.beforeCreateOne, {
33
+ data,
34
+ queryOptions,
35
+ context,
36
+ });
37
+ if ((0, change_case_helpers_1.kebabCase)(this.modelName) === "user" && data.password)
38
+ if (!auth_service_1.default.isPasswordHashed(data.password))
39
+ data.password = await auth_service_1.default.hashPassword(data.password);
40
+ const prisma = (0, prisma_helpers_1.getPrismaInstance)();
41
+ const dataWithRelationFieldsHandled = (0, base_service_helpers_1.handleRelationFieldsInBody)(data, {
42
+ ...this.relationFields,
43
+ }, ["delete", "disconnect", "update"]);
44
+ const result = await prisma[this.modelName].create((0, deepmerge_helper_1.default)({
45
+ data: dataWithRelationFieldsHandled,
46
+ }, queryOptions || {}));
47
+ if (serviceHooks?.afterCreateOne &&
48
+ context?.skip !== "after" &&
49
+ context?.skip !== "all" &&
50
+ !context?.skip?.includes("after"))
51
+ await service_hooks_manager_1.default.handleHook(serviceHooks.afterCreateOne, {
52
+ result,
53
+ data,
54
+ queryOptions,
55
+ context,
56
+ });
57
+ return result;
58
+ }
59
+ catch (err) {
60
+ if (serviceHooks?.onCreateOneError &&
61
+ context?.skip !== "error" &&
62
+ context?.skip !== "all" &&
63
+ !context?.skip?.includes("error"))
64
+ await service_hooks_manager_1.default.handleHook(serviceHooks.onCreateOneError, {
65
+ error: err,
66
+ data,
67
+ queryOptions,
68
+ context,
69
+ });
70
+ if (context?.throwOnError !== false)
71
+ throw err;
72
+ return undefined;
73
+ }
74
+ }
75
+ async createMany(data, queryOptions, context) {
76
+ const serviceHooks = (0, dynamic_loader_1.getModuleComponents)(this.modelName)?.hooks;
77
+ try {
78
+ if (serviceHooks?.beforeCreateMany &&
79
+ context?.skip !== "before" &&
80
+ context?.skip !== "all" &&
81
+ !context?.skip?.includes("before")) {
82
+ await service_hooks_manager_1.default.handleHook(serviceHooks.beforeCreateMany, {
83
+ data,
84
+ queryOptions,
85
+ context,
86
+ });
87
+ }
88
+ const prisma = (0, prisma_helpers_1.getPrismaInstance)();
89
+ const dataWithRelationFieldsHandled = [];
90
+ if (Array.isArray(data)) {
91
+ for (let i = 0; i < data.length; i++) {
92
+ const curr = data[i];
93
+ if ("password" in curr && this.modelName === "user") {
94
+ if (!auth_service_1.default.isPasswordHashed(curr.password)) {
95
+ data[i].password = await auth_service_1.default.hashPassword(curr?.password);
96
+ }
97
+ }
98
+ dataWithRelationFieldsHandled[i] = (0, base_service_helpers_1.handleRelationFieldsInBody)(data[i], { ...this.relationFields }, ["delete", "disconnect", "update"]);
99
+ }
100
+ }
101
+ const result = await prisma[this.modelName].createMany((0, deepmerge_helper_1.default)({ data: dataWithRelationFieldsHandled }, queryOptions || {}));
102
+ if (serviceHooks?.afterCreateMany &&
103
+ context?.skip !== "after" &&
104
+ context?.skip !== "all" &&
105
+ !context?.skip?.includes("after"))
106
+ await service_hooks_manager_1.default.handleHook(serviceHooks.afterCreateMany, {
107
+ result,
108
+ data,
109
+ queryOptions,
110
+ context,
111
+ });
112
+ return result;
113
+ }
114
+ catch (err) {
115
+ if (serviceHooks?.onCreateManyError &&
116
+ context?.skip !== "error" &&
117
+ context?.skip !== "all" &&
118
+ !context?.skip?.includes("error"))
119
+ await service_hooks_manager_1.default.handleHook(serviceHooks.onCreateManyError, {
120
+ error: err,
121
+ data,
122
+ queryOptions,
123
+ context,
124
+ });
125
+ if (context?.throwOnError !== false)
126
+ throw err;
127
+ return undefined;
128
+ }
129
+ }
130
+ async count(filters, context) {
131
+ const serviceHooks = (0, dynamic_loader_1.getModuleComponents)(this.modelName)?.hooks;
132
+ try {
133
+ if (serviceHooks?.beforeCount &&
134
+ context?.skip !== "before" &&
135
+ context?.skip !== "all" &&
136
+ !context?.skip?.includes("before")) {
137
+ await service_hooks_manager_1.default.handleHook(serviceHooks.beforeCount, {
138
+ filters,
139
+ context,
140
+ });
141
+ }
142
+ const prisma = (0, prisma_helpers_1.getPrismaInstance)();
143
+ const result = await prisma[this.modelName].count({
144
+ where: filters,
145
+ });
146
+ if (serviceHooks?.afterCount &&
147
+ context?.skip !== "after" &&
148
+ context?.skip !== "all" &&
149
+ !context?.skip?.includes("after")) {
150
+ await service_hooks_manager_1.default.handleHook(serviceHooks.afterCount, {
151
+ result,
152
+ filters,
153
+ context,
154
+ });
155
+ }
156
+ return result;
157
+ }
158
+ catch (err) {
159
+ if (serviceHooks?.onCountError &&
160
+ context?.skip !== "error" &&
161
+ context?.skip !== "all" &&
162
+ !context?.skip?.includes("error"))
163
+ await service_hooks_manager_1.default.handleHook(serviceHooks.onCountError, {
164
+ error: err,
165
+ filters,
166
+ context,
167
+ });
168
+ if (context?.throwOnError !== false)
169
+ throw err;
170
+ return 0;
171
+ }
172
+ }
173
+ async findMany(filters, queryOptions, context) {
174
+ const serviceHooks = (0, dynamic_loader_1.getModuleComponents)(this.modelName)?.hooks;
175
+ try {
176
+ if (serviceHooks?.beforeFindMany &&
177
+ context?.skip !== "before" &&
178
+ context?.skip !== "all" &&
179
+ !context?.skip?.includes("before")) {
180
+ await service_hooks_manager_1.default.handleHook(serviceHooks.beforeFindMany, {
181
+ filters,
182
+ queryOptions,
183
+ context,
184
+ });
185
+ }
186
+ const prisma = (0, prisma_helpers_1.getPrismaInstance)();
187
+ const result = await prisma[this.modelName].findMany((0, deepmerge_helper_1.default)({ where: filters }, queryOptions || {}));
188
+ if (serviceHooks?.afterFindMany &&
189
+ context?.skip !== "after" &&
190
+ context?.skip !== "all" &&
191
+ !context?.skip?.includes("after"))
192
+ await service_hooks_manager_1.default.handleHook(serviceHooks.afterFindMany, {
193
+ result,
194
+ filters,
195
+ queryOptions,
196
+ context,
197
+ });
198
+ return result;
199
+ }
200
+ catch (err) {
201
+ if (serviceHooks?.onFindManyError &&
202
+ context?.skip !== "error" &&
203
+ context?.skip !== "all" &&
204
+ !context?.skip?.includes("error"))
205
+ await service_hooks_manager_1.default.handleHook(serviceHooks.onFindManyError, {
206
+ error: err,
207
+ filters,
208
+ queryOptions,
209
+ context,
210
+ });
211
+ if (context?.throwOnError !== false)
212
+ throw err;
213
+ return [];
214
+ }
215
+ }
216
+ async findById(id, queryOptions, context) {
217
+ const serviceHooks = (0, dynamic_loader_1.getModuleComponents)(this.modelName)?.hooks;
218
+ try {
219
+ if (serviceHooks?.beforeFindById &&
220
+ context?.skip !== "before" &&
221
+ context?.skip !== "all" &&
222
+ !context?.skip?.includes("before")) {
223
+ await service_hooks_manager_1.default.handleHook(serviceHooks.beforeFindById, {
224
+ id,
225
+ queryOptions,
226
+ context,
227
+ });
228
+ }
229
+ const prisma = (0, prisma_helpers_1.getPrismaInstance)();
230
+ const result = await prisma[this.modelName].findUnique((0, deepmerge_helper_1.default)({
231
+ where: { id },
232
+ }, queryOptions || {}));
233
+ if (serviceHooks?.afterFindById &&
234
+ context?.skip !== "after" &&
235
+ context?.skip !== "all" &&
236
+ !context?.skip?.includes("after")) {
237
+ await service_hooks_manager_1.default.handleHook(serviceHooks.afterFindById, {
238
+ result,
239
+ id,
240
+ queryOptions,
241
+ context,
242
+ });
243
+ }
244
+ return result;
245
+ }
246
+ catch (err) {
247
+ if (serviceHooks?.onFindByIdError &&
248
+ context?.skip !== "error" &&
249
+ context?.skip !== "all" &&
250
+ !context?.skip?.includes("error"))
251
+ await service_hooks_manager_1.default.handleHook(serviceHooks.onFindByIdError, {
252
+ error: err,
253
+ id,
254
+ queryOptions,
255
+ context,
256
+ });
257
+ if (context?.throwOnError !== false)
258
+ throw err;
259
+ return undefined;
260
+ }
261
+ }
262
+ async findOne(filters, queryOptions, context) {
263
+ const serviceHooks = (0, dynamic_loader_1.getModuleComponents)(this.modelName)?.hooks;
264
+ try {
265
+ if (serviceHooks?.beforeFindOne &&
266
+ context?.skip !== "before" &&
267
+ context?.skip !== "all" &&
268
+ !context?.skip?.includes("before")) {
269
+ await service_hooks_manager_1.default.handleHook(serviceHooks.beforeFindOne, {
270
+ filters,
271
+ queryOptions,
272
+ context,
273
+ });
274
+ }
275
+ const prisma = (0, prisma_helpers_1.getPrismaInstance)();
276
+ let result;
277
+ if (Object.keys(filters).length === 1 &&
278
+ "id" in filters &&
279
+ filters.id !== "me")
280
+ result = await prisma[this.modelName].findUnique((0, deepmerge_helper_1.default)({
281
+ where: filters,
282
+ }, queryOptions || {}));
283
+ else
284
+ result = await prisma[this.modelName].findFirst((0, deepmerge_helper_1.default)({
285
+ where: filters,
286
+ }, queryOptions || {}));
287
+ if (serviceHooks?.afterFindOne &&
288
+ context?.skip !== "after" &&
289
+ context?.skip !== "all" &&
290
+ !context?.skip?.includes("after"))
291
+ await service_hooks_manager_1.default.handleHook(serviceHooks.afterFindOne, {
292
+ result,
293
+ filters,
294
+ queryOptions,
295
+ context,
296
+ });
297
+ return result;
298
+ }
299
+ catch (err) {
300
+ if (serviceHooks?.onFindOneError &&
301
+ context?.skip !== "error" &&
302
+ context?.skip !== "all" &&
303
+ !context?.skip?.includes("error"))
304
+ await service_hooks_manager_1.default.handleHook(serviceHooks.onFindOneError, {
305
+ error: err,
306
+ filters,
307
+ queryOptions,
308
+ context,
309
+ });
310
+ if (context?.throwOnError !== false)
311
+ throw err;
312
+ return undefined;
313
+ }
314
+ }
315
+ async updateOne(filters, data, queryOptions, context) {
316
+ const serviceHooks = (0, dynamic_loader_1.getModuleComponents)(this.modelName)?.hooks;
317
+ try {
318
+ if (serviceHooks?.beforeUpdateOne &&
319
+ context?.skip !== "before" &&
320
+ context?.skip !== "all" &&
321
+ !context?.skip?.includes("before"))
322
+ await service_hooks_manager_1.default.handleHook(serviceHooks.beforeUpdateOne, {
323
+ filters,
324
+ data,
325
+ queryOptions,
326
+ context,
327
+ });
328
+ if ((0, change_case_helpers_1.kebabCase)(this.modelName) === "user" && data?.password) {
329
+ if (!auth_service_1.default.isPasswordHashed(data.password))
330
+ data.password = await auth_service_1.default.hashPassword(data?.password);
331
+ }
332
+ const prisma = (0, prisma_helpers_1.getPrismaInstance)();
333
+ const dataWithRelationFieldsHandled = (0, base_service_helpers_1.handleRelationFieldsInBody)(data, {
334
+ ...this.relationFields,
335
+ });
336
+ const result = await prisma[this.modelName].update((0, deepmerge_helper_1.default)({
337
+ where: filters,
338
+ data: dataWithRelationFieldsHandled,
339
+ }, queryOptions || {}));
340
+ if (serviceHooks?.afterUpdateOne &&
341
+ context?.skip !== "after" &&
342
+ context?.skip !== "all" &&
343
+ !context?.skip?.includes("after"))
344
+ await service_hooks_manager_1.default.handleHook(serviceHooks.afterUpdateOne, {
345
+ result,
346
+ filters,
347
+ data,
348
+ queryOptions,
349
+ context,
350
+ });
351
+ return result;
352
+ }
353
+ catch (err) {
354
+ if (serviceHooks?.onUpdateOneError &&
355
+ context?.skip !== "error" &&
356
+ context?.skip !== "all" &&
357
+ !context?.skip?.includes("error"))
358
+ await service_hooks_manager_1.default.handleHook(serviceHooks.onUpdateOneError, {
359
+ error: err,
360
+ filters,
361
+ data,
362
+ queryOptions,
363
+ context,
364
+ });
365
+ if (context?.throwOnError !== false)
366
+ throw err;
367
+ return undefined;
368
+ }
369
+ }
370
+ async updateMany(filters, data, queryOptions, context) {
371
+ const serviceHooks = (0, dynamic_loader_1.getModuleComponents)(this.modelName)?.hooks;
372
+ try {
373
+ if (serviceHooks?.beforeUpdateMany &&
374
+ context?.skip !== "before" &&
375
+ context?.skip !== "all" &&
376
+ !context?.skip?.includes("before"))
377
+ await service_hooks_manager_1.default.handleHook(serviceHooks.beforeUpdateMany, {
378
+ filters,
379
+ data,
380
+ queryOptions,
381
+ context,
382
+ });
383
+ const prisma = (0, prisma_helpers_1.getPrismaInstance)();
384
+ if (this.modelName === "user" &&
385
+ "password" in data &&
386
+ data?.password) {
387
+ if (!auth_service_1.default.isPasswordHashed(data.password)) {
388
+ data.password = await auth_service_1.default.hashPassword(data?.password);
389
+ }
390
+ }
391
+ const firstMerge = (0, deepmerge_helper_1.default)({ data }, queryOptions || {});
392
+ const result = await prisma[this.modelName].updateMany((0, deepmerge_helper_1.default)({ where: filters }, firstMerge));
393
+ if (serviceHooks?.afterUpdateMany &&
394
+ context?.skip !== "after" &&
395
+ context?.skip !== "all" &&
396
+ !context?.skip?.includes("after"))
397
+ await service_hooks_manager_1.default.handleHook(serviceHooks.afterUpdateMany, {
398
+ result,
399
+ filters,
400
+ data,
401
+ queryOptions,
402
+ context,
403
+ });
404
+ return result;
405
+ }
406
+ catch (err) {
407
+ if (serviceHooks?.onUpdateManyError &&
408
+ context?.skip !== "error" &&
409
+ context?.skip !== "all" &&
410
+ !context?.skip?.includes("error"))
411
+ await service_hooks_manager_1.default.handleHook(serviceHooks.onUpdateManyError, {
412
+ error: err,
413
+ filters,
414
+ data,
415
+ queryOptions,
416
+ context,
417
+ });
418
+ if (context?.throwOnError !== false)
419
+ throw err;
420
+ return undefined;
421
+ }
422
+ }
423
+ async deleteOne(filters, context) {
424
+ const serviceHooks = (0, dynamic_loader_1.getModuleComponents)(this.modelName)?.hooks;
425
+ try {
426
+ if (serviceHooks?.beforeDeleteOne &&
427
+ context?.skip !== "before" &&
428
+ context?.skip !== "all" &&
429
+ !context?.skip?.includes("before"))
430
+ await service_hooks_manager_1.default.handleHook(serviceHooks.beforeDeleteOne, {
431
+ filters,
432
+ context,
433
+ });
434
+ const prisma = (0, prisma_helpers_1.getPrismaInstance)();
435
+ const result = await prisma[this.modelName].delete({
436
+ where: filters,
437
+ });
438
+ if (serviceHooks?.afterDeleteOne &&
439
+ context?.skip !== "after" &&
440
+ context?.skip !== "all" &&
441
+ !context?.skip?.includes("after"))
442
+ await service_hooks_manager_1.default.handleHook(serviceHooks.afterDeleteOne, {
443
+ result,
444
+ filters,
445
+ context,
446
+ });
447
+ return result;
448
+ }
449
+ catch (err) {
450
+ if (serviceHooks?.onDeleteOneError &&
451
+ context?.skip !== "error" &&
452
+ context?.skip !== "all" &&
453
+ !context?.skip?.includes("error"))
454
+ await service_hooks_manager_1.default.handleHook(serviceHooks.onDeleteOneError, {
455
+ error: err,
456
+ filters,
457
+ context,
458
+ });
459
+ if (context?.throwOnError !== false)
460
+ throw err;
461
+ return undefined;
462
+ }
463
+ }
464
+ async deleteMany(filters, context) {
465
+ const serviceHooks = (0, dynamic_loader_1.getModuleComponents)(this.modelName)?.hooks;
466
+ try {
467
+ if (serviceHooks?.beforeDeleteMany &&
468
+ context?.skip !== "before" &&
469
+ context?.skip !== "all" &&
470
+ !context?.skip?.includes("before"))
471
+ await service_hooks_manager_1.default.handleHook(serviceHooks.beforeDeleteMany, {
472
+ filters,
473
+ context,
474
+ });
475
+ const prisma = (0, prisma_helpers_1.getPrismaInstance)();
476
+ const result = await prisma[this.modelName].deleteMany({
477
+ where: filters,
478
+ });
479
+ if (serviceHooks?.afterDeleteMany &&
480
+ context?.skip !== "after" &&
481
+ context?.skip !== "all" &&
482
+ !context?.skip?.includes("after"))
483
+ await service_hooks_manager_1.default.handleHook(serviceHooks.afterDeleteMany, {
484
+ result,
485
+ filters,
486
+ context,
487
+ });
488
+ return result;
489
+ }
490
+ catch (err) {
491
+ if (serviceHooks?.onDeleteManyError &&
492
+ context?.skip !== "error" &&
493
+ context?.skip !== "all" &&
494
+ !context?.skip?.includes("error"))
495
+ await service_hooks_manager_1.default.handleHook(serviceHooks.onDeleteManyError, {
496
+ error: err,
497
+ filters,
498
+ context,
499
+ });
500
+ if (context?.throwOnError !== false)
501
+ throw err;
502
+ return undefined;
503
+ }
504
+ }
505
+ }
506
+ exports.BaseService = BaseService;
507
+ //# sourceMappingURL=base.service.js.map