@autofleet/sadot 1.1.3 → 1.1.5-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 (331) hide show
  1. package/.nvmrc +1 -0
  2. package/dist/api/index.d.ts +3 -0
  3. package/dist/api/index.js +12 -2
  4. package/dist/api/v1/definition/index.d.ts +3 -0
  5. package/dist/api/v1/definition/index.js +116 -2
  6. package/dist/api/v1/definition/validations.d.ts +2 -0
  7. package/dist/api/v1/definition/validations.js +77 -2
  8. package/dist/api/v1/errors.d.ts +4 -0
  9. package/dist/api/v1/errors.js +12 -2
  10. package/dist/api/v1/index.d.ts +3 -0
  11. package/dist/api/v1/index.js +13 -2
  12. package/dist/api/v1/validator/index.d.ts +3 -0
  13. package/dist/api/v1/validator/index.js +143 -2
  14. package/dist/api/v1/validator/validations.d.ts +6 -23
  15. package/dist/api/v1/validator/validations.js +38 -2
  16. package/dist/errors/index.d.ts +24 -0
  17. package/dist/errors/index.js +66 -3
  18. package/dist/events/index.d.ts +5 -0
  19. package/dist/events/index.js +54 -2
  20. package/dist/hooks/create.d.ts +10 -0
  21. package/dist/hooks/create.js +95 -0
  22. package/dist/hooks/enrich.d.ts +25 -0
  23. package/dist/hooks/enrich.js +198 -2
  24. package/dist/hooks/find.d.ts +1 -0
  25. package/dist/hooks/find.js +29 -2
  26. package/dist/hooks/hooks.d.ts +17 -0
  27. package/dist/hooks/hooks.js +388 -2
  28. package/dist/hooks/index.d.ts +5 -0
  29. package/dist/hooks/index.js +17 -1
  30. package/dist/hooks/update.d.ts +10 -0
  31. package/dist/hooks/update.js +49 -0
  32. package/dist/hooks/utils/updateInstanceValues.d.ts +15 -0
  33. package/dist/hooks/utils/updateInstanceValues.js +50 -2
  34. package/dist/hooks/workaround.d.ts +10 -0
  35. package/dist/hooks/workaround.js +37 -0
  36. package/dist/index.d.ts +12 -22
  37. package/dist/index.js +67 -2
  38. package/dist/models/CustomFieldDefinition.d.ts +23 -29
  39. package/dist/models/CustomFieldDefinition.js +192 -2
  40. package/dist/models/CustomFieldEntries.d.ts +13 -14
  41. package/dist/models/CustomFieldEntries.js +123 -2
  42. package/dist/models/CustomFieldValue.d.ts +14 -20
  43. package/dist/models/CustomFieldValue.js +151 -2
  44. package/dist/models/CustomValidator.d.ts +15 -17
  45. package/dist/models/CustomValidator.js +98 -2
  46. package/dist/models/index.d.ts +18 -6
  47. package/dist/models/index.js +131 -2
  48. package/dist/models/tests/AssociatedTestModel.d.ts +12 -0
  49. package/dist/models/tests/AssociatedTestModel.js +71 -2
  50. package/dist/models/tests/TestModel.d.ts +12 -0
  51. package/dist/models/tests/TestModel.js +69 -2
  52. package/dist/models/tests/contextAwareModels/ContextAwareTestModel.d.ts +10 -0
  53. package/dist/models/tests/contextAwareModels/ContextAwareTestModel.js +53 -2
  54. package/dist/models/tests/contextAwareModels/ContextTestModel.d.ts +13 -0
  55. package/dist/models/tests/contextAwareModels/ContextTestModel.js +47 -2
  56. package/dist/repository/definition.d.ts +36 -0
  57. package/dist/repository/definition.js +121 -2
  58. package/dist/repository/entries.d.ts +13 -0
  59. package/dist/repository/entries.js +92 -2
  60. package/dist/repository/utils/formatValues.d.ts +3 -0
  61. package/dist/repository/utils/formatValues.js +16 -2
  62. package/dist/repository/validator.d.ts +27 -0
  63. package/dist/repository/validator.js +69 -2
  64. package/dist/repository/value.d.ts +28 -0
  65. package/dist/repository/value.js +124 -2
  66. package/dist/scopes/filter.d.ts +29 -22
  67. package/dist/scopes/filter.js +75 -2
  68. package/dist/scopes/helpers/filter.helpers.d.ts +40 -15
  69. package/dist/scopes/helpers/filter.helpers.js +183 -25
  70. package/dist/scopes/index.d.ts +2 -0
  71. package/dist/scopes/index.js +6 -1
  72. package/dist/tests/api/test-api.d.ts +2 -0
  73. package/dist/tests/api/test-api.js +38 -0
  74. package/dist/tests/functional/searching/index.d.ts +8 -0
  75. package/dist/tests/functional/searching/index.js +44 -0
  76. package/dist/tests/helpers/commonHooks.d.ts +6 -0
  77. package/dist/tests/helpers/commonHooks.js +62 -0
  78. package/dist/tests/helpers/database-config.d.ts +16 -0
  79. package/dist/tests/helpers/database-config.js +17 -0
  80. package/dist/tests/helpers/index.d.ts +7 -0
  81. package/dist/tests/helpers/index.js +33 -0
  82. package/dist/tests/mocks/definition.mock.d.ts +48 -0
  83. package/dist/tests/mocks/definition.mock.js +78 -0
  84. package/dist/tests/mocks/events.mock.d.ts +4 -0
  85. package/dist/tests/mocks/events.mock.js +21 -0
  86. package/dist/tests/mocks/testModel.d.ts +12 -0
  87. package/dist/tests/mocks/testModel.js +35 -0
  88. package/dist/types/definition/index.d.ts +25 -0
  89. package/dist/types/definition/index.js +2 -0
  90. package/dist/types/entries/index.d.ts +25 -0
  91. package/dist/types/entries/index.js +2 -0
  92. package/dist/types/index.d.ts +46 -45
  93. package/dist/types/index.js +2 -0
  94. package/dist/types/value/index.d.ts +15 -0
  95. package/dist/types/value/index.js +2 -0
  96. package/dist/utils/constants/index.d.ts +17 -20
  97. package/dist/utils/constants/index.js +22 -2
  98. package/dist/utils/db/index.d.ts +4 -0
  99. package/dist/utils/db/index.js +24 -2
  100. package/dist/utils/helpers/index.d.ts +23 -28
  101. package/dist/utils/helpers/index.js +40 -2
  102. package/dist/utils/init.d.ts +7 -0
  103. package/dist/utils/init.js +112 -2
  104. package/dist/utils/logger/index.d.ts +3 -0
  105. package/dist/utils/logger/index.js +42 -2
  106. package/dist/utils/scopeAttributes.d.ts +2 -0
  107. package/dist/utils/scopeAttributes.js +11 -2
  108. package/dist/utils/validations/index.d.ts +8 -0
  109. package/dist/utils/validations/index.js +41 -2
  110. package/dist/utils/validations/schema/custom-fields.d.ts +2 -6
  111. package/dist/utils/validations/schema/custom-fields.js +9 -2
  112. package/dist/utils/validations/schema/validator-schema.d.ts +9 -0
  113. package/dist/utils/validations/schema/validator-schema.js +95 -2
  114. package/dist/utils/validations/type.d.ts +15 -0
  115. package/dist/utils/validations/type.js +2 -0
  116. package/dist/utils/validations/validators/index.d.ts +14 -0
  117. package/dist/utils/validations/validators/index.js +40 -2
  118. package/dist/utils/validations/validators/select.validator.d.ts +5 -0
  119. package/dist/utils/validations/validators/select.validator.js +12 -2
  120. package/dist/utils/validations/validators/status.validator.d.ts +12 -0
  121. package/dist/utils/validations/validators/status.validator.js +15 -2
  122. package/package.json +39 -40
  123. package/src/api/index.ts +10 -0
  124. package/src/api/v1/definition/index.ts +104 -0
  125. package/src/api/v1/definition/validations.ts +75 -0
  126. package/src/api/v1/errors.ts +13 -0
  127. package/src/api/v1/index.ts +11 -0
  128. package/src/api/v1/validator/index.ts +141 -0
  129. package/src/api/v1/validator/validations.ts +38 -0
  130. package/src/errors/index.ts +70 -0
  131. package/src/events/index.ts +63 -0
  132. package/src/hooks/create.ts +81 -0
  133. package/src/hooks/enrich.ts +255 -0
  134. package/src/hooks/find.ts +27 -0
  135. package/src/hooks/hooks.ts +482 -0
  136. package/src/hooks/index.ts +20 -0
  137. package/src/hooks/update.ts +55 -0
  138. package/src/hooks/utils/updateInstanceValues.ts +63 -0
  139. package/src/hooks/workaround.ts +47 -0
  140. package/src/index.ts +52 -0
  141. package/src/models/CustomFieldDefinition.ts +162 -0
  142. package/src/models/CustomFieldEntries.ts +81 -0
  143. package/src/models/CustomFieldValue.ts +118 -0
  144. package/src/models/CustomValidator.ts +78 -0
  145. package/src/models/index.ts +165 -0
  146. package/src/models/tests/AssociatedTestModel.ts +57 -0
  147. package/src/models/tests/TestModel.ts +54 -0
  148. package/src/models/tests/contextAwareModels/ContextAwareTestModel.ts +43 -0
  149. package/src/models/tests/contextAwareModels/ContextTestModel.ts +38 -0
  150. package/src/repository/definition.ts +175 -0
  151. package/src/repository/entries.ts +88 -0
  152. package/src/repository/utils/formatValues.ts +14 -0
  153. package/src/repository/validator.ts +104 -0
  154. package/src/repository/value.ts +116 -0
  155. package/src/scopes/filter.ts +100 -0
  156. package/src/scopes/helpers/filter.helpers.ts +227 -0
  157. package/src/scopes/index.ts +6 -0
  158. package/src/tests/api/test-api.ts +40 -0
  159. package/src/tests/functional/searching/index.ts +39 -0
  160. package/src/tests/helpers/commonHooks.ts +43 -0
  161. package/src/tests/helpers/database-config.ts +15 -0
  162. package/src/tests/helpers/index.ts +35 -0
  163. package/src/tests/mocks/definition.mock.ts +84 -0
  164. package/src/tests/mocks/events.mock.ts +21 -0
  165. package/src/tests/mocks/testModel.ts +37 -0
  166. package/src/types/definition/index.ts +24 -0
  167. package/src/types/entries/index.ts +27 -0
  168. package/src/types/index.ts +52 -0
  169. package/src/types/value/index.ts +14 -0
  170. package/src/utils/constants/index.ts +25 -0
  171. package/src/utils/db/index.ts +21 -0
  172. package/src/utils/helpers/index.ts +66 -0
  173. package/src/utils/init.ts +120 -0
  174. package/src/utils/logger/index.ts +14 -0
  175. package/src/utils/scopeAttributes.ts +12 -0
  176. package/src/utils/validations/index.ts +46 -0
  177. package/src/utils/validations/schema/README.md +93 -0
  178. package/src/utils/validations/schema/custom-fields.ts +8 -0
  179. package/src/utils/validations/schema/validator-schema.ts +106 -0
  180. package/src/utils/validations/type.ts +20 -0
  181. package/src/utils/validations/validators/index.ts +38 -0
  182. package/src/utils/validations/validators/select.validator.ts +12 -0
  183. package/src/utils/validations/validators/status.validator.ts +22 -0
  184. package/tsconfig.build.json +7 -0
  185. package/tsconfig.json +16 -0
  186. package/dist/_virtual/_@oxc-project_runtime@0.101.0/helpers/decorate.cjs +0 -1
  187. package/dist/_virtual/_@oxc-project_runtime@0.101.0/helpers/decorate.js +0 -1
  188. package/dist/_virtual/_@oxc-project_runtime@0.101.0/helpers/decorateMetadata.cjs +0 -1
  189. package/dist/_virtual/_@oxc-project_runtime@0.101.0/helpers/decorateMetadata.js +0 -1
  190. package/dist/_virtual/rolldown_runtime.cjs +0 -1
  191. package/dist/api/index.cjs +0 -2
  192. package/dist/api/index.cjs.map +0 -1
  193. package/dist/api/index.js.map +0 -1
  194. package/dist/api/v1/definition/index.cjs +0 -2
  195. package/dist/api/v1/definition/index.cjs.map +0 -1
  196. package/dist/api/v1/definition/index.js.map +0 -1
  197. package/dist/api/v1/definition/validations.cjs +0 -2
  198. package/dist/api/v1/definition/validations.cjs.map +0 -1
  199. package/dist/api/v1/definition/validations.js.map +0 -1
  200. package/dist/api/v1/errors.cjs +0 -2
  201. package/dist/api/v1/errors.cjs.map +0 -1
  202. package/dist/api/v1/errors.js.map +0 -1
  203. package/dist/api/v1/index.cjs +0 -2
  204. package/dist/api/v1/index.cjs.map +0 -1
  205. package/dist/api/v1/index.js.map +0 -1
  206. package/dist/api/v1/validator/index.cjs +0 -2
  207. package/dist/api/v1/validator/index.cjs.map +0 -1
  208. package/dist/api/v1/validator/index.js.map +0 -1
  209. package/dist/api/v1/validator/validations.cjs +0 -2
  210. package/dist/api/v1/validator/validations.cjs.map +0 -1
  211. package/dist/api/v1/validator/validations.d.cts +0 -23
  212. package/dist/api/v1/validator/validations.js.map +0 -1
  213. package/dist/errors/index.cjs +0 -3
  214. package/dist/errors/index.cjs.map +0 -1
  215. package/dist/errors/index.js.map +0 -1
  216. package/dist/events/index.cjs +0 -2
  217. package/dist/events/index.cjs.map +0 -1
  218. package/dist/events/index.js.map +0 -1
  219. package/dist/hooks/enrich.cjs +0 -2
  220. package/dist/hooks/enrich.cjs.map +0 -1
  221. package/dist/hooks/enrich.js.map +0 -1
  222. package/dist/hooks/find.cjs +0 -2
  223. package/dist/hooks/find.cjs.map +0 -1
  224. package/dist/hooks/find.js.map +0 -1
  225. package/dist/hooks/hooks.cjs +0 -2
  226. package/dist/hooks/hooks.cjs.map +0 -1
  227. package/dist/hooks/hooks.js.map +0 -1
  228. package/dist/hooks/index.cjs +0 -1
  229. package/dist/hooks/utils/updateInstanceValues.cjs +0 -2
  230. package/dist/hooks/utils/updateInstanceValues.cjs.map +0 -1
  231. package/dist/hooks/utils/updateInstanceValues.js.map +0 -1
  232. package/dist/index.cjs +0 -2
  233. package/dist/index.cjs.map +0 -1
  234. package/dist/index.d.cts +0 -23
  235. package/dist/index.js.map +0 -1
  236. package/dist/models/CustomFieldDefinition.cjs +0 -2
  237. package/dist/models/CustomFieldDefinition.cjs.map +0 -1
  238. package/dist/models/CustomFieldDefinition.d.cts +0 -31
  239. package/dist/models/CustomFieldDefinition.js.map +0 -1
  240. package/dist/models/CustomFieldEntries.cjs +0 -2
  241. package/dist/models/CustomFieldEntries.cjs.map +0 -1
  242. package/dist/models/CustomFieldEntries.d.cts +0 -16
  243. package/dist/models/CustomFieldEntries.js.map +0 -1
  244. package/dist/models/CustomFieldValue.cjs +0 -2
  245. package/dist/models/CustomFieldValue.cjs.map +0 -1
  246. package/dist/models/CustomFieldValue.d.cts +0 -22
  247. package/dist/models/CustomFieldValue.js.map +0 -1
  248. package/dist/models/CustomValidator.cjs +0 -2
  249. package/dist/models/CustomValidator.cjs.map +0 -1
  250. package/dist/models/CustomValidator.d.cts +0 -19
  251. package/dist/models/CustomValidator.js.map +0 -1
  252. package/dist/models/index.cjs +0 -2
  253. package/dist/models/index.cjs.map +0 -1
  254. package/dist/models/index.d.cts +0 -6
  255. package/dist/models/index.js.map +0 -1
  256. package/dist/models/tests/AssociatedTestModel.cjs +0 -2
  257. package/dist/models/tests/AssociatedTestModel.cjs.map +0 -1
  258. package/dist/models/tests/AssociatedTestModel.js.map +0 -1
  259. package/dist/models/tests/TestModel.cjs +0 -2
  260. package/dist/models/tests/TestModel.cjs.map +0 -1
  261. package/dist/models/tests/TestModel.js.map +0 -1
  262. package/dist/models/tests/contextAwareModels/ContextAwareTestModel.cjs +0 -2
  263. package/dist/models/tests/contextAwareModels/ContextAwareTestModel.cjs.map +0 -1
  264. package/dist/models/tests/contextAwareModels/ContextAwareTestModel.js.map +0 -1
  265. package/dist/models/tests/contextAwareModels/ContextTestModel.cjs +0 -2
  266. package/dist/models/tests/contextAwareModels/ContextTestModel.cjs.map +0 -1
  267. package/dist/models/tests/contextAwareModels/ContextTestModel.js.map +0 -1
  268. package/dist/repository/definition.cjs +0 -2
  269. package/dist/repository/definition.cjs.map +0 -1
  270. package/dist/repository/definition.js.map +0 -1
  271. package/dist/repository/entries.cjs +0 -2
  272. package/dist/repository/entries.cjs.map +0 -1
  273. package/dist/repository/entries.js.map +0 -1
  274. package/dist/repository/utils/formatValues.cjs +0 -2
  275. package/dist/repository/utils/formatValues.cjs.map +0 -1
  276. package/dist/repository/utils/formatValues.js.map +0 -1
  277. package/dist/repository/validator.cjs +0 -2
  278. package/dist/repository/validator.cjs.map +0 -1
  279. package/dist/repository/validator.js.map +0 -1
  280. package/dist/repository/value.cjs +0 -2
  281. package/dist/repository/value.cjs.map +0 -1
  282. package/dist/repository/value.js.map +0 -1
  283. package/dist/scopes/filter.cjs +0 -2
  284. package/dist/scopes/filter.cjs.map +0 -1
  285. package/dist/scopes/filter.d.cts +0 -23
  286. package/dist/scopes/filter.js.map +0 -1
  287. package/dist/scopes/helpers/filter.helpers.cjs +0 -46
  288. package/dist/scopes/helpers/filter.helpers.cjs.map +0 -1
  289. package/dist/scopes/helpers/filter.helpers.d.cts +0 -17
  290. package/dist/scopes/helpers/filter.helpers.js.map +0 -1
  291. package/dist/scopes/index.cjs +0 -1
  292. package/dist/types/index.d.cts +0 -45
  293. package/dist/utils/constants/index.cjs +0 -2
  294. package/dist/utils/constants/index.cjs.map +0 -1
  295. package/dist/utils/constants/index.d.cts +0 -22
  296. package/dist/utils/constants/index.js.map +0 -1
  297. package/dist/utils/db/index.cjs +0 -2
  298. package/dist/utils/db/index.cjs.map +0 -1
  299. package/dist/utils/db/index.js.map +0 -1
  300. package/dist/utils/helpers/index.cjs +0 -2
  301. package/dist/utils/helpers/index.cjs.map +0 -1
  302. package/dist/utils/helpers/index.d.cts +0 -31
  303. package/dist/utils/helpers/index.js.map +0 -1
  304. package/dist/utils/init.cjs +0 -2
  305. package/dist/utils/init.cjs.map +0 -1
  306. package/dist/utils/init.js.map +0 -1
  307. package/dist/utils/logger/index.cjs +0 -2
  308. package/dist/utils/logger/index.cjs.map +0 -1
  309. package/dist/utils/logger/index.js.map +0 -1
  310. package/dist/utils/scopeAttributes.cjs +0 -2
  311. package/dist/utils/scopeAttributes.cjs.map +0 -1
  312. package/dist/utils/scopeAttributes.js.map +0 -1
  313. package/dist/utils/validations/index.cjs +0 -2
  314. package/dist/utils/validations/index.cjs.map +0 -1
  315. package/dist/utils/validations/index.js.map +0 -1
  316. package/dist/utils/validations/schema/custom-fields.cjs +0 -2
  317. package/dist/utils/validations/schema/custom-fields.cjs.map +0 -1
  318. package/dist/utils/validations/schema/custom-fields.d.cts +0 -7
  319. package/dist/utils/validations/schema/custom-fields.js.map +0 -1
  320. package/dist/utils/validations/schema/validator-schema.cjs +0 -2
  321. package/dist/utils/validations/schema/validator-schema.cjs.map +0 -1
  322. package/dist/utils/validations/schema/validator-schema.js.map +0 -1
  323. package/dist/utils/validations/validators/index.cjs +0 -2
  324. package/dist/utils/validations/validators/index.cjs.map +0 -1
  325. package/dist/utils/validations/validators/index.js.map +0 -1
  326. package/dist/utils/validations/validators/select.validator.cjs +0 -2
  327. package/dist/utils/validations/validators/select.validator.cjs.map +0 -1
  328. package/dist/utils/validations/validators/select.validator.js.map +0 -1
  329. package/dist/utils/validations/validators/status.validator.cjs +0 -2
  330. package/dist/utils/validations/validators/status.validator.cjs.map +0 -1
  331. package/dist/utils/validations/validators/status.validator.js.map +0 -1
package/.nvmrc ADDED
@@ -0,0 +1 @@
1
+ 22.9.0
@@ -0,0 +1,3 @@
1
+ /// <reference types="express" />
2
+ declare const router: import("express").Router;
3
+ export default router;
package/dist/api/index.js CHANGED
@@ -1,2 +1,12 @@
1
- import e from"../utils/logger/index.js";import t from"./v1/index.js";import{Router as n}from"@autofleet/node-common";const r=n({logger:e});r.use(`/v1`,t);var i=r;export{i as default};
2
- //# sourceMappingURL=index.js.map
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
+ // export the api object
7
+ const node_common_1 = require("@autofleet/node-common");
8
+ const v1_1 = __importDefault(require("./v1"));
9
+ const logger_1 = __importDefault(require("../utils/logger"));
10
+ const router = (0, node_common_1.Router)({ logger: logger_1.default });
11
+ router.use('/v1', v1_1.default);
12
+ exports.default = router;
@@ -0,0 +1,3 @@
1
+ /// <reference types="express" />
2
+ declare const router: import("express").Router;
3
+ export default router;
@@ -1,2 +1,116 @@
1
- import e from"../../../utils/logger/index.js";import{create as t,findAll as n,findById as r,findByWhere as i,update as a}from"../../../repository/definition.js";import o from"../errors.js";import{validateCustomFieldDefinitionCreation as s,validateCustomFieldDefinitionUpdate as c}from"./validations.js";import{ResourceNotFoundError as l}from"@autofleet/errors";import{Router as u}from"@autofleet/node-common";const d=u({logger:e}),f=`CustomFieldDefinition`,p=e=>e.replace(/(^\w|-\w)/g,e=>e.replace(/-/,``).toUpperCase());d.post(`/`,async(n,r)=>{let{modelName:i}=n.params,a=p(i);try{let e=await t({...await s(n.body),modelType:a});return r.status(201).json(e)}catch(t){return e.error(`Failed to create custom field definition`,t),o(t,r,{logger:e,message:`Error in create ${f} request`})}}),d.get(`/:customFieldDefinitionId`,async(t,n)=>{let{customFieldDefinitionId:i}=t.params;try{let e=await r(i);if(!e)throw new l;return n.json(e)}catch(t){return e.error(`Failed to fetch custom field definition`,t),o(t,n,{logger:e,message:`Error in get ${f} request`})}}),d.get(`/`,async(t,r)=>{let{params:{modelName:i},query:{entityIds:a}}=t,s=p(i);try{let e=await n({modelType:s,...a&&a.length>0&&{entityId:a}},{withDisabled:!0});return r.json(e)}catch(t){return e.error(`Failed to fetch custom field definitions`,t),o(t,r,{logger:e,message:`Error in get all ${f} request`})}}),d.patch(`/:customFieldDefinitionId`,async(t,n)=>{let{customFieldDefinitionId:r,modelName:s}=t.params,u=p(s);try{let e=await c(t.body);if(!await i({id:r,modelType:u}))throw new l;let o=await a(r,{...e,modelType:u});return n.status(200).json(o)}catch(t){return e.error(`Failed to patch custom field definition`,t),o(t,n,{logger:e,message:`Error in update ${f} request`})}});var m=d;export{m as default};
2
- //# sourceMappingURL=index.js.map
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ const errors_1 = require("@autofleet/errors");
30
+ const node_common_1 = require("@autofleet/node-common");
31
+ const errors_2 = __importDefault(require("../errors"));
32
+ const DefinitionRepo = __importStar(require("../../../repository/definition"));
33
+ const validations_1 = require("./validations");
34
+ const logger_1 = __importDefault(require("../../../utils/logger"));
35
+ const router = (0, node_common_1.Router)({ logger: logger_1.default });
36
+ const ENTITY = 'CustomFieldDefinition';
37
+ const toPascalCase = (str) => str.replace(/(^\w|-\w)/g, (subStr) => subStr.replace(/-/, '').toUpperCase());
38
+ /**
39
+ * Create
40
+ */
41
+ router.post('/', async (req, res) => {
42
+ const { modelName } = req.params;
43
+ const modelType = toPascalCase(modelName);
44
+ try {
45
+ const validatedPayload = await (0, validations_1.validateCustomFieldDefinitionCreation)(req.body);
46
+ const customFieldDefinition = await DefinitionRepo.create({
47
+ ...validatedPayload,
48
+ modelType,
49
+ });
50
+ return res.status(201).json(customFieldDefinition);
51
+ }
52
+ catch (err) {
53
+ logger_1.default.error('Failed to create custom field definition', err);
54
+ return (0, errors_2.default)(err, res, { logger: logger_1.default, message: `Error in create ${ENTITY} request` });
55
+ }
56
+ });
57
+ /**
58
+ * Get by id
59
+ */
60
+ router.get('/:customFieldDefinitionId', async (req, res) => {
61
+ const { customFieldDefinitionId } = req.params;
62
+ try {
63
+ const customFieldDefinition = await DefinitionRepo.findById(customFieldDefinitionId);
64
+ if (!customFieldDefinition) {
65
+ throw new errors_1.ResourceNotFoundError();
66
+ }
67
+ return res.json(customFieldDefinition);
68
+ }
69
+ catch (err) {
70
+ logger_1.default.error('Failed to fetch custom field definition', err);
71
+ return (0, errors_2.default)(err, res, { logger: logger_1.default, message: `Error in get ${ENTITY} request` });
72
+ }
73
+ });
74
+ /**
75
+ * Get all
76
+ */
77
+ router.get('/', async (req, res) => {
78
+ const { params: { modelName }, query: { entityIds } } = req;
79
+ const modelType = toPascalCase(modelName);
80
+ try {
81
+ const where = {
82
+ modelType,
83
+ ...(entityIds?.length > 0 && { entityId: entityIds }),
84
+ };
85
+ const customFieldDefinitions = await DefinitionRepo.findAll(where, { withDisabled: true });
86
+ return res.json(customFieldDefinitions);
87
+ }
88
+ catch (err) {
89
+ logger_1.default.error('Failed to fetch custom field definitions', err);
90
+ return (0, errors_2.default)(err, res, { logger: logger_1.default, message: `Error in get all ${ENTITY} request` });
91
+ }
92
+ });
93
+ /**
94
+ * Update
95
+ */
96
+ router.patch('/:customFieldDefinitionId', async (req, res) => {
97
+ const { customFieldDefinitionId, modelName } = req.params;
98
+ const modelType = toPascalCase(modelName);
99
+ try {
100
+ const validatedPayload = await (0, validations_1.validateCustomFieldDefinitionUpdate)(req.body);
101
+ const customFieldDefinition = await DefinitionRepo.findByWhere({
102
+ id: customFieldDefinitionId,
103
+ modelType,
104
+ });
105
+ if (!customFieldDefinition) {
106
+ throw new errors_1.ResourceNotFoundError();
107
+ }
108
+ const updatedCustomFieldDefinition = await DefinitionRepo.update(customFieldDefinitionId, { ...validatedPayload, modelType });
109
+ return res.status(200).json(updatedCustomFieldDefinition);
110
+ }
111
+ catch (err) {
112
+ logger_1.default.error('Failed to patch custom field definition', err);
113
+ return (0, errors_2.default)(err, res, { logger: logger_1.default, message: `Error in update ${ENTITY} request` });
114
+ }
115
+ });
116
+ exports.default = router;
@@ -0,0 +1,2 @@
1
+ export declare const validateCustomFieldDefinitionCreation: (payload: any) => Promise<any>;
2
+ export declare const validateCustomFieldDefinitionUpdate: (payload: any) => Promise<any>;
@@ -1,2 +1,77 @@
1
- import{CustomFieldDefinitionType as e}from"../../../utils/constants/index.js";import t from"joi";const n=t.object({name:t.string().required(),type:t.string(),size:t.string(),addedBy:t.string().uuid()}),r=t.object({value:t.string().required(),color:t.string().required()}),i=t.when(`fieldType`,{is:e.SELECT,then:t.array().required().items(t.string()).min(1).unique(),otherwise:t.when(`fieldType`,{is:e.STATUS,then:t.array().required().items(r).min(1).unique(`value`),otherwise:t.forbidden()})}),a=t.when(`fieldType`,{switch:[{is:e.BOOLEAN,then:t.boolean().allow(null)},{is:e.DATE,then:t.date().allow(null)},{is:e.DATETIME,then:t.date().allow(null)},{is:e.FILE,then:t.array().items(n).allow(null)},{is:e.IMAGE,then:t.array().items(t.string().uri()).allow(null)},{is:e.NUMBER,then:t.number().allow(null)},{is:e.SELECT,then:t.string().allow(null)},{is:e.STATUS,then:t.string().allow(null)},{is:e.TEXT,then:t.string().allow(null)}]}),o=t.object({name:t.string().required(),displayName:t.string().required(),validation:i,defaultValue:a,fieldType:t.string().valid(...Object.values(e)).required(),entityId:t.string().guid().required(),entityType:t.string().required(),description:t.string(),required:t.boolean(),disabled:t.boolean(),blockEditingFromUI:t.boolean()}).oxor(`required`,`blockEditingFromUI`,{isPresent:e=>e===!0}),s=t.object({displayName:t.string(),validation:i,defaultValue:a,fieldType:t.string().valid(...Object.values(e)),description:t.string().allow(null),required:t.boolean(),disabled:t.boolean(),blockEditingFromUI:t.boolean()}).oxor(`required`,`blockEditingFromUI`,{isPresent:e=>e===!0}),c=e=>o.validateAsync(e,{abortEarly:!1}),l=e=>s.validateAsync(e,{abortEarly:!1});export{c as validateCustomFieldDefinitionCreation,l as validateCustomFieldDefinitionUpdate};
2
- //# sourceMappingURL=validations.js.map
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.validateCustomFieldDefinitionUpdate = exports.validateCustomFieldDefinitionCreation = void 0;
7
+ /* eslint-disable newline-per-chained-call */
8
+ const joi_1 = __importDefault(require("joi"));
9
+ const constants_1 = require("../../../utils/constants");
10
+ const FileValidationSchema = joi_1.default.object({
11
+ name: joi_1.default.string().required(),
12
+ type: joi_1.default.string(),
13
+ size: joi_1.default.string(),
14
+ addedBy: joi_1.default.string().uuid(),
15
+ });
16
+ const statusValidationObject = joi_1.default.object({
17
+ value: joi_1.default.string().required(),
18
+ color: joi_1.default.string().required(),
19
+ });
20
+ /**
21
+ * Schema for the validation of custom field definition
22
+ * The only custom validation is for
23
+ * {@link CustomFieldDefinitionType.SELECT SELECT}
24
+ * and
25
+ * {@link CustomFieldDefinitionType.STATUS STATUS}
26
+ * field types.
27
+ * The rest of the field types are validated by Joi
28
+ */
29
+ const ValidationSchema = joi_1.default.when('fieldType', {
30
+ is: constants_1.CustomFieldDefinitionType.SELECT,
31
+ then: joi_1.default.array().required().items(joi_1.default.string()).min(1).unique(),
32
+ otherwise: joi_1.default.when('fieldType', {
33
+ is: constants_1.CustomFieldDefinitionType.STATUS,
34
+ then: joi_1.default.array().required().items(statusValidationObject).min(1).unique('value'),
35
+ otherwise: joi_1.default.forbidden(),
36
+ }),
37
+ });
38
+ const DefaultValueSchema = joi_1.default.when('fieldType', {
39
+ switch: [
40
+ { is: constants_1.CustomFieldDefinitionType.BOOLEAN, then: joi_1.default.boolean().allow(null) },
41
+ { is: constants_1.CustomFieldDefinitionType.DATE, then: joi_1.default.date().allow(null) },
42
+ { is: constants_1.CustomFieldDefinitionType.DATETIME, then: joi_1.default.date().allow(null) },
43
+ { is: constants_1.CustomFieldDefinitionType.FILE, then: joi_1.default.array().items(FileValidationSchema).allow(null) },
44
+ { is: constants_1.CustomFieldDefinitionType.IMAGE, then: joi_1.default.array().items(joi_1.default.string().uri()).allow(null) },
45
+ { is: constants_1.CustomFieldDefinitionType.NUMBER, then: joi_1.default.number().allow(null) },
46
+ { is: constants_1.CustomFieldDefinitionType.SELECT, then: joi_1.default.string().allow(null) },
47
+ { is: constants_1.CustomFieldDefinitionType.STATUS, then: joi_1.default.string().allow(null) },
48
+ { is: constants_1.CustomFieldDefinitionType.TEXT, then: joi_1.default.string().allow(null) },
49
+ ],
50
+ });
51
+ const CustomFieldDefinitionCreationSchema = joi_1.default.object({
52
+ name: joi_1.default.string().required(),
53
+ displayName: joi_1.default.string().required(),
54
+ validation: ValidationSchema,
55
+ defaultValue: DefaultValueSchema,
56
+ fieldType: joi_1.default.string().valid(...Object.values(constants_1.CustomFieldDefinitionType)).required(),
57
+ entityId: joi_1.default.string().guid().required(),
58
+ entityType: joi_1.default.string().required(),
59
+ description: joi_1.default.string(),
60
+ required: joi_1.default.boolean(),
61
+ disabled: joi_1.default.boolean(),
62
+ blockEditingFromUI: joi_1.default.boolean(),
63
+ }).oxor('required', 'blockEditingFromUI', { isPresent: (value) => value === true });
64
+ const CustomFieldDefinitionUpdateSchema = joi_1.default.object({
65
+ displayName: joi_1.default.string(),
66
+ validation: ValidationSchema,
67
+ defaultValue: DefaultValueSchema,
68
+ fieldType: joi_1.default.string().valid(...Object.values(constants_1.CustomFieldDefinitionType)),
69
+ description: joi_1.default.string().allow(null),
70
+ required: joi_1.default.boolean(),
71
+ disabled: joi_1.default.boolean(),
72
+ blockEditingFromUI: joi_1.default.boolean(),
73
+ }).oxor('required', 'blockEditingFromUI', { isPresent: (value) => value === true });
74
+ const validateCustomFieldDefinitionCreation = (payload) => CustomFieldDefinitionCreationSchema.validateAsync(payload, { abortEarly: false });
75
+ exports.validateCustomFieldDefinitionCreation = validateCustomFieldDefinitionCreation;
76
+ const validateCustomFieldDefinitionUpdate = (payload) => CustomFieldDefinitionUpdateSchema.validateAsync(payload, { abortEarly: false });
77
+ exports.validateCustomFieldDefinitionUpdate = validateCustomFieldDefinitionUpdate;
@@ -0,0 +1,4 @@
1
+ import type { Response } from 'express';
2
+ import { type LogPayload } from '@autofleet/errors';
3
+ declare const _default: (err: any, res: Response, additionalData?: LogPayload) => void;
4
+ export default _default;
@@ -1,2 +1,12 @@
1
- import{ValidationError as e}from"sequelize";import{ValidationError as t}from"joi";import{BadRequest as n,handleError as r}from"@autofleet/errors";var i=(i,a,o)=>{let s=i;return[t,e].some(e=>i instanceof e)&&(s=new n([i])),r(s,a,o)};export{i as default};
2
- //# sourceMappingURL=errors.js.map
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const errors_1 = require("@autofleet/errors");
4
+ const joi_1 = require("joi");
5
+ const sequelize_1 = require("sequelize");
6
+ exports.default = (err, res, additionalData = undefined) => {
7
+ let error = err;
8
+ if ([joi_1.ValidationError, sequelize_1.ValidationError].some((ErrClass) => err instanceof ErrClass)) {
9
+ error = new errors_1.BadRequest([err], null);
10
+ }
11
+ return (0, errors_1.handleError)(error, res, additionalData);
12
+ };
@@ -0,0 +1,3 @@
1
+ /// <reference types="express" />
2
+ declare const router: import("express").Router;
3
+ export default router;
@@ -1,2 +1,13 @@
1
- import e from"../../utils/logger/index.js";import t from"./definition/index.js";import n from"./validator/index.js";import{Router as r}from"@autofleet/node-common";const i=r({logger:e});i.use(`/custom-field-definitions/:modelName`,t),i.use(`/custom-validators/:modelName`,n);var a=i;export{a as default};
2
- //# sourceMappingURL=index.js.map
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
+ const node_common_1 = require("@autofleet/node-common");
7
+ const logger_1 = __importDefault(require("../../utils/logger"));
8
+ const definition_1 = __importDefault(require("./definition"));
9
+ const validator_1 = __importDefault(require("./validator"));
10
+ const router = (0, node_common_1.Router)({ logger: logger_1.default });
11
+ router.use('/custom-field-definitions/:modelName', definition_1.default);
12
+ router.use('/custom-validators/:modelName', validator_1.default);
13
+ exports.default = router;
@@ -0,0 +1,3 @@
1
+ /// <reference types="express" />
2
+ declare const router: import("express").Router;
3
+ export default router;
@@ -1,2 +1,143 @@
1
- import e from"../../../utils/logger/index.js";import t from"../errors.js";import{create as n,disable as r,findAll as i,update as a}from"../../../repository/validator.js";import o from"./validations.js";import{validateValidatorSchema as s}from"../../../utils/validations/schema/validator-schema.js";import{ResourceNotFoundError as c}from"@autofleet/errors";import{Router as l}from"@autofleet/node-common";import{StatusCodes as u}from"http-status-codes";const d=l({logger:e}),f=`CustomValidator`;d.post(`/`,async(r,i)=>{let{modelName:a}=r.params;try{let e=await o.create.validateAsync(r.body);s(e.schema);let t=await n({...e,modelType:a});return i.status(u.CREATED).json(t)}catch(n){return t(n,i,{logger:e,message:`Error in create ${f} request`})}}),d.get(`/`,async(n,r)=>{try{let{modelName:e}=n.params,{entityId:t,entityType:a}=n.query,o=await i({modelType:e,...t&&{entityId:t},...a&&{entityType:a}});return r.status(u.OK).json({validators:o})}catch(n){return t(n,r,{logger:e,message:`Error in get all ${f} request`})}}),d.get(`/:validatorId`,async(n,r)=>{try{let{validatorId:e,modelName:t}=n.params,a=await i({id:e,modelType:t},{withDisabled:!0});if(!a.length)throw new c(`Validator not found`);return r.status(u.OK).json(a[0])}catch(n){return t(n,r,{logger:e,message:`Error in get ${f} request`})}}),d.patch(`/:validatorId`,async(n,r)=>{try{let{validatorId:e}=n.params,t=await o.update.validateAsync(n.body);if(t.schema&&s(t.schema),!(await i({id:e},{withDisabled:!0})).length)throw new c(`Validator not found`);let[l,d]=await a(e,t);if(!l)throw new c(`Validator not found`);return r.status(u.OK).json(d[0])}catch(n){return t(n,r,{logger:e,message:`Error in update ${f} request`})}}),d.delete(`/:validatorId`,async(n,a)=>{try{let{validatorId:e}=n.params;if(!(await i({id:e},{withDisabled:!0})).length)throw new c(`Validator not found`);let[t]=await r(e);if(!t)throw new c(`Validator failed to be disabled`);return a.status(u.NO_CONTENT).send()}catch(n){return t(n,a,{logger:e,message:`Error in delete ${f} request`})}});var p=d;export{p as default};
2
- //# sourceMappingURL=index.js.map
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ const errors_1 = require("@autofleet/errors");
30
+ const node_common_1 = require("@autofleet/node-common");
31
+ const http_status_codes_1 = require("http-status-codes");
32
+ const errors_2 = __importDefault(require("../errors"));
33
+ const ValidatorRepo = __importStar(require("../../../repository/validator"));
34
+ const validations_1 = __importDefault(require("./validations"));
35
+ const logger_1 = __importDefault(require("../../../utils/logger"));
36
+ const validator_schema_1 = require("../../../utils/validations/schema/validator-schema");
37
+ const router = (0, node_common_1.Router)({ logger: logger_1.default });
38
+ const ENTITY = 'CustomValidator';
39
+ /**
40
+ * Create
41
+ */
42
+ router.post('/', async (req, res) => {
43
+ const { modelName } = req.params;
44
+ try {
45
+ // Validate the request body
46
+ const validatedPayload = await validations_1.default.create.validateAsync(req.body);
47
+ // Validate that the schema is a valid AJV schema
48
+ (0, validator_schema_1.validateValidatorSchema)(validatedPayload.schema);
49
+ const validator = await ValidatorRepo.create({
50
+ ...validatedPayload,
51
+ modelType: modelName,
52
+ });
53
+ return res.status(http_status_codes_1.StatusCodes.CREATED).json(validator);
54
+ }
55
+ catch (err) {
56
+ return (0, errors_2.default)(err, res, { logger: logger_1.default, message: `Error in create ${ENTITY} request` });
57
+ }
58
+ });
59
+ /**
60
+ * Get all
61
+ */
62
+ router.get('/', async (req, res) => {
63
+ try {
64
+ const { modelName } = req.params;
65
+ const { entityId, entityType } = req.query;
66
+ const where = {
67
+ modelType: modelName,
68
+ ...(entityId && { entityId }),
69
+ ...(entityType && { entityType }),
70
+ };
71
+ const validators = await ValidatorRepo.findAll(where);
72
+ return res.status(http_status_codes_1.StatusCodes.OK).json({ validators });
73
+ }
74
+ catch (err) {
75
+ return (0, errors_2.default)(err, res, { logger: logger_1.default, message: `Error in get all ${ENTITY} request` });
76
+ }
77
+ });
78
+ /**
79
+ * Get by id
80
+ */
81
+ router.get('/:validatorId', async (req, res) => {
82
+ try {
83
+ const { validatorId, modelName } = req.params;
84
+ // Include disabled validators when fetching by ID
85
+ const validators = await ValidatorRepo.findAll({ id: validatorId, modelType: modelName }, { withDisabled: true });
86
+ if (!validators.length) {
87
+ throw new errors_1.ResourceNotFoundError('Validator not found');
88
+ }
89
+ return res.status(http_status_codes_1.StatusCodes.OK).json(validators[0]);
90
+ }
91
+ catch (err) {
92
+ return (0, errors_2.default)(err, res, { logger: logger_1.default, message: `Error in get ${ENTITY} request` });
93
+ }
94
+ });
95
+ /**
96
+ * Update
97
+ */
98
+ router.patch('/:validatorId', async (req, res) => {
99
+ try {
100
+ const { validatorId } = req.params;
101
+ // Validate the request body
102
+ const validatedPayload = await validations_1.default.update.validateAsync(req.body);
103
+ // If schema is included in the update, validate that it's a valid AJV schema
104
+ if (validatedPayload.schema) {
105
+ (0, validator_schema_1.validateValidatorSchema)(validatedPayload.schema);
106
+ }
107
+ // First verify the validator exists, including disabled ones
108
+ const existingValidators = await ValidatorRepo.findAll({ id: validatorId }, { withDisabled: true });
109
+ if (!existingValidators.length) {
110
+ throw new errors_1.ResourceNotFoundError('Validator not found');
111
+ }
112
+ const [count, validators] = await ValidatorRepo.update(validatorId, validatedPayload);
113
+ if (!count) {
114
+ throw new errors_1.ResourceNotFoundError('Validator not found');
115
+ }
116
+ return res.status(http_status_codes_1.StatusCodes.OK).json(validators[0]);
117
+ }
118
+ catch (err) {
119
+ return (0, errors_2.default)(err, res, { logger: logger_1.default, message: `Error in update ${ENTITY} request` });
120
+ }
121
+ });
122
+ /**
123
+ * Delete (disable)
124
+ */
125
+ router.delete('/:validatorId', async (req, res) => {
126
+ try {
127
+ const { validatorId } = req.params;
128
+ // First verify the validator exists, including disabled ones
129
+ const existingValidators = await ValidatorRepo.findAll({ id: validatorId }, { withDisabled: true });
130
+ if (!existingValidators.length) {
131
+ throw new errors_1.ResourceNotFoundError('Validator not found');
132
+ }
133
+ const [count] = await ValidatorRepo.disable(validatorId);
134
+ if (!count) {
135
+ throw new errors_1.ResourceNotFoundError('Validator failed to be disabled');
136
+ }
137
+ return res.status(http_status_codes_1.StatusCodes.NO_CONTENT).send();
138
+ }
139
+ catch (err) {
140
+ return (0, errors_2.default)(err, res, { logger: logger_1.default, message: `Error in delete ${ENTITY} request` });
141
+ }
142
+ });
143
+ exports.default = router;
@@ -1,23 +1,6 @@
1
- import Joi from "joi";
2
-
3
- //#region src/api/v1/validator/validations.d.ts
4
- interface SchemaObject {
5
- type: "object";
6
- properties?: {
7
- before?: object;
8
- after?: object;
9
- };
10
- required?: string[];
11
- allOf?: object[];
12
- anyOf?: object[];
13
- oneOf?: object[];
14
- additionalProperties?: boolean | object;
15
- $id?: string;
16
- $schema?: string;
17
- if?: object;
18
- then?: object;
19
- else?: object;
20
- }
21
- //#endregion
22
- export { SchemaObject };
23
- //# sourceMappingURL=validations.d.ts.map
1
+ import Joi from 'joi';
2
+ declare const validationSchemas: {
3
+ create: Joi.ObjectSchema<any>;
4
+ update: Joi.ObjectSchema<any>;
5
+ };
6
+ export default validationSchemas;
@@ -1,2 +1,38 @@
1
- import e from"joi";const t=e.object().unknown(!0),n=e.object({type:e.string().valid(`object`),properties:e.object({before:t,after:t}).required(),required:e.array().items(e.string()),allOf:e.array().items(e.object()),anyOf:e.array().items(e.object()),oneOf:e.array().items(e.object()),additionalProperties:e.alternatives().try(e.boolean(),e.object()),$id:e.string(),$schema:e.string(),if:e.object(),then:e.object(),else:e.object()});var r={create:e.object({entityId:e.string().uuid().required(),entityType:e.string().required(),schema:n.required()}),update:e.object({entityId:e.string().uuid(),entityType:e.string(),schema:n,disabled:e.boolean()}).min(1)};export{r as default};
2
- //# sourceMappingURL=validations.js.map
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
+ const joi_1 = __importDefault(require("joi"));
7
+ const jsonSchemaValidation = joi_1.default.object().unknown(true);
8
+ const schemaObject = joi_1.default.object({
9
+ type: joi_1.default.string().valid('object'),
10
+ properties: joi_1.default.object({
11
+ before: jsonSchemaValidation,
12
+ after: jsonSchemaValidation,
13
+ }).required(),
14
+ required: joi_1.default.array().items(joi_1.default.string()),
15
+ allOf: joi_1.default.array().items(joi_1.default.object()),
16
+ anyOf: joi_1.default.array().items(joi_1.default.object()),
17
+ oneOf: joi_1.default.array().items(joi_1.default.object()),
18
+ additionalProperties: joi_1.default.alternatives().try(joi_1.default.boolean(), joi_1.default.object()),
19
+ $id: joi_1.default.string(),
20
+ $schema: joi_1.default.string(),
21
+ if: joi_1.default.object(),
22
+ then: joi_1.default.object(),
23
+ else: joi_1.default.object(),
24
+ });
25
+ const validationSchemas = {
26
+ create: joi_1.default.object({
27
+ entityId: joi_1.default.string().uuid().required(),
28
+ entityType: joi_1.default.string().required(),
29
+ schema: schemaObject.required(),
30
+ }),
31
+ update: joi_1.default.object({
32
+ entityId: joi_1.default.string().uuid(),
33
+ entityType: joi_1.default.string(),
34
+ schema: schemaObject,
35
+ disabled: joi_1.default.boolean(),
36
+ }).min(1),
37
+ };
38
+ exports.default = validationSchemas;
@@ -0,0 +1,24 @@
1
+ import { BadRequest } from '@autofleet/errors';
2
+ import type { ValidationError } from 'joi';
3
+ import type { EntriesValidationError } from '../types/entries';
4
+ export declare class MissingRequiredCustomFieldError extends BadRequest {
5
+ constructor(missingFields: string[]);
6
+ }
7
+ export declare class UnsupportedCustomFieldTypeError extends BadRequest {
8
+ constructor(fieldType: string);
9
+ }
10
+ export declare class UnsupportedCustomValidationError extends BadRequest {
11
+ constructor(fieldType: string);
12
+ }
13
+ export declare class InvalidFieldTypeError extends BadRequest {
14
+ constructor(fieldType: string);
15
+ }
16
+ export declare class InvalidValueError extends BadRequest {
17
+ constructor(value: any, fieldDefinitionName: string, joiValidationError: ValidationError);
18
+ }
19
+ export declare class InvalidEntriesError extends BadRequest {
20
+ constructor(modelId: string, validationErrors: EntriesValidationError[]);
21
+ }
22
+ export declare class MissingDefinitionError extends BadRequest {
23
+ constructor(fieldNames: string[]);
24
+ }
@@ -1,3 +1,66 @@
1
- import{BadRequest as e}from"@autofleet/errors";var t=class extends e{constructor(e){let t=Error(`The following custom fields are required: ${e.join(`,`)}`);super([t],void 0,e),this.message=`MISSING_REQUIRED_CUSTOM_FIELDS`}},n=class extends e{constructor(e){let t=Error(`Type "${e}" is not supported`);super([t],void 0,null),this.message=`UNSUPPORTED_CUSTOM_FIELD_TYPE`}},r=class extends e{constructor(e){let t=Error(`Validation for "${e}" is not supported`);super([t],void 0,null),this.message=`UNSUPPORTED_CUSTOM_VALIDATION_TYPE`}},i=class extends e{constructor(e){let t=Error(`Invalid field type ${e}`);super([t],void 0,null),this.message=`INVALID_FIELD_TYPE`}},a=class extends e{constructor(e,t,n){let r=`Invalid Value on field '${t}'. ${n.message.replace(/"/g,``).replace(`value`,`'${t}'`)}. received: '${typeof e==`object`?JSON.stringify(e):e}'`;super([Error(r)],void 0,null),this.message=r}},o=class extends e{constructor(e,t){let n=t.map(e=>new a(e.value,e.fieldDefinitionName,e.joiValidationError));super(n,void 0,null),this.message=`Invalid entries on ${e}\n${t.map(e=>`${e.fieldDefinitionName} - ${e.joiValidationError.message}`).join(`
2
- `)}`}},s=class extends e{constructor(e){let t=Error(`Missing custom field definition for field ${e.join(`,`)}`);super([t],void 0,null),this.message=`MISSING_DEFINITION`}};export{o as InvalidEntriesError,i as InvalidFieldTypeError,a as InvalidValueError,s as MissingDefinitionError,t as MissingRequiredCustomFieldError,n as UnsupportedCustomFieldTypeError,r as UnsupportedCustomValidationError};
3
- //# sourceMappingURL=index.js.map
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MissingDefinitionError = exports.InvalidEntriesError = exports.InvalidValueError = exports.InvalidFieldTypeError = exports.UnsupportedCustomValidationError = exports.UnsupportedCustomFieldTypeError = exports.MissingRequiredCustomFieldError = void 0;
4
+ /* eslint-disable max-classes-per-file */
5
+ const errors_1 = require("@autofleet/errors");
6
+ class MissingRequiredCustomFieldError extends errors_1.BadRequest {
7
+ constructor(missingFields) {
8
+ const err = new Error(`The following custom fields are required: ${missingFields.join(',')}`);
9
+ super([err], null, missingFields);
10
+ this.message = 'MISSING_REQUIRED_CUSTOM_FIELDS';
11
+ }
12
+ }
13
+ exports.MissingRequiredCustomFieldError = MissingRequiredCustomFieldError;
14
+ class UnsupportedCustomFieldTypeError extends errors_1.BadRequest {
15
+ constructor(fieldType) {
16
+ const err = new Error(`Type "${fieldType}" is not supported`);
17
+ super([err], null, null);
18
+ this.message = 'UNSUPPORTED_CUSTOM_FIELD_TYPE';
19
+ }
20
+ }
21
+ exports.UnsupportedCustomFieldTypeError = UnsupportedCustomFieldTypeError;
22
+ class UnsupportedCustomValidationError extends errors_1.BadRequest {
23
+ constructor(fieldType) {
24
+ const err = new Error(`Validation for "${fieldType}" is not supported`);
25
+ super([err], null, null);
26
+ this.message = 'UNSUPPORTED_CUSTOM_VALIDATION_TYPE';
27
+ }
28
+ }
29
+ exports.UnsupportedCustomValidationError = UnsupportedCustomValidationError;
30
+ class InvalidFieldTypeError extends errors_1.BadRequest {
31
+ constructor(fieldType) {
32
+ const err = new Error(`Invalid field type ${fieldType}`);
33
+ super([err], null, null);
34
+ this.message = 'INVALID_FIELD_TYPE';
35
+ }
36
+ }
37
+ exports.InvalidFieldTypeError = InvalidFieldTypeError;
38
+ class InvalidValueError extends errors_1.BadRequest {
39
+ constructor(value, fieldDefinitionName, joiValidationError) {
40
+ const formattedErrorMessage = joiValidationError.message
41
+ .replace(/"/g, '')
42
+ .replace('value', `'${fieldDefinitionName}'`);
43
+ const formattedValue = typeof value === 'object' ? JSON.stringify(value) : value;
44
+ const invalidValueMessage = `Invalid Value on field '${fieldDefinitionName}'. ${formattedErrorMessage}. received: '${formattedValue}'`;
45
+ const err = new Error(invalidValueMessage);
46
+ super([err], null, null);
47
+ this.message = invalidValueMessage;
48
+ }
49
+ }
50
+ exports.InvalidValueError = InvalidValueError;
51
+ class InvalidEntriesError extends errors_1.BadRequest {
52
+ constructor(modelId, validationErrors) {
53
+ const errors = validationErrors.map((validationError) => new InvalidValueError(validationError.value, validationError.fieldDefinitionName, validationError.joiValidationError));
54
+ super(errors, null, null);
55
+ this.message = `Invalid entries on ${modelId}\n${validationErrors.map((validationError) => (`${validationError.fieldDefinitionName} - ${validationError.joiValidationError.message}`)).join('\n')}`;
56
+ }
57
+ }
58
+ exports.InvalidEntriesError = InvalidEntriesError;
59
+ class MissingDefinitionError extends errors_1.BadRequest {
60
+ constructor(fieldNames) {
61
+ const err = new Error(`Missing custom field definition for field ${fieldNames.join(',')}`);
62
+ super([err], null, null);
63
+ this.message = 'MISSING_DEFINITION';
64
+ }
65
+ }
66
+ exports.MissingDefinitionError = MissingDefinitionError;
@@ -0,0 +1,5 @@
1
+ import Events from '@autofleet/events';
2
+ import type { CustomFieldDefinition, CustomFieldEntries, CustomFieldValue, CustomValidator } from '../models';
3
+ declare const events: Events;
4
+ export declare const sendDimEvent: (instance: CustomFieldDefinition | CustomFieldValue | CustomFieldEntries | CustomValidator) => void;
5
+ export default events;