arkos 1.2.13-test → 1.2.13-test.1

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 (265) hide show
  1. package/README.md +22 -14
  2. package/cli.js +2 -11
  3. package/dist/cjs/app.js +138 -1
  4. package/dist/cjs/app.js.map +1 -1
  5. package/dist/cjs/index.js +22 -0
  6. package/dist/cjs/modules/auth/auth.router.js +9 -83
  7. package/dist/cjs/modules/auth/auth.router.js.map +1 -1
  8. package/dist/cjs/modules/auth/auth.service.js +0 -7
  9. package/dist/cjs/modules/auth/auth.service.js.map +1 -1
  10. package/dist/cjs/modules/base/base.controller.js +11 -12
  11. package/dist/cjs/modules/base/base.controller.js.map +1 -1
  12. package/dist/cjs/modules/base/base.middlewares.js +4 -4
  13. package/dist/cjs/modules/base/base.middlewares.js.map +1 -1
  14. package/dist/cjs/modules/base/base.router.js.map +1 -1
  15. package/dist/cjs/modules/base/base.service.js.map +1 -1
  16. package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js +43 -113
  17. package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js.map +1 -1
  18. package/dist/cjs/modules/error-handler/error-handler.controller.js +2 -0
  19. package/dist/cjs/modules/error-handler/error-handler.controller.js.map +1 -1
  20. package/dist/cjs/modules/error-handler/utils/catch-async.js +1 -1
  21. package/dist/cjs/modules/error-handler/utils/catch-async.js.map +1 -1
  22. package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js +6 -0
  23. package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js.map +1 -1
  24. package/dist/cjs/modules/file-upload/file-upload.router.js +9 -21
  25. package/dist/cjs/modules/file-upload/file-upload.router.js.map +1 -1
  26. package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js +7 -0
  27. package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js.map +1 -1
  28. package/dist/cjs/modules/swagger/swagger.router.js +71 -93
  29. package/dist/cjs/modules/swagger/swagger.router.js.map +1 -1
  30. package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +270 -0
  31. package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js.map +1 -0
  32. package/dist/cjs/modules/swagger/utils/helpers/get-system-json-schema-paths.js +66 -0
  33. package/dist/cjs/modules/swagger/utils/helpers/get-system-json-schema-paths.js.map +1 -0
  34. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +41 -0
  35. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js.map +1 -0
  36. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +29 -0
  37. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js.map +1 -0
  38. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schema.js +30 -0
  39. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schema.js.map +1 -0
  40. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes.js +471 -0
  41. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes.js.map +1 -0
  42. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes.js +575 -0
  43. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes.js.map +1 -0
  44. package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js +253 -0
  45. package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js.map +1 -0
  46. package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js +105 -0
  47. package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js.map +1 -0
  48. package/dist/cjs/paths.js +9 -1
  49. package/dist/cjs/server.js +85 -3
  50. package/dist/cjs/server.js.map +1 -1
  51. package/dist/cjs/types/arkos-config.js.map +1 -1
  52. package/dist/cjs/utils/cli/build.js +2 -19
  53. package/dist/cjs/utils/cli/build.js.map +1 -1
  54. package/dist/cjs/utils/cli/dev.js +35 -47
  55. package/dist/cjs/utils/cli/dev.js.map +1 -1
  56. package/dist/cjs/utils/cli/generate.js +6 -6
  57. package/dist/cjs/utils/cli/generate.js.map +1 -1
  58. package/dist/cjs/utils/cli/start.js +4 -3
  59. package/dist/cjs/utils/cli/start.js.map +1 -1
  60. package/dist/cjs/utils/cli/utils/cli.helpers.js +1 -3
  61. package/dist/cjs/utils/cli/utils/cli.helpers.js.map +1 -1
  62. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-middlewares.js +33 -66
  63. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-middlewares.js.map +1 -1
  64. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js +17 -11
  65. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js.map +1 -1
  66. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-router-template.js +5 -0
  67. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-router-template.js.map +1 -1
  68. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-service-template.js +1 -1
  69. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-service-template.js.map +1 -1
  70. package/dist/cjs/utils/features/api.features.js +10 -4
  71. package/dist/cjs/utils/features/api.features.js.map +1 -1
  72. package/dist/cjs/utils/helpers/fs.helpers.js +12 -5
  73. package/dist/cjs/utils/helpers/fs.helpers.js.map +1 -1
  74. package/dist/cjs/utils/helpers/global.helpers.js +51 -2
  75. package/dist/cjs/utils/helpers/global.helpers.js.map +1 -1
  76. package/dist/cjs/utils/helpers/models.helpers.js +81 -67
  77. package/dist/cjs/utils/helpers/models.helpers.js.map +1 -1
  78. package/dist/cjs/utils/helpers/prisma.helpers.js +7 -4
  79. package/dist/cjs/utils/helpers/prisma.helpers.js.map +1 -1
  80. package/dist/cjs/utils/helpers/routers.helpers.js +21 -0
  81. package/dist/cjs/utils/helpers/routers.helpers.js.map +1 -0
  82. package/dist/cjs/utils/prisma/enhaced-prisma-json-schema-generator.js +451 -0
  83. package/dist/cjs/utils/prisma/enhaced-prisma-json-schema-generator.js.map +1 -0
  84. package/dist/cjs/utils/prisma/prisma-json-schema-generator.js +88 -0
  85. package/dist/cjs/utils/prisma/prisma-json-schema-generator.js.map +1 -0
  86. package/dist/cjs/utils/prisma/prisma-schema-parser.js +158 -0
  87. package/dist/cjs/utils/prisma/prisma-schema-parser.js.map +1 -0
  88. package/dist/cjs/utils/prisma/types.js +3 -0
  89. package/dist/cjs/utils/prisma/types.js.map +1 -0
  90. package/dist/cjs/utils/sheu.js +119 -0
  91. package/dist/cjs/utils/sheu.js.map +1 -0
  92. package/dist/esm/index.d.mts +280 -0
  93. package/dist/esm/index.mjs +22 -0
  94. package/dist/exports/index.js +1 -0
  95. package/dist/types/arkos-config.js +1 -0
  96. package/dist/types/auth.js +1 -0
  97. package/dist/types/index.js +1 -0
  98. package/dist/types/modules/base/base.middlewares.d.ts +4 -4
  99. package/dist/types/modules/base/base.service.d.ts +1 -1
  100. package/dist/types/modules/base/utils/helpers/base.router.helpers.d.ts +4 -1
  101. package/dist/types/modules/error-handler/utils/catch-async.d.ts +1 -0
  102. package/dist/types/modules/error-handler/utils/error-handler.helpers.d.ts +4 -0
  103. package/dist/types/modules/file-upload/file-upload.router.d.ts +1 -1
  104. package/dist/types/modules/file-upload/utils/helpers/file-upload.helpers.d.ts +2 -1
  105. package/dist/types/modules/swagger/swagger.router.d.ts +1 -1
  106. package/dist/types/modules/swagger/utils/helpers/get-authentication-json-schema-paths.d.ts +3 -0
  107. package/dist/types/modules/swagger/utils/helpers/get-system-json-schema-paths.d.ts +2 -0
  108. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.d.ts +1 -0
  109. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.d.ts +2 -0
  110. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schema.d.ts +1 -0
  111. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes.d.ts +3 -0
  112. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes.d.ts +3 -0
  113. package/dist/types/modules/swagger/utils/helpers/missing-json-schemas-generator.d.ts +34 -0
  114. package/dist/types/modules/swagger/utils/helpers/swagger.router.helpers.d.ts +7 -0
  115. package/dist/types/router-config.js +1 -0
  116. package/dist/types/server.d.ts +3 -0
  117. package/dist/types/types/arkos-config.d.ts +10 -5
  118. package/dist/types/utils/cli/utils/cli.helpers.d.ts +1 -1
  119. package/dist/types/utils/features/api.features.d.ts +1 -0
  120. package/dist/types/utils/helpers/global.helpers.d.ts +6 -1
  121. package/dist/types/utils/helpers/models.helpers.d.ts +31 -5
  122. package/dist/types/utils/helpers/routers.helpers.d.ts +2 -0
  123. package/dist/types/utils/prisma/enhaced-prisma-json-schema-generator.d.ts +34 -0
  124. package/dist/types/utils/prisma/prisma-json-schema-generator.d.ts +10 -0
  125. package/dist/types/utils/prisma/prisma-schema-parser.d.ts +18 -0
  126. package/dist/types/utils/prisma/types.d.ts +48 -0
  127. package/dist/types/utils/sheu.d.ts +70 -0
  128. package/dist/utils/arkos-env.js +1 -0
  129. package/dist/utils/dotenv.helpers.js +1 -0
  130. package/dist/utils/sheu.js +1 -0
  131. package/dist/utils/validate-dto.js +1 -0
  132. package/dist/utils/validate-schema.js +1 -0
  133. package/package.json +32 -34
  134. package/dist/es2020/app.js +0 -1
  135. package/dist/es2020/app.js.map +0 -1
  136. package/dist/es2020/exports/auth/index.js +0 -2
  137. package/dist/es2020/exports/auth/index.js.map +0 -1
  138. package/dist/es2020/exports/controllers/index.js +0 -4
  139. package/dist/es2020/exports/controllers/index.js.map +0 -1
  140. package/dist/es2020/exports/error-handler/index.js +0 -4
  141. package/dist/es2020/exports/error-handler/index.js.map +0 -1
  142. package/dist/es2020/exports/index.js +0 -8
  143. package/dist/es2020/exports/index.js.map +0 -1
  144. package/dist/es2020/exports/middlewares/index.js +0 -2
  145. package/dist/es2020/exports/middlewares/index.js.map +0 -1
  146. package/dist/es2020/exports/prisma/index.js +0 -3
  147. package/dist/es2020/exports/prisma/index.js.map +0 -1
  148. package/dist/es2020/exports/services/index.js +0 -9
  149. package/dist/es2020/exports/services/index.js.map +0 -1
  150. package/dist/es2020/exports/utils/index.js +0 -4
  151. package/dist/es2020/exports/utils/index.js.map +0 -1
  152. package/dist/es2020/exports/validation/index.js +0 -4
  153. package/dist/es2020/exports/validation/index.js.map +0 -1
  154. package/dist/es2020/modules/auth/auth.controller.js +0 -187
  155. package/dist/es2020/modules/auth/auth.controller.js.map +0 -1
  156. package/dist/es2020/modules/auth/auth.router.js +0 -118
  157. package/dist/es2020/modules/auth/auth.router.js.map +0 -1
  158. package/dist/es2020/modules/auth/auth.service.js +0 -185
  159. package/dist/es2020/modules/auth/auth.service.js.map +0 -1
  160. package/dist/es2020/modules/auth/utils/helpers/auth.controller.helpers.js +0 -73
  161. package/dist/es2020/modules/auth/utils/helpers/auth.controller.helpers.js.map +0 -1
  162. package/dist/es2020/modules/base/base.controller.js +0 -151
  163. package/dist/es2020/modules/base/base.controller.js.map +0 -1
  164. package/dist/es2020/modules/base/base.middlewares.js +0 -81
  165. package/dist/es2020/modules/base/base.middlewares.js.map +0 -1
  166. package/dist/es2020/modules/base/base.router.js +0 -17
  167. package/dist/es2020/modules/base/base.router.js.map +0 -1
  168. package/dist/es2020/modules/base/base.service.js +0 -120
  169. package/dist/es2020/modules/base/base.service.js.map +0 -1
  170. package/dist/es2020/modules/base/utils/helpers/base.controller.helpers.js +0 -77
  171. package/dist/es2020/modules/base/utils/helpers/base.controller.helpers.js.map +0 -1
  172. package/dist/es2020/modules/base/utils/helpers/base.middlewares.helpers.js +0 -44
  173. package/dist/es2020/modules/base/utils/helpers/base.middlewares.helpers.js.map +0 -1
  174. package/dist/es2020/modules/base/utils/helpers/base.router.helpers.js +0 -161
  175. package/dist/es2020/modules/base/utils/helpers/base.router.helpers.js.map +0 -1
  176. package/dist/es2020/modules/base/utils/helpers/base.service.helpers.js +0 -165
  177. package/dist/es2020/modules/base/utils/helpers/base.service.helpers.js.map +0 -1
  178. package/dist/es2020/modules/email/email.service.js +0 -97
  179. package/dist/es2020/modules/email/email.service.js.map +0 -1
  180. package/dist/es2020/modules/error-handler/error-handler.controller.js +0 -105
  181. package/dist/es2020/modules/error-handler/error-handler.controller.js.map +0 -1
  182. package/dist/es2020/modules/error-handler/utils/app-error.js +0 -15
  183. package/dist/es2020/modules/error-handler/utils/app-error.js.map +0 -1
  184. package/dist/es2020/modules/error-handler/utils/catch-async.js +0 -10
  185. package/dist/es2020/modules/error-handler/utils/catch-async.js.map +0 -1
  186. package/dist/es2020/modules/error-handler/utils/error-handler.helpers.js +0 -155
  187. package/dist/es2020/modules/error-handler/utils/error-handler.helpers.js.map +0 -1
  188. package/dist/es2020/modules/file-upload/file-upload.controller.js +0 -266
  189. package/dist/es2020/modules/file-upload/file-upload.controller.js.map +0 -1
  190. package/dist/es2020/modules/file-upload/file-upload.router.js +0 -50
  191. package/dist/es2020/modules/file-upload/file-upload.router.js.map +0 -1
  192. package/dist/es2020/modules/file-upload/file-upload.service.js +0 -314
  193. package/dist/es2020/modules/file-upload/file-upload.service.js.map +0 -1
  194. package/dist/es2020/modules/file-upload/utils/helpers/file-upload.helpers.js +0 -81
  195. package/dist/es2020/modules/file-upload/utils/helpers/file-upload.helpers.js.map +0 -1
  196. package/dist/es2020/modules/swagger/swagger.router.js +0 -135
  197. package/dist/es2020/modules/swagger/swagger.router.js.map +0 -1
  198. package/dist/es2020/paths.js +0 -1
  199. package/dist/es2020/paths.js.map +0 -1
  200. package/dist/es2020/server.js +0 -3
  201. package/dist/es2020/server.js.map +0 -1
  202. package/dist/es2020/types/arkos-config.js +0 -2
  203. package/dist/es2020/types/arkos-config.js.map +0 -1
  204. package/dist/es2020/types/auth.js +0 -2
  205. package/dist/es2020/types/auth.js.map +0 -1
  206. package/dist/es2020/types/index.js +0 -8
  207. package/dist/es2020/types/index.js.map +0 -1
  208. package/dist/es2020/types/router-config.js +0 -2
  209. package/dist/es2020/types/router-config.js.map +0 -1
  210. package/dist/es2020/utils/arkos-env.js +0 -7
  211. package/dist/es2020/utils/arkos-env.js.map +0 -1
  212. package/dist/es2020/utils/cli/build.js +0 -223
  213. package/dist/es2020/utils/cli/build.js.map +0 -1
  214. package/dist/es2020/utils/cli/dev.js +0 -261
  215. package/dist/es2020/utils/cli/dev.js.map +0 -1
  216. package/dist/es2020/utils/cli/generate.js +0 -183
  217. package/dist/es2020/utils/cli/generate.js.map +0 -1
  218. package/dist/es2020/utils/cli/index.js +0 -74
  219. package/dist/es2020/utils/cli/index.js.map +0 -1
  220. package/dist/es2020/utils/cli/start.js +0 -86
  221. package/dist/es2020/utils/cli/start.js.map +0 -1
  222. package/dist/es2020/utils/cli/utils/cli.helpers.js +0 -18
  223. package/dist/es2020/utils/cli/utils/cli.helpers.js.map +0 -1
  224. package/dist/es2020/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js +0 -33
  225. package/dist/es2020/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js.map +0 -1
  226. package/dist/es2020/utils/cli/utils/template-generator/templates/generate-controller-template.js +0 -18
  227. package/dist/es2020/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +0 -1
  228. package/dist/es2020/utils/cli/utils/template-generator/templates/generate-middlewares.js +0 -265
  229. package/dist/es2020/utils/cli/utils/template-generator/templates/generate-middlewares.js.map +0 -1
  230. package/dist/es2020/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js +0 -55
  231. package/dist/es2020/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js.map +0 -1
  232. package/dist/es2020/utils/cli/utils/template-generator/templates/generate-router-template.js +0 -32
  233. package/dist/es2020/utils/cli/utils/template-generator/templates/generate-router-template.js.map +0 -1
  234. package/dist/es2020/utils/cli/utils/template-generator/templates/generate-service-template.js +0 -32
  235. package/dist/es2020/utils/cli/utils/template-generator/templates/generate-service-template.js.map +0 -1
  236. package/dist/es2020/utils/cli/utils/template-generators.js +0 -25
  237. package/dist/es2020/utils/cli/utils/template-generators.js.map +0 -1
  238. package/dist/es2020/utils/dotenv.helpers.js +0 -37
  239. package/dist/es2020/utils/dotenv.helpers.js.map +0 -1
  240. package/dist/es2020/utils/features/api.features.js +0 -154
  241. package/dist/es2020/utils/features/api.features.js.map +0 -1
  242. package/dist/es2020/utils/features/change-case.features.js +0 -31
  243. package/dist/es2020/utils/features/change-case.features.js.map +0 -1
  244. package/dist/es2020/utils/helpers/api.features.helpers.js +0 -103
  245. package/dist/es2020/utils/helpers/api.features.helpers.js.map +0 -1
  246. package/dist/es2020/utils/helpers/change-case.helpers.js +0 -161
  247. package/dist/es2020/utils/helpers/change-case.helpers.js.map +0 -1
  248. package/dist/es2020/utils/helpers/deepmerge.helper.js +0 -113
  249. package/dist/es2020/utils/helpers/deepmerge.helper.js.map +0 -1
  250. package/dist/es2020/utils/helpers/fs.helpers.js +0 -45
  251. package/dist/es2020/utils/helpers/fs.helpers.js.map +0 -1
  252. package/dist/es2020/utils/helpers/global.helpers.js +0 -4
  253. package/dist/es2020/utils/helpers/global.helpers.js.map +0 -1
  254. package/dist/es2020/utils/helpers/models.helpers.js +0 -276
  255. package/dist/es2020/utils/helpers/models.helpers.js.map +0 -1
  256. package/dist/es2020/utils/helpers/prisma.helpers.js +0 -41
  257. package/dist/es2020/utils/helpers/prisma.helpers.js.map +0 -1
  258. package/dist/es2020/utils/helpers/query-parser.helpers.js +0 -40
  259. package/dist/es2020/utils/helpers/query-parser.helpers.js.map +0 -1
  260. package/dist/es2020/utils/helpers/text.helpers.js +0 -22
  261. package/dist/es2020/utils/helpers/text.helpers.js.map +0 -1
  262. package/dist/es2020/utils/validate-dto.js +0 -11
  263. package/dist/es2020/utils/validate-dto.js.map +0 -1
  264. package/dist/es2020/utils/validate-schema.js +0 -9
  265. package/dist/es2020/utils/validate-schema.js.map +0 -1
@@ -0,0 +1,471 @@
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.generatePrismaModelMainRoutesPaths = generatePrismaModelMainRoutesPaths;
7
+ const swagger_router_helpers_1 = require("../../swagger.router.helpers");
8
+ const pluralize_1 = __importDefault(require("pluralize"));
9
+ const base_router_helpers_1 = require("../../../../../base/utils/helpers/base.router.helpers");
10
+ const utils_1 = require("../../../../../../exports/utils");
11
+ const models_helpers_1 = require("../../../../../../utils/helpers/models.helpers");
12
+ async function generatePrismaModelMainRoutesPaths(model, paths, arkosConfig) {
13
+ const modelName = (0, utils_1.kebabCase)(model);
14
+ const routeName = pluralize_1.default.plural(modelName);
15
+ const pascalModelName = (0, utils_1.pascalCase)(model);
16
+ const humanReadableName = (0, swagger_router_helpers_1.kebabToHuman)(modelName);
17
+ const humanReadableNamePlural = pluralize_1.default.plural(humanReadableName);
18
+ const modelModules = await (0, models_helpers_1.importPrismaModelModules)(model, arkosConfig);
19
+ const routerConfig = modelModules?.router?.config;
20
+ if (routerConfig?.disable === true)
21
+ return;
22
+ const getSchemaMode = async (action) => {
23
+ const swaggerMode = arkosConfig.swagger?.mode;
24
+ const isStrict = arkosConfig.swagger?.strict;
25
+ if (isStrict) {
26
+ return swaggerMode || "prisma";
27
+ }
28
+ const actionKey = action;
29
+ const localFileExists = await (0, models_helpers_1.localValidatorFileExists)(actionKey, model, arkosConfig);
30
+ if (!localFileExists)
31
+ return "prisma";
32
+ return swaggerMode || "prisma";
33
+ };
34
+ if (!(0, base_router_helpers_1.isEndpointDisabled)(routerConfig, "createOne")) {
35
+ if (!paths[`/api/${routeName}`])
36
+ paths[`/api/${routeName}`] = {};
37
+ const createMode = await getSchemaMode("create");
38
+ paths[`/api/${routeName}`].post = {
39
+ tags: [humanReadableNamePlural],
40
+ summary: `Create a new ${humanReadableName}`,
41
+ description: `Creates a new ${humanReadableName} record in the system`,
42
+ operationId: `create${pascalModelName}`,
43
+ requestBody: {
44
+ description: `${humanReadableName} data to create`,
45
+ required: true,
46
+ content: {
47
+ "application/json": {
48
+ schema: {
49
+ $ref: (0, swagger_router_helpers_1.getSchemaRef)(`Create${pascalModelName}`, createMode),
50
+ },
51
+ },
52
+ },
53
+ },
54
+ responses: {
55
+ "201": {
56
+ description: `${humanReadableName} created successfully`,
57
+ content: {
58
+ "application/json": {
59
+ schema: {
60
+ $ref: (0, swagger_router_helpers_1.getSchemaRef)(`${pascalModelName}`, createMode),
61
+ },
62
+ },
63
+ },
64
+ },
65
+ "400": {
66
+ description: "Invalid input data provided",
67
+ },
68
+ "401": {
69
+ description: "Authentication required",
70
+ },
71
+ "403": {
72
+ description: "Insufficient permissions",
73
+ },
74
+ },
75
+ security: [{ BearerAuth: [] }],
76
+ };
77
+ }
78
+ if (!(0, base_router_helpers_1.isEndpointDisabled)(routerConfig, "findMany")) {
79
+ if (!paths[`/api/${routeName}`])
80
+ paths[`/api/${routeName}`] = {};
81
+ const findManyMode = await getSchemaMode("findMany");
82
+ paths[`/api/${routeName}`].get = {
83
+ tags: [humanReadableNamePlural],
84
+ summary: `Get ${humanReadableNamePlural}`,
85
+ description: `Retrieves a paginated list of ${humanReadableNamePlural} with optional filtering and sorting`,
86
+ operationId: `find${pluralize_1.default.plural(pascalModelName)}`,
87
+ parameters: [
88
+ {
89
+ name: "filter",
90
+ in: "query",
91
+ description: "Filter criteria in JSON format",
92
+ schema: {
93
+ type: "string",
94
+ },
95
+ },
96
+ {
97
+ name: "sort",
98
+ in: "query",
99
+ description: "Sort field (prefix with '-' for descending order)",
100
+ schema: {
101
+ type: "string",
102
+ },
103
+ },
104
+ {
105
+ name: "page",
106
+ in: "query",
107
+ description: "Page number (starts from 1)",
108
+ schema: {
109
+ type: "integer",
110
+ minimum: 1,
111
+ },
112
+ },
113
+ {
114
+ name: "limit",
115
+ in: "query",
116
+ description: "Number of items per page",
117
+ schema: {
118
+ type: "integer",
119
+ minimum: 1,
120
+ maximum: 100,
121
+ },
122
+ },
123
+ {
124
+ name: "fields",
125
+ in: "query",
126
+ description: "Comma-separated list of fields to include in response",
127
+ schema: {
128
+ type: "string",
129
+ },
130
+ },
131
+ ],
132
+ responses: {
133
+ "200": {
134
+ description: `List of ${humanReadableNamePlural} retrieved successfully`,
135
+ content: {
136
+ "application/json": {
137
+ schema: {
138
+ type: "object",
139
+ properties: {
140
+ total: {
141
+ type: "integer",
142
+ description: "Total number of records matching the criteria",
143
+ },
144
+ results: {
145
+ type: "integer",
146
+ description: "Number of records returned in current page",
147
+ },
148
+ data: {
149
+ type: "array",
150
+ items: {
151
+ $ref: (0, swagger_router_helpers_1.getSchemaRef)(`FindMany${pascalModelName}`, findManyMode),
152
+ },
153
+ },
154
+ },
155
+ },
156
+ },
157
+ },
158
+ },
159
+ "401": {
160
+ description: "Authentication required",
161
+ },
162
+ "403": {
163
+ description: "Insufficient permissions",
164
+ },
165
+ },
166
+ security: [{ BearerAuth: [] }],
167
+ };
168
+ }
169
+ if (!(0, base_router_helpers_1.isEndpointDisabled)(routerConfig, "createMany")) {
170
+ const createManyMode = await getSchemaMode("createMany");
171
+ paths[`/api/${routeName}/many`] = {
172
+ post: {
173
+ tags: [humanReadableNamePlural],
174
+ summary: `Create multiple ${humanReadableNamePlural}`,
175
+ description: `Creates multiple ${humanReadableNamePlural} records in a single batch operation`,
176
+ operationId: `createMany${pascalModelName}`,
177
+ requestBody: {
178
+ description: `Array of ${humanReadableName} data to create`,
179
+ required: true,
180
+ content: {
181
+ "application/json": {
182
+ schema: {
183
+ type: "array",
184
+ items: {
185
+ $ref: (0, swagger_router_helpers_1.getSchemaRef)(`CreateMany${pascalModelName}`, createManyMode),
186
+ },
187
+ },
188
+ },
189
+ },
190
+ },
191
+ responses: {
192
+ "201": {
193
+ description: `${humanReadableNamePlural} created successfully`,
194
+ content: {
195
+ "application/json": {
196
+ schema: {
197
+ type: "object",
198
+ properties: {
199
+ count: {
200
+ type: "integer",
201
+ description: "Number of records created",
202
+ },
203
+ },
204
+ },
205
+ },
206
+ },
207
+ },
208
+ "400": {
209
+ description: "Invalid input data provided",
210
+ },
211
+ "401": {
212
+ description: "Authentication required",
213
+ },
214
+ "403": {
215
+ description: "Insufficient permissions",
216
+ },
217
+ },
218
+ security: [{ BearerAuth: [] }],
219
+ },
220
+ };
221
+ }
222
+ if (!(0, base_router_helpers_1.isEndpointDisabled)(routerConfig, "updateMany")) {
223
+ if (!paths[`/api/${routeName}/many`])
224
+ paths[`/api/${routeName}/many`] = {};
225
+ const updateManyMode = await getSchemaMode("updateMany");
226
+ paths[`/api/${routeName}/many`].patch = {
227
+ tags: [humanReadableNamePlural],
228
+ summary: `Update multiple ${humanReadableNamePlural}`,
229
+ description: `Updates multiple ${humanReadableNamePlural} records that match the specified filter criteria`,
230
+ operationId: `updateMany${pascalModelName}`,
231
+ parameters: [
232
+ {
233
+ name: "filter",
234
+ in: "query",
235
+ description: "Filter criteria in JSON format (required)",
236
+ required: true,
237
+ schema: {
238
+ type: "string",
239
+ },
240
+ },
241
+ ],
242
+ requestBody: {
243
+ description: `Partial ${humanReadableName} data to update`,
244
+ required: true,
245
+ content: {
246
+ "application/json": {
247
+ schema: {
248
+ $ref: (0, swagger_router_helpers_1.getSchemaRef)(`UpdateMany${pascalModelName}`, updateManyMode),
249
+ },
250
+ },
251
+ },
252
+ },
253
+ responses: {
254
+ "200": {
255
+ description: `${humanReadableNamePlural} updated successfully`,
256
+ content: {
257
+ "application/json": {
258
+ schema: {
259
+ type: "object",
260
+ properties: {
261
+ count: {
262
+ type: "integer",
263
+ description: "Number of records updated",
264
+ },
265
+ },
266
+ },
267
+ },
268
+ },
269
+ },
270
+ "400": {
271
+ description: "Invalid input data or missing filter criteria",
272
+ },
273
+ "401": {
274
+ description: "Authentication required",
275
+ },
276
+ "403": {
277
+ description: "Insufficient permissions",
278
+ },
279
+ },
280
+ security: [{ BearerAuth: [] }],
281
+ };
282
+ }
283
+ if (!(0, base_router_helpers_1.isEndpointDisabled)(routerConfig, "deleteMany")) {
284
+ if (!paths[`/api/${routeName}/many`])
285
+ paths[`/api/${routeName}/many`] = {};
286
+ paths[`/api/${routeName}/many`].delete = {
287
+ tags: [humanReadableNamePlural],
288
+ summary: `Delete multiple ${humanReadableNamePlural}`,
289
+ description: `Deletes multiple ${humanReadableNamePlural} records that match the specified filter criteria`,
290
+ operationId: `deleteMany${pascalModelName}`,
291
+ parameters: [
292
+ {
293
+ name: "filter",
294
+ in: "query",
295
+ description: "Filter criteria in JSON format (required)",
296
+ required: true,
297
+ schema: {
298
+ type: "string",
299
+ },
300
+ },
301
+ ],
302
+ responses: {
303
+ "200": {
304
+ description: `${humanReadableNamePlural} deleted successfully`,
305
+ content: {
306
+ "application/json": {
307
+ schema: {
308
+ type: "object",
309
+ properties: {
310
+ count: {
311
+ type: "integer",
312
+ description: "Number of records deleted",
313
+ },
314
+ },
315
+ },
316
+ },
317
+ },
318
+ },
319
+ "400": {
320
+ description: "Missing filter criteria",
321
+ },
322
+ "401": {
323
+ description: "Authentication required",
324
+ },
325
+ "403": {
326
+ description: "Insufficient permissions",
327
+ },
328
+ },
329
+ security: [{ BearerAuth: [] }],
330
+ };
331
+ }
332
+ if (!(0, base_router_helpers_1.isEndpointDisabled)(routerConfig, "findOne")) {
333
+ const findOneMode = await getSchemaMode("findOne");
334
+ paths[`/api/${routeName}/{id}`] = {
335
+ get: {
336
+ tags: [humanReadableNamePlural],
337
+ summary: `Get ${humanReadableName} by ID`,
338
+ description: `Retrieves a single ${humanReadableName} record by its unique identifier`,
339
+ operationId: `find${pascalModelName}ById`,
340
+ parameters: [
341
+ {
342
+ name: "id",
343
+ in: "path",
344
+ description: `Unique identifier of the ${humanReadableName}`,
345
+ required: true,
346
+ schema: {
347
+ type: "string",
348
+ },
349
+ },
350
+ ],
351
+ responses: {
352
+ "200": {
353
+ description: `${humanReadableName} retrieved successfully`,
354
+ content: {
355
+ "application/json": {
356
+ schema: {
357
+ $ref: (0, swagger_router_helpers_1.getSchemaRef)(`FindOne${pascalModelName}`, findOneMode),
358
+ },
359
+ },
360
+ },
361
+ },
362
+ "401": {
363
+ description: "Authentication required",
364
+ },
365
+ "403": {
366
+ description: "Insufficient permissions",
367
+ },
368
+ "404": {
369
+ description: `${humanReadableName} not found`,
370
+ },
371
+ },
372
+ security: [{ BearerAuth: [] }],
373
+ },
374
+ };
375
+ }
376
+ if (!(0, base_router_helpers_1.isEndpointDisabled)(routerConfig, "updateOne")) {
377
+ if (!paths[`/api/${routeName}/{id}`])
378
+ paths[`/api/${routeName}/{id}`] = {};
379
+ const updateMode = await getSchemaMode("update");
380
+ paths[`/api/${routeName}/{id}`].patch = {
381
+ tags: [humanReadableNamePlural],
382
+ summary: `Update ${humanReadableName} by ID`,
383
+ description: `Updates a single ${humanReadableName} record by its unique identifier`,
384
+ operationId: `update${pascalModelName}`,
385
+ parameters: [
386
+ {
387
+ name: "id",
388
+ in: "path",
389
+ description: `Unique identifier of the ${humanReadableName}`,
390
+ required: true,
391
+ schema: {
392
+ type: "string",
393
+ },
394
+ },
395
+ ],
396
+ requestBody: {
397
+ description: `Partial ${humanReadableName} data to update`,
398
+ required: true,
399
+ content: {
400
+ "application/json": {
401
+ schema: {
402
+ $ref: (0, swagger_router_helpers_1.getSchemaRef)(`Update${pascalModelName}`, updateMode),
403
+ },
404
+ },
405
+ },
406
+ },
407
+ responses: {
408
+ "200": {
409
+ description: `${humanReadableName} updated successfully`,
410
+ content: {
411
+ "application/json": {
412
+ schema: {
413
+ $ref: (0, swagger_router_helpers_1.getSchemaRef)(`${pascalModelName}`, updateMode),
414
+ },
415
+ },
416
+ },
417
+ },
418
+ "400": {
419
+ description: "Invalid input data provided",
420
+ },
421
+ "401": {
422
+ description: "Authentication required",
423
+ },
424
+ "403": {
425
+ description: "Insufficient permissions",
426
+ },
427
+ "404": {
428
+ description: `${humanReadableName} not found`,
429
+ },
430
+ },
431
+ security: [{ BearerAuth: [] }],
432
+ };
433
+ }
434
+ if (!(0, base_router_helpers_1.isEndpointDisabled)(routerConfig, "deleteOne")) {
435
+ if (!paths[`/api/${routeName}/{id}`])
436
+ paths[`/api/${routeName}/{id}`] = {};
437
+ paths[`/api/${routeName}/{id}`].delete = {
438
+ tags: [humanReadableNamePlural],
439
+ summary: `Delete ${humanReadableName} by ID`,
440
+ description: `Permanently deletes a single ${humanReadableName} record by its unique identifier`,
441
+ operationId: `delete${pascalModelName}`,
442
+ parameters: [
443
+ {
444
+ name: "id",
445
+ in: "path",
446
+ description: `Unique identifier of the ${humanReadableName}`,
447
+ required: true,
448
+ schema: {
449
+ type: "string",
450
+ },
451
+ },
452
+ ],
453
+ responses: {
454
+ "204": {
455
+ description: `${humanReadableName} deleted successfully`,
456
+ },
457
+ "401": {
458
+ description: "Authentication required",
459
+ },
460
+ "403": {
461
+ description: "Insufficient permissions",
462
+ },
463
+ "404": {
464
+ description: `${humanReadableName} not found`,
465
+ },
466
+ },
467
+ security: [{ BearerAuth: [] }],
468
+ };
469
+ }
470
+ }
471
+ //# sourceMappingURL=generate-prisma-model-main-routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-prisma-model-main-routes.js","sourceRoot":"","sources":["../../../../../../../../src/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes.ts"],"names":[],"mappings":"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","sourcesContent":["import { OpenAPIV3 } from \"openapi-types\";\nimport { getSchemaRef, kebabToHuman } from \"../../swagger.router.helpers\";\nimport pluralize from \"pluralize\";\nimport { isEndpointDisabled } from \"../../../../../base/utils/helpers/base.router.helpers\";\nimport { ArkosConfig } from \"../../../../../../exports\";\nimport { kebabCase, pascalCase } from \"../../../../../../exports/utils\";\nimport {\n importPrismaModelModules,\n localValidatorFileExists,\n} from \"../../../../../../utils/helpers/models.helpers\";\n\nexport async function generatePrismaModelMainRoutesPaths(\n model: string,\n paths: OpenAPIV3.PathsObject,\n arkosConfig: ArkosConfig\n) {\n const modelName = kebabCase(model);\n const routeName = pluralize.plural(modelName);\n const pascalModelName = pascalCase(model);\n const humanReadableName = kebabToHuman(modelName);\n const humanReadableNamePlural = pluralize.plural(humanReadableName);\n\n // Import model modules to get router config\n const modelModules = await importPrismaModelModules(model, arkosConfig);\n const routerConfig = modelModules?.router?.config;\n\n // Skip if router is completely disabled\n if (routerConfig?.disable === true) return;\n\n // Helper function to determine the correct mode for schema ref\n const getSchemaMode = async (\n action: string\n ): Promise<\"prisma\" | \"zod\" | \"class-validator\"> => {\n const swaggerMode = arkosConfig.swagger?.mode;\n const isStrict = arkosConfig.swagger?.strict;\n\n if (isStrict) {\n return swaggerMode || \"prisma\";\n }\n\n // Convert action to ValidationFileMappingKey format if needed\n const actionKey = action as any; // You may need to convert this based on the key mappings\n\n const localFileExists = await localValidatorFileExists(\n actionKey,\n model,\n arkosConfig\n );\n\n if (!localFileExists) return \"prisma\"; // Fallback to prisma when no local file exists and not strict\n\n return swaggerMode || \"prisma\";\n };\n\n // Create One\n if (!isEndpointDisabled(routerConfig, \"createOne\")) {\n if (!paths[`/api/${routeName}`]) paths[`/api/${routeName}`] = {};\n const createMode = await getSchemaMode(\"create\");\n paths[`/api/${routeName}`]!.post = {\n tags: [humanReadableNamePlural],\n summary: `Create a new ${humanReadableName}`,\n description: `Creates a new ${humanReadableName} record in the system`,\n operationId: `create${pascalModelName}`,\n requestBody: {\n description: `${humanReadableName} data to create`,\n required: true,\n content: {\n \"application/json\": {\n schema: {\n $ref: getSchemaRef(`Create${pascalModelName}`, createMode),\n },\n },\n },\n },\n responses: {\n \"201\": {\n description: `${humanReadableName} created successfully`,\n content: {\n \"application/json\": {\n schema: {\n $ref: getSchemaRef(`${pascalModelName}`, createMode),\n },\n },\n },\n },\n \"400\": {\n description: \"Invalid input data provided\",\n },\n \"401\": {\n description: \"Authentication required\",\n },\n \"403\": {\n description: \"Insufficient permissions\",\n },\n },\n security: [{ BearerAuth: [] }],\n };\n }\n\n // Find Many\n if (!isEndpointDisabled(routerConfig, \"findMany\")) {\n if (!paths[`/api/${routeName}`]) paths[`/api/${routeName}`] = {};\n const findManyMode = await getSchemaMode(\"findMany\");\n paths[`/api/${routeName}`]!.get = {\n tags: [humanReadableNamePlural],\n summary: `Get ${humanReadableNamePlural}`,\n description: `Retrieves a paginated list of ${humanReadableNamePlural} with optional filtering and sorting`,\n operationId: `find${pluralize.plural(pascalModelName)}`,\n parameters: [\n {\n name: \"filter\",\n in: \"query\",\n description: \"Filter criteria in JSON format\",\n schema: {\n type: \"string\",\n },\n },\n {\n name: \"sort\",\n in: \"query\",\n description: \"Sort field (prefix with '-' for descending order)\",\n schema: {\n type: \"string\",\n },\n },\n {\n name: \"page\",\n in: \"query\",\n description: \"Page number (starts from 1)\",\n schema: {\n type: \"integer\",\n minimum: 1,\n },\n },\n {\n name: \"limit\",\n in: \"query\",\n description: \"Number of items per page\",\n schema: {\n type: \"integer\",\n minimum: 1,\n maximum: 100,\n },\n },\n {\n name: \"fields\",\n in: \"query\",\n description: \"Comma-separated list of fields to include in response\",\n schema: {\n type: \"string\",\n },\n },\n ],\n responses: {\n \"200\": {\n description: `List of ${humanReadableNamePlural} retrieved successfully`,\n content: {\n \"application/json\": {\n schema: {\n type: \"object\",\n properties: {\n total: {\n type: \"integer\",\n description:\n \"Total number of records matching the criteria\",\n },\n results: {\n type: \"integer\",\n description: \"Number of records returned in current page\",\n },\n data: {\n type: \"array\",\n items: {\n $ref: getSchemaRef(\n `FindMany${pascalModelName}`,\n findManyMode\n ),\n },\n },\n },\n },\n },\n },\n },\n \"401\": {\n description: \"Authentication required\",\n },\n \"403\": {\n description: \"Insufficient permissions\",\n },\n },\n security: [{ BearerAuth: [] }],\n };\n }\n\n // Create Many\n if (!isEndpointDisabled(routerConfig, \"createMany\")) {\n const createManyMode = await getSchemaMode(\"createMany\");\n paths[`/api/${routeName}/many`] = {\n post: {\n tags: [humanReadableNamePlural],\n summary: `Create multiple ${humanReadableNamePlural}`,\n description: `Creates multiple ${humanReadableNamePlural} records in a single batch operation`,\n operationId: `createMany${pascalModelName}`,\n requestBody: {\n description: `Array of ${humanReadableName} data to create`,\n required: true,\n content: {\n \"application/json\": {\n schema: {\n type: \"array\",\n items: {\n $ref: getSchemaRef(\n `CreateMany${pascalModelName}`,\n createManyMode\n ),\n },\n },\n },\n },\n },\n responses: {\n \"201\": {\n description: `${humanReadableNamePlural} created successfully`,\n content: {\n \"application/json\": {\n schema: {\n type: \"object\",\n properties: {\n count: {\n type: \"integer\",\n description: \"Number of records created\",\n },\n },\n },\n },\n },\n },\n \"400\": {\n description: \"Invalid input data provided\",\n },\n \"401\": {\n description: \"Authentication required\",\n },\n \"403\": {\n description: \"Insufficient permissions\",\n },\n },\n security: [{ BearerAuth: [] }],\n },\n };\n }\n\n // Update Many\n if (!isEndpointDisabled(routerConfig, \"updateMany\")) {\n if (!paths[`/api/${routeName}/many`]) paths[`/api/${routeName}/many`] = {};\n const updateManyMode = await getSchemaMode(\"updateMany\");\n paths[`/api/${routeName}/many`]!.patch = {\n tags: [humanReadableNamePlural],\n summary: `Update multiple ${humanReadableNamePlural}`,\n description: `Updates multiple ${humanReadableNamePlural} records that match the specified filter criteria`,\n operationId: `updateMany${pascalModelName}`,\n parameters: [\n {\n name: \"filter\",\n in: \"query\",\n description: \"Filter criteria in JSON format (required)\",\n required: true,\n schema: {\n type: \"string\",\n },\n },\n ],\n requestBody: {\n description: `Partial ${humanReadableName} data to update`,\n required: true,\n content: {\n \"application/json\": {\n schema: {\n $ref: getSchemaRef(\n `UpdateMany${pascalModelName}`,\n updateManyMode\n ),\n },\n },\n },\n },\n responses: {\n \"200\": {\n description: `${humanReadableNamePlural} updated successfully`,\n content: {\n \"application/json\": {\n schema: {\n type: \"object\",\n properties: {\n count: {\n type: \"integer\",\n description: \"Number of records updated\",\n },\n },\n },\n },\n },\n },\n \"400\": {\n description: \"Invalid input data or missing filter criteria\",\n },\n \"401\": {\n description: \"Authentication required\",\n },\n \"403\": {\n description: \"Insufficient permissions\",\n },\n },\n security: [{ BearerAuth: [] }],\n };\n }\n\n // Delete Many\n if (!isEndpointDisabled(routerConfig, \"deleteMany\")) {\n if (!paths[`/api/${routeName}/many`]) paths[`/api/${routeName}/many`] = {};\n paths[`/api/${routeName}/many`]!.delete = {\n tags: [humanReadableNamePlural],\n summary: `Delete multiple ${humanReadableNamePlural}`,\n description: `Deletes multiple ${humanReadableNamePlural} records that match the specified filter criteria`,\n operationId: `deleteMany${pascalModelName}`,\n parameters: [\n {\n name: \"filter\",\n in: \"query\",\n description: \"Filter criteria in JSON format (required)\",\n required: true,\n schema: {\n type: \"string\",\n },\n },\n ],\n responses: {\n \"200\": {\n description: `${humanReadableNamePlural} deleted successfully`,\n content: {\n \"application/json\": {\n schema: {\n type: \"object\",\n properties: {\n count: {\n type: \"integer\",\n description: \"Number of records deleted\",\n },\n },\n },\n },\n },\n },\n \"400\": {\n description: \"Missing filter criteria\",\n },\n \"401\": {\n description: \"Authentication required\",\n },\n \"403\": {\n description: \"Insufficient permissions\",\n },\n },\n security: [{ BearerAuth: [] }],\n };\n }\n\n // Find One\n if (!isEndpointDisabled(routerConfig, \"findOne\")) {\n const findOneMode = await getSchemaMode(\"findOne\");\n paths[`/api/${routeName}/{id}`] = {\n get: {\n tags: [humanReadableNamePlural],\n summary: `Get ${humanReadableName} by ID`,\n description: `Retrieves a single ${humanReadableName} record by its unique identifier`,\n operationId: `find${pascalModelName}ById`,\n parameters: [\n {\n name: \"id\",\n in: \"path\",\n description: `Unique identifier of the ${humanReadableName}`,\n required: true,\n schema: {\n type: \"string\",\n },\n },\n ],\n responses: {\n \"200\": {\n description: `${humanReadableName} retrieved successfully`,\n content: {\n \"application/json\": {\n schema: {\n $ref: getSchemaRef(`FindOne${pascalModelName}`, findOneMode),\n },\n },\n },\n },\n \"401\": {\n description: \"Authentication required\",\n },\n \"403\": {\n description: \"Insufficient permissions\",\n },\n \"404\": {\n description: `${humanReadableName} not found`,\n },\n },\n security: [{ BearerAuth: [] }],\n },\n };\n }\n\n // Update One\n if (!isEndpointDisabled(routerConfig, \"updateOne\")) {\n if (!paths[`/api/${routeName}/{id}`]) paths[`/api/${routeName}/{id}`] = {};\n const updateMode = await getSchemaMode(\"update\");\n paths[`/api/${routeName}/{id}`]!.patch = {\n tags: [humanReadableNamePlural],\n summary: `Update ${humanReadableName} by ID`,\n description: `Updates a single ${humanReadableName} record by its unique identifier`,\n operationId: `update${pascalModelName}`,\n parameters: [\n {\n name: \"id\",\n in: \"path\",\n description: `Unique identifier of the ${humanReadableName}`,\n required: true,\n schema: {\n type: \"string\",\n },\n },\n ],\n requestBody: {\n description: `Partial ${humanReadableName} data to update`,\n required: true,\n content: {\n \"application/json\": {\n schema: {\n $ref: getSchemaRef(`Update${pascalModelName}`, updateMode),\n },\n },\n },\n },\n responses: {\n \"200\": {\n description: `${humanReadableName} updated successfully`,\n content: {\n \"application/json\": {\n schema: {\n $ref: getSchemaRef(`${pascalModelName}`, updateMode),\n },\n },\n },\n },\n \"400\": {\n description: \"Invalid input data provided\",\n },\n \"401\": {\n description: \"Authentication required\",\n },\n \"403\": {\n description: \"Insufficient permissions\",\n },\n \"404\": {\n description: `${humanReadableName} not found`,\n },\n },\n security: [{ BearerAuth: [] }],\n };\n }\n\n // Delete One\n if (!isEndpointDisabled(routerConfig, \"deleteOne\")) {\n if (!paths[`/api/${routeName}/{id}`]) paths[`/api/${routeName}/{id}`] = {};\n paths[`/api/${routeName}/{id}`]!.delete = {\n tags: [humanReadableNamePlural],\n summary: `Delete ${humanReadableName} by ID`,\n description: `Permanently deletes a single ${humanReadableName} record by its unique identifier`,\n operationId: `delete${pascalModelName}`,\n parameters: [\n {\n name: \"id\",\n in: \"path\",\n description: `Unique identifier of the ${humanReadableName}`,\n required: true,\n schema: {\n type: \"string\",\n },\n },\n ],\n responses: {\n \"204\": {\n description: `${humanReadableName} deleted successfully`,\n },\n \"401\": {\n description: \"Authentication required\",\n },\n \"403\": {\n description: \"Insufficient permissions\",\n },\n \"404\": {\n description: `${humanReadableName} not found`,\n },\n },\n security: [{ BearerAuth: [] }],\n };\n }\n}\n"]}