@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.
- package/.nvmrc +1 -0
- package/dist/api/index.d.ts +3 -0
- package/dist/api/index.js +12 -2
- package/dist/api/v1/definition/index.d.ts +3 -0
- package/dist/api/v1/definition/index.js +116 -2
- package/dist/api/v1/definition/validations.d.ts +2 -0
- package/dist/api/v1/definition/validations.js +77 -2
- package/dist/api/v1/errors.d.ts +4 -0
- package/dist/api/v1/errors.js +12 -2
- package/dist/api/v1/index.d.ts +3 -0
- package/dist/api/v1/index.js +13 -2
- package/dist/api/v1/validator/index.d.ts +3 -0
- package/dist/api/v1/validator/index.js +143 -2
- package/dist/api/v1/validator/validations.d.ts +6 -23
- package/dist/api/v1/validator/validations.js +38 -2
- package/dist/errors/index.d.ts +24 -0
- package/dist/errors/index.js +66 -3
- package/dist/events/index.d.ts +5 -0
- package/dist/events/index.js +54 -2
- package/dist/hooks/create.d.ts +10 -0
- package/dist/hooks/create.js +95 -0
- package/dist/hooks/enrich.d.ts +25 -0
- package/dist/hooks/enrich.js +198 -2
- package/dist/hooks/find.d.ts +1 -0
- package/dist/hooks/find.js +29 -2
- package/dist/hooks/hooks.d.ts +17 -0
- package/dist/hooks/hooks.js +388 -2
- package/dist/hooks/index.d.ts +5 -0
- package/dist/hooks/index.js +17 -1
- package/dist/hooks/update.d.ts +10 -0
- package/dist/hooks/update.js +49 -0
- package/dist/hooks/utils/updateInstanceValues.d.ts +15 -0
- package/dist/hooks/utils/updateInstanceValues.js +50 -2
- package/dist/hooks/workaround.d.ts +10 -0
- package/dist/hooks/workaround.js +37 -0
- package/dist/index.d.ts +12 -22
- package/dist/index.js +67 -2
- package/dist/models/CustomFieldDefinition.d.ts +23 -29
- package/dist/models/CustomFieldDefinition.js +192 -2
- package/dist/models/CustomFieldEntries.d.ts +13 -14
- package/dist/models/CustomFieldEntries.js +123 -2
- package/dist/models/CustomFieldValue.d.ts +14 -20
- package/dist/models/CustomFieldValue.js +151 -2
- package/dist/models/CustomValidator.d.ts +15 -17
- package/dist/models/CustomValidator.js +98 -2
- package/dist/models/index.d.ts +18 -6
- package/dist/models/index.js +131 -2
- package/dist/models/tests/AssociatedTestModel.d.ts +12 -0
- package/dist/models/tests/AssociatedTestModel.js +71 -2
- package/dist/models/tests/TestModel.d.ts +12 -0
- package/dist/models/tests/TestModel.js +69 -2
- package/dist/models/tests/contextAwareModels/ContextAwareTestModel.d.ts +10 -0
- package/dist/models/tests/contextAwareModels/ContextAwareTestModel.js +53 -2
- package/dist/models/tests/contextAwareModels/ContextTestModel.d.ts +13 -0
- package/dist/models/tests/contextAwareModels/ContextTestModel.js +47 -2
- package/dist/repository/definition.d.ts +36 -0
- package/dist/repository/definition.js +121 -2
- package/dist/repository/entries.d.ts +13 -0
- package/dist/repository/entries.js +92 -2
- package/dist/repository/utils/formatValues.d.ts +3 -0
- package/dist/repository/utils/formatValues.js +16 -2
- package/dist/repository/validator.d.ts +27 -0
- package/dist/repository/validator.js +69 -2
- package/dist/repository/value.d.ts +28 -0
- package/dist/repository/value.js +124 -2
- package/dist/scopes/filter.d.ts +29 -22
- package/dist/scopes/filter.js +75 -2
- package/dist/scopes/helpers/filter.helpers.d.ts +40 -15
- package/dist/scopes/helpers/filter.helpers.js +183 -25
- package/dist/scopes/index.d.ts +2 -0
- package/dist/scopes/index.js +6 -1
- package/dist/tests/api/test-api.d.ts +2 -0
- package/dist/tests/api/test-api.js +38 -0
- package/dist/tests/functional/searching/index.d.ts +8 -0
- package/dist/tests/functional/searching/index.js +44 -0
- package/dist/tests/helpers/commonHooks.d.ts +6 -0
- package/dist/tests/helpers/commonHooks.js +62 -0
- package/dist/tests/helpers/database-config.d.ts +16 -0
- package/dist/tests/helpers/database-config.js +17 -0
- package/dist/tests/helpers/index.d.ts +7 -0
- package/dist/tests/helpers/index.js +33 -0
- package/dist/tests/mocks/definition.mock.d.ts +48 -0
- package/dist/tests/mocks/definition.mock.js +78 -0
- package/dist/tests/mocks/events.mock.d.ts +4 -0
- package/dist/tests/mocks/events.mock.js +21 -0
- package/dist/tests/mocks/testModel.d.ts +12 -0
- package/dist/tests/mocks/testModel.js +35 -0
- package/dist/types/definition/index.d.ts +25 -0
- package/dist/types/definition/index.js +2 -0
- package/dist/types/entries/index.d.ts +25 -0
- package/dist/types/entries/index.js +2 -0
- package/dist/types/index.d.ts +46 -45
- package/dist/types/index.js +2 -0
- package/dist/types/value/index.d.ts +15 -0
- package/dist/types/value/index.js +2 -0
- package/dist/utils/constants/index.d.ts +17 -20
- package/dist/utils/constants/index.js +22 -2
- package/dist/utils/db/index.d.ts +4 -0
- package/dist/utils/db/index.js +24 -2
- package/dist/utils/helpers/index.d.ts +23 -28
- package/dist/utils/helpers/index.js +40 -2
- package/dist/utils/init.d.ts +7 -0
- package/dist/utils/init.js +112 -2
- package/dist/utils/logger/index.d.ts +3 -0
- package/dist/utils/logger/index.js +42 -2
- package/dist/utils/scopeAttributes.d.ts +2 -0
- package/dist/utils/scopeAttributes.js +11 -2
- package/dist/utils/validations/index.d.ts +8 -0
- package/dist/utils/validations/index.js +41 -2
- package/dist/utils/validations/schema/custom-fields.d.ts +2 -6
- package/dist/utils/validations/schema/custom-fields.js +9 -2
- package/dist/utils/validations/schema/validator-schema.d.ts +9 -0
- package/dist/utils/validations/schema/validator-schema.js +95 -2
- package/dist/utils/validations/type.d.ts +15 -0
- package/dist/utils/validations/type.js +2 -0
- package/dist/utils/validations/validators/index.d.ts +14 -0
- package/dist/utils/validations/validators/index.js +40 -2
- package/dist/utils/validations/validators/select.validator.d.ts +5 -0
- package/dist/utils/validations/validators/select.validator.js +12 -2
- package/dist/utils/validations/validators/status.validator.d.ts +12 -0
- package/dist/utils/validations/validators/status.validator.js +15 -2
- package/package.json +39 -40
- package/src/api/index.ts +10 -0
- package/src/api/v1/definition/index.ts +104 -0
- package/src/api/v1/definition/validations.ts +75 -0
- package/src/api/v1/errors.ts +13 -0
- package/src/api/v1/index.ts +11 -0
- package/src/api/v1/validator/index.ts +141 -0
- package/src/api/v1/validator/validations.ts +38 -0
- package/src/errors/index.ts +70 -0
- package/src/events/index.ts +63 -0
- package/src/hooks/create.ts +81 -0
- package/src/hooks/enrich.ts +255 -0
- package/src/hooks/find.ts +27 -0
- package/src/hooks/hooks.ts +482 -0
- package/src/hooks/index.ts +20 -0
- package/src/hooks/update.ts +55 -0
- package/src/hooks/utils/updateInstanceValues.ts +63 -0
- package/src/hooks/workaround.ts +47 -0
- package/src/index.ts +52 -0
- package/src/models/CustomFieldDefinition.ts +162 -0
- package/src/models/CustomFieldEntries.ts +81 -0
- package/src/models/CustomFieldValue.ts +118 -0
- package/src/models/CustomValidator.ts +78 -0
- package/src/models/index.ts +165 -0
- package/src/models/tests/AssociatedTestModel.ts +57 -0
- package/src/models/tests/TestModel.ts +54 -0
- package/src/models/tests/contextAwareModels/ContextAwareTestModel.ts +43 -0
- package/src/models/tests/contextAwareModels/ContextTestModel.ts +38 -0
- package/src/repository/definition.ts +175 -0
- package/src/repository/entries.ts +88 -0
- package/src/repository/utils/formatValues.ts +14 -0
- package/src/repository/validator.ts +104 -0
- package/src/repository/value.ts +116 -0
- package/src/scopes/filter.ts +100 -0
- package/src/scopes/helpers/filter.helpers.ts +227 -0
- package/src/scopes/index.ts +6 -0
- package/src/tests/api/test-api.ts +40 -0
- package/src/tests/functional/searching/index.ts +39 -0
- package/src/tests/helpers/commonHooks.ts +43 -0
- package/src/tests/helpers/database-config.ts +15 -0
- package/src/tests/helpers/index.ts +35 -0
- package/src/tests/mocks/definition.mock.ts +84 -0
- package/src/tests/mocks/events.mock.ts +21 -0
- package/src/tests/mocks/testModel.ts +37 -0
- package/src/types/definition/index.ts +24 -0
- package/src/types/entries/index.ts +27 -0
- package/src/types/index.ts +52 -0
- package/src/types/value/index.ts +14 -0
- package/src/utils/constants/index.ts +25 -0
- package/src/utils/db/index.ts +21 -0
- package/src/utils/helpers/index.ts +66 -0
- package/src/utils/init.ts +120 -0
- package/src/utils/logger/index.ts +14 -0
- package/src/utils/scopeAttributes.ts +12 -0
- package/src/utils/validations/index.ts +46 -0
- package/src/utils/validations/schema/README.md +93 -0
- package/src/utils/validations/schema/custom-fields.ts +8 -0
- package/src/utils/validations/schema/validator-schema.ts +106 -0
- package/src/utils/validations/type.ts +20 -0
- package/src/utils/validations/validators/index.ts +38 -0
- package/src/utils/validations/validators/select.validator.ts +12 -0
- package/src/utils/validations/validators/status.validator.ts +22 -0
- package/tsconfig.build.json +7 -0
- package/tsconfig.json +16 -0
- package/dist/_virtual/_@oxc-project_runtime@0.101.0/helpers/decorate.cjs +0 -1
- package/dist/_virtual/_@oxc-project_runtime@0.101.0/helpers/decorate.js +0 -1
- package/dist/_virtual/_@oxc-project_runtime@0.101.0/helpers/decorateMetadata.cjs +0 -1
- package/dist/_virtual/_@oxc-project_runtime@0.101.0/helpers/decorateMetadata.js +0 -1
- package/dist/_virtual/rolldown_runtime.cjs +0 -1
- package/dist/api/index.cjs +0 -2
- package/dist/api/index.cjs.map +0 -1
- package/dist/api/index.js.map +0 -1
- package/dist/api/v1/definition/index.cjs +0 -2
- package/dist/api/v1/definition/index.cjs.map +0 -1
- package/dist/api/v1/definition/index.js.map +0 -1
- package/dist/api/v1/definition/validations.cjs +0 -2
- package/dist/api/v1/definition/validations.cjs.map +0 -1
- package/dist/api/v1/definition/validations.js.map +0 -1
- package/dist/api/v1/errors.cjs +0 -2
- package/dist/api/v1/errors.cjs.map +0 -1
- package/dist/api/v1/errors.js.map +0 -1
- package/dist/api/v1/index.cjs +0 -2
- package/dist/api/v1/index.cjs.map +0 -1
- package/dist/api/v1/index.js.map +0 -1
- package/dist/api/v1/validator/index.cjs +0 -2
- package/dist/api/v1/validator/index.cjs.map +0 -1
- package/dist/api/v1/validator/index.js.map +0 -1
- package/dist/api/v1/validator/validations.cjs +0 -2
- package/dist/api/v1/validator/validations.cjs.map +0 -1
- package/dist/api/v1/validator/validations.d.cts +0 -23
- package/dist/api/v1/validator/validations.js.map +0 -1
- package/dist/errors/index.cjs +0 -3
- package/dist/errors/index.cjs.map +0 -1
- package/dist/errors/index.js.map +0 -1
- package/dist/events/index.cjs +0 -2
- package/dist/events/index.cjs.map +0 -1
- package/dist/events/index.js.map +0 -1
- package/dist/hooks/enrich.cjs +0 -2
- package/dist/hooks/enrich.cjs.map +0 -1
- package/dist/hooks/enrich.js.map +0 -1
- package/dist/hooks/find.cjs +0 -2
- package/dist/hooks/find.cjs.map +0 -1
- package/dist/hooks/find.js.map +0 -1
- package/dist/hooks/hooks.cjs +0 -2
- package/dist/hooks/hooks.cjs.map +0 -1
- package/dist/hooks/hooks.js.map +0 -1
- package/dist/hooks/index.cjs +0 -1
- package/dist/hooks/utils/updateInstanceValues.cjs +0 -2
- package/dist/hooks/utils/updateInstanceValues.cjs.map +0 -1
- package/dist/hooks/utils/updateInstanceValues.js.map +0 -1
- package/dist/index.cjs +0 -2
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.cts +0 -23
- package/dist/index.js.map +0 -1
- package/dist/models/CustomFieldDefinition.cjs +0 -2
- package/dist/models/CustomFieldDefinition.cjs.map +0 -1
- package/dist/models/CustomFieldDefinition.d.cts +0 -31
- package/dist/models/CustomFieldDefinition.js.map +0 -1
- package/dist/models/CustomFieldEntries.cjs +0 -2
- package/dist/models/CustomFieldEntries.cjs.map +0 -1
- package/dist/models/CustomFieldEntries.d.cts +0 -16
- package/dist/models/CustomFieldEntries.js.map +0 -1
- package/dist/models/CustomFieldValue.cjs +0 -2
- package/dist/models/CustomFieldValue.cjs.map +0 -1
- package/dist/models/CustomFieldValue.d.cts +0 -22
- package/dist/models/CustomFieldValue.js.map +0 -1
- package/dist/models/CustomValidator.cjs +0 -2
- package/dist/models/CustomValidator.cjs.map +0 -1
- package/dist/models/CustomValidator.d.cts +0 -19
- package/dist/models/CustomValidator.js.map +0 -1
- package/dist/models/index.cjs +0 -2
- package/dist/models/index.cjs.map +0 -1
- package/dist/models/index.d.cts +0 -6
- package/dist/models/index.js.map +0 -1
- package/dist/models/tests/AssociatedTestModel.cjs +0 -2
- package/dist/models/tests/AssociatedTestModel.cjs.map +0 -1
- package/dist/models/tests/AssociatedTestModel.js.map +0 -1
- package/dist/models/tests/TestModel.cjs +0 -2
- package/dist/models/tests/TestModel.cjs.map +0 -1
- package/dist/models/tests/TestModel.js.map +0 -1
- package/dist/models/tests/contextAwareModels/ContextAwareTestModel.cjs +0 -2
- package/dist/models/tests/contextAwareModels/ContextAwareTestModel.cjs.map +0 -1
- package/dist/models/tests/contextAwareModels/ContextAwareTestModel.js.map +0 -1
- package/dist/models/tests/contextAwareModels/ContextTestModel.cjs +0 -2
- package/dist/models/tests/contextAwareModels/ContextTestModel.cjs.map +0 -1
- package/dist/models/tests/contextAwareModels/ContextTestModel.js.map +0 -1
- package/dist/repository/definition.cjs +0 -2
- package/dist/repository/definition.cjs.map +0 -1
- package/dist/repository/definition.js.map +0 -1
- package/dist/repository/entries.cjs +0 -2
- package/dist/repository/entries.cjs.map +0 -1
- package/dist/repository/entries.js.map +0 -1
- package/dist/repository/utils/formatValues.cjs +0 -2
- package/dist/repository/utils/formatValues.cjs.map +0 -1
- package/dist/repository/utils/formatValues.js.map +0 -1
- package/dist/repository/validator.cjs +0 -2
- package/dist/repository/validator.cjs.map +0 -1
- package/dist/repository/validator.js.map +0 -1
- package/dist/repository/value.cjs +0 -2
- package/dist/repository/value.cjs.map +0 -1
- package/dist/repository/value.js.map +0 -1
- package/dist/scopes/filter.cjs +0 -2
- package/dist/scopes/filter.cjs.map +0 -1
- package/dist/scopes/filter.d.cts +0 -23
- package/dist/scopes/filter.js.map +0 -1
- package/dist/scopes/helpers/filter.helpers.cjs +0 -46
- package/dist/scopes/helpers/filter.helpers.cjs.map +0 -1
- package/dist/scopes/helpers/filter.helpers.d.cts +0 -17
- package/dist/scopes/helpers/filter.helpers.js.map +0 -1
- package/dist/scopes/index.cjs +0 -1
- package/dist/types/index.d.cts +0 -45
- package/dist/utils/constants/index.cjs +0 -2
- package/dist/utils/constants/index.cjs.map +0 -1
- package/dist/utils/constants/index.d.cts +0 -22
- package/dist/utils/constants/index.js.map +0 -1
- package/dist/utils/db/index.cjs +0 -2
- package/dist/utils/db/index.cjs.map +0 -1
- package/dist/utils/db/index.js.map +0 -1
- package/dist/utils/helpers/index.cjs +0 -2
- package/dist/utils/helpers/index.cjs.map +0 -1
- package/dist/utils/helpers/index.d.cts +0 -31
- package/dist/utils/helpers/index.js.map +0 -1
- package/dist/utils/init.cjs +0 -2
- package/dist/utils/init.cjs.map +0 -1
- package/dist/utils/init.js.map +0 -1
- package/dist/utils/logger/index.cjs +0 -2
- package/dist/utils/logger/index.cjs.map +0 -1
- package/dist/utils/logger/index.js.map +0 -1
- package/dist/utils/scopeAttributes.cjs +0 -2
- package/dist/utils/scopeAttributes.cjs.map +0 -1
- package/dist/utils/scopeAttributes.js.map +0 -1
- package/dist/utils/validations/index.cjs +0 -2
- package/dist/utils/validations/index.cjs.map +0 -1
- package/dist/utils/validations/index.js.map +0 -1
- package/dist/utils/validations/schema/custom-fields.cjs +0 -2
- package/dist/utils/validations/schema/custom-fields.cjs.map +0 -1
- package/dist/utils/validations/schema/custom-fields.d.cts +0 -7
- package/dist/utils/validations/schema/custom-fields.js.map +0 -1
- package/dist/utils/validations/schema/validator-schema.cjs +0 -2
- package/dist/utils/validations/schema/validator-schema.cjs.map +0 -1
- package/dist/utils/validations/schema/validator-schema.js.map +0 -1
- package/dist/utils/validations/validators/index.cjs +0 -2
- package/dist/utils/validations/validators/index.cjs.map +0 -1
- package/dist/utils/validations/validators/index.js.map +0 -1
- package/dist/utils/validations/validators/select.validator.cjs +0 -2
- package/dist/utils/validations/validators/select.validator.cjs.map +0 -1
- package/dist/utils/validations/validators/select.validator.js.map +0 -1
- package/dist/utils/validations/validators/status.validator.cjs +0 -2
- package/dist/utils/validations/validators/status.validator.cjs.map +0 -1
- package/dist/utils/validations/validators/status.validator.js.map +0 -1
|
@@ -1,2 +1,53 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
16
|
+
const sequelize_typescript_1 = require("sequelize-typescript");
|
|
17
|
+
const ContextTestModel_1 = __importDefault(require("./ContextTestModel"));
|
|
18
|
+
let ContextAwareTestModel = class ContextAwareTestModel extends sequelize_typescript_1.Model {
|
|
19
|
+
};
|
|
20
|
+
__decorate([
|
|
21
|
+
sequelize_typescript_1.PrimaryKey,
|
|
22
|
+
(0, sequelize_typescript_1.Column)({
|
|
23
|
+
type: sequelize_typescript_1.DataType.UUID,
|
|
24
|
+
defaultValue: sequelize_typescript_1.DataType.UUIDV4,
|
|
25
|
+
allowNull: false,
|
|
26
|
+
}),
|
|
27
|
+
__metadata("design:type", String)
|
|
28
|
+
], ContextAwareTestModel.prototype, "id", void 0);
|
|
29
|
+
__decorate([
|
|
30
|
+
(0, sequelize_typescript_1.ForeignKey)(() => ContextTestModel_1.default),
|
|
31
|
+
(0, sequelize_typescript_1.Column)({ type: sequelize_typescript_1.DataType.UUID }),
|
|
32
|
+
__metadata("design:type", String)
|
|
33
|
+
], ContextAwareTestModel.prototype, "contextId", void 0);
|
|
34
|
+
__decorate([
|
|
35
|
+
(0, sequelize_typescript_1.Column)({
|
|
36
|
+
type: sequelize_typescript_1.DataType.BOOLEAN,
|
|
37
|
+
}),
|
|
38
|
+
__metadata("design:type", Boolean)
|
|
39
|
+
], ContextAwareTestModel.prototype, "coolAttribute", void 0);
|
|
40
|
+
__decorate([
|
|
41
|
+
(0, sequelize_typescript_1.Column)({
|
|
42
|
+
type: sequelize_typescript_1.DataType.VIRTUAL,
|
|
43
|
+
}),
|
|
44
|
+
__metadata("design:type", Object)
|
|
45
|
+
], ContextAwareTestModel.prototype, "customFields", void 0);
|
|
46
|
+
__decorate([
|
|
47
|
+
(0, sequelize_typescript_1.BelongsTo)(() => ContextTestModel_1.default),
|
|
48
|
+
__metadata("design:type", ContextTestModel_1.default)
|
|
49
|
+
], ContextAwareTestModel.prototype, "context", void 0);
|
|
50
|
+
ContextAwareTestModel = __decorate([
|
|
51
|
+
(0, sequelize_typescript_1.Table)({ createdAt: false, updatedAt: false })
|
|
52
|
+
], ContextAwareTestModel);
|
|
53
|
+
exports.default = ContextAwareTestModel;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Model } from 'sequelize-typescript';
|
|
2
|
+
declare enum EEntityTypes {
|
|
3
|
+
BUSINESS_MODEL = "businessModel",
|
|
4
|
+
CONTEXT = "context",
|
|
5
|
+
DEMAND_SOURCE = "demandSource",
|
|
6
|
+
FLEET = "fleet"
|
|
7
|
+
}
|
|
8
|
+
declare class ContextTestModel extends Model {
|
|
9
|
+
id: string;
|
|
10
|
+
entityId: string;
|
|
11
|
+
entityType: EEntityTypes;
|
|
12
|
+
}
|
|
13
|
+
export default ContextTestModel;
|
|
@@ -1,2 +1,47 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
13
|
+
const sequelize_typescript_1 = require("sequelize-typescript");
|
|
14
|
+
// eslint-disable-next-line no-shadow
|
|
15
|
+
var EEntityTypes;
|
|
16
|
+
(function (EEntityTypes) {
|
|
17
|
+
EEntityTypes["BUSINESS_MODEL"] = "businessModel";
|
|
18
|
+
EEntityTypes["CONTEXT"] = "context";
|
|
19
|
+
EEntityTypes["DEMAND_SOURCE"] = "demandSource";
|
|
20
|
+
EEntityTypes["FLEET"] = "fleet";
|
|
21
|
+
})(EEntityTypes || (EEntityTypes = {}));
|
|
22
|
+
let ContextTestModel = class ContextTestModel extends sequelize_typescript_1.Model {
|
|
23
|
+
};
|
|
24
|
+
__decorate([
|
|
25
|
+
sequelize_typescript_1.PrimaryKey,
|
|
26
|
+
(0, sequelize_typescript_1.Column)({
|
|
27
|
+
defaultValue: sequelize_typescript_1.DataType.UUIDV4,
|
|
28
|
+
type: sequelize_typescript_1.DataType.UUID,
|
|
29
|
+
}),
|
|
30
|
+
__metadata("design:type", String)
|
|
31
|
+
], ContextTestModel.prototype, "id", void 0);
|
|
32
|
+
__decorate([
|
|
33
|
+
(0, sequelize_typescript_1.Column)({
|
|
34
|
+
type: sequelize_typescript_1.DataType.UUID,
|
|
35
|
+
}),
|
|
36
|
+
__metadata("design:type", String)
|
|
37
|
+
], ContextTestModel.prototype, "entityId", void 0);
|
|
38
|
+
__decorate([
|
|
39
|
+
(0, sequelize_typescript_1.Column)({
|
|
40
|
+
type: sequelize_typescript_1.DataType.ENUM(...Object.values(EEntityTypes)),
|
|
41
|
+
}),
|
|
42
|
+
__metadata("design:type", String)
|
|
43
|
+
], ContextTestModel.prototype, "entityType", void 0);
|
|
44
|
+
ContextTestModel = __decorate([
|
|
45
|
+
(0, sequelize_typescript_1.Table)({ createdAt: false, updatedAt: false })
|
|
46
|
+
], ContextTestModel);
|
|
47
|
+
exports.default = ContextTestModel;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { type Includeable, type Transaction, type FindOptions, type WhereOptions } from 'sequelize';
|
|
2
|
+
import { CustomFieldDefinition, type CustomFieldEntries } from '../models';
|
|
3
|
+
import type { CreateCustomFieldDefinition, UpdateCustomFieldDefinition } from '../types/definition';
|
|
4
|
+
import type { ModelOptions } from '../types';
|
|
5
|
+
export declare const create: (data: CreateCustomFieldDefinition) => Promise<CustomFieldDefinition>;
|
|
6
|
+
interface SadotFindOptions {
|
|
7
|
+
withDisabled?: boolean;
|
|
8
|
+
transaction?: Transaction;
|
|
9
|
+
include?: Includeable | Includeable[];
|
|
10
|
+
}
|
|
11
|
+
type SadotGetDefinitionsByEntityIdsOptions = FindOptions & {
|
|
12
|
+
modelOptions?: ModelOptions;
|
|
13
|
+
} & Pick<SadotFindOptions, 'withDisabled'>;
|
|
14
|
+
export declare const findAll: (where: WhereOptions, options?: SadotFindOptions) => Promise<CustomFieldDefinition[]>;
|
|
15
|
+
export declare const findByIds: (ids: string[], options?: SadotFindOptions) => Promise<CustomFieldDefinition[]>;
|
|
16
|
+
export declare const findById: (id: string, options?: Pick<SadotFindOptions, 'withDisabled'>) => Promise<CustomFieldDefinition | null>;
|
|
17
|
+
export declare const findByEntityIds: (modelType: string, entityIds: string[], options?: FindOptions & {
|
|
18
|
+
modelOptions?: ModelOptions;
|
|
19
|
+
}) => Promise<CustomFieldDefinition[]>;
|
|
20
|
+
export declare const findByWhere: (where: any) => Promise<CustomFieldDefinition | null>;
|
|
21
|
+
export declare const findDefinitionsByModels: (modelTypes: string[], options?: any) => Promise<CustomFieldDefinition[]>;
|
|
22
|
+
export declare const update: (id: string, data: UpdateCustomFieldDefinition) => Promise<CustomFieldDefinition>;
|
|
23
|
+
export declare const disable: (id: string) => Promise<[affectedCount: number]>;
|
|
24
|
+
export declare const destroy: (id: string) => Promise<number>;
|
|
25
|
+
/**
|
|
26
|
+
* Return the names of the required fields for a given model
|
|
27
|
+
*/
|
|
28
|
+
export declare const getRequiredFields: (modelType: string, modelId: string | string[], entityId: string | string[], modelOptions?: ModelOptions) => Promise<string[]>;
|
|
29
|
+
/**
|
|
30
|
+
* @returns A promise resolving with a dictionary of custom field definitions by name.
|
|
31
|
+
* @throws A {@link MissingDefinitionError} if any of the custom fields doesn't have a definition.
|
|
32
|
+
*/
|
|
33
|
+
export declare const getCustomFieldDefinitionsDictionary: (instances: CustomFieldEntries[], options?: SadotGetDefinitionsByEntityIdsOptions) => Promise<{
|
|
34
|
+
[definitionName: string]: CustomFieldDefinition;
|
|
35
|
+
}>;
|
|
36
|
+
export {};
|
|
@@ -1,2 +1,121 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getCustomFieldDefinitionsDictionary = exports.getRequiredFields = exports.destroy = exports.disable = exports.update = exports.findDefinitionsByModels = exports.findByWhere = exports.findByEntityIds = exports.findById = exports.findByIds = exports.findAll = exports.create = void 0;
|
|
4
|
+
const sequelize_1 = require("sequelize");
|
|
5
|
+
const models_1 = require("../models");
|
|
6
|
+
const errors_1 = require("../errors");
|
|
7
|
+
const create = (data) => models_1.CustomFieldDefinition.create(data);
|
|
8
|
+
exports.create = create;
|
|
9
|
+
const findAll = (where, options = { withDisabled: false }) => {
|
|
10
|
+
const queryModel = options.withDisabled
|
|
11
|
+
? models_1.CustomFieldDefinition.unscoped()
|
|
12
|
+
: models_1.CustomFieldDefinition;
|
|
13
|
+
return queryModel.scope('userScope').findAll({
|
|
14
|
+
where,
|
|
15
|
+
transaction: options.transaction,
|
|
16
|
+
raw: true,
|
|
17
|
+
include: options.include,
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
exports.findAll = findAll;
|
|
21
|
+
const findByIds = (ids, options = { withDisabled: false }) => (0, exports.findAll)({ id: { [sequelize_1.Op.in]: ids } }, options);
|
|
22
|
+
exports.findByIds = findByIds;
|
|
23
|
+
const findById = (id, options = { withDisabled: false }) => {
|
|
24
|
+
const { withDisabled } = options;
|
|
25
|
+
if (withDisabled) {
|
|
26
|
+
return models_1.CustomFieldDefinition.unscoped().scope('userScope').findByPk(id);
|
|
27
|
+
}
|
|
28
|
+
return models_1.CustomFieldDefinition.scope('userScope').findByPk(id);
|
|
29
|
+
};
|
|
30
|
+
exports.findById = findById;
|
|
31
|
+
const findByEntityIds = async (modelType, entityIds, options = {}) => {
|
|
32
|
+
const { include, useEntityIdFromInclude } = options.modelOptions;
|
|
33
|
+
const where = {
|
|
34
|
+
modelType,
|
|
35
|
+
...(!useEntityIdFromInclude && { entityId: { [sequelize_1.Op.in]: entityIds } }),
|
|
36
|
+
};
|
|
37
|
+
return models_1.CustomFieldDefinition.findAll({
|
|
38
|
+
where,
|
|
39
|
+
transaction: options.transaction,
|
|
40
|
+
include: include?.(entityIds),
|
|
41
|
+
raw: true,
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
exports.findByEntityIds = findByEntityIds;
|
|
45
|
+
const findByWhere = (where) => models_1.CustomFieldDefinition.scope('userScope').findOne({
|
|
46
|
+
where,
|
|
47
|
+
});
|
|
48
|
+
exports.findByWhere = findByWhere;
|
|
49
|
+
const findDefinitionsByModels = async (modelTypes, options) => {
|
|
50
|
+
const query = { modelType: { [sequelize_1.Op.in]: modelTypes } };
|
|
51
|
+
return models_1.CustomFieldDefinition.findAll({
|
|
52
|
+
where: query,
|
|
53
|
+
transaction: options?.transaction,
|
|
54
|
+
});
|
|
55
|
+
};
|
|
56
|
+
exports.findDefinitionsByModels = findDefinitionsByModels;
|
|
57
|
+
const update = async (id, data) => {
|
|
58
|
+
const updatedDefinition = (await models_1.CustomFieldDefinition.scope('userScope').update(data, {
|
|
59
|
+
where: { id },
|
|
60
|
+
returning: true,
|
|
61
|
+
individualHooks: true,
|
|
62
|
+
}))[1][0];
|
|
63
|
+
return updatedDefinition;
|
|
64
|
+
};
|
|
65
|
+
exports.update = update;
|
|
66
|
+
const disable = (id) => models_1.CustomFieldDefinition.update({ disabled: true }, { where: { id } });
|
|
67
|
+
exports.disable = disable;
|
|
68
|
+
const destroy = (id) => models_1.CustomFieldDefinition.destroy({ where: { id } });
|
|
69
|
+
exports.destroy = destroy;
|
|
70
|
+
/**
|
|
71
|
+
* Return the names of the required fields for a given model
|
|
72
|
+
*/
|
|
73
|
+
const getRequiredFields = async (modelType, modelId, entityId, modelOptions = {}) => {
|
|
74
|
+
const entityIds = Array.isArray(entityId) ? entityId : [entityId];
|
|
75
|
+
const { include, useEntityIdFromInclude } = modelOptions;
|
|
76
|
+
const where = {
|
|
77
|
+
modelType,
|
|
78
|
+
required: true,
|
|
79
|
+
...(!useEntityIdFromInclude && { entityId: { [sequelize_1.Op.in]: entityIds } }),
|
|
80
|
+
};
|
|
81
|
+
const requiredFields = await models_1.CustomFieldDefinition.findAll({
|
|
82
|
+
where,
|
|
83
|
+
include: include?.(entityIds),
|
|
84
|
+
logging: true,
|
|
85
|
+
});
|
|
86
|
+
const requiredFieldsNames = requiredFields.map((definition) => definition.name);
|
|
87
|
+
return [...new Set(requiredFieldsNames)];
|
|
88
|
+
};
|
|
89
|
+
exports.getRequiredFields = getRequiredFields;
|
|
90
|
+
/**
|
|
91
|
+
* @returns A promise resolving with a dictionary of custom field definitions by name.
|
|
92
|
+
* @throws A {@link MissingDefinitionError} if any of the custom fields doesn't have a definition.
|
|
93
|
+
*/
|
|
94
|
+
const getCustomFieldDefinitionsDictionary = async (instances, options = { withDisabled: false, modelOptions: {} }) => {
|
|
95
|
+
const { modelType } = instances[0]?.dataValues ?? {};
|
|
96
|
+
const customFields = new Set();
|
|
97
|
+
const modelIds = [];
|
|
98
|
+
const entityIds = new Set();
|
|
99
|
+
instances.forEach((instance) => {
|
|
100
|
+
const { dataValues: { modelId, entityId, customFields: instanceCustomFields } } = instance;
|
|
101
|
+
modelIds.push(modelId);
|
|
102
|
+
entityIds.add(entityId);
|
|
103
|
+
Object.keys(instanceCustomFields ?? {}).forEach((fieldName) => {
|
|
104
|
+
customFields.add(fieldName);
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
const where = {
|
|
108
|
+
modelType,
|
|
109
|
+
entityId: { [sequelize_1.Op.in]: Array.from(entityIds) },
|
|
110
|
+
name: { [sequelize_1.Op.in]: Array.from(customFields) },
|
|
111
|
+
};
|
|
112
|
+
const definitions = await (0, exports.findAll)(where, { ...options });
|
|
113
|
+
const matchedDefinitions = definitions.filter((def) => customFields.has(def.name));
|
|
114
|
+
const matchedDefinitionsByName = Object.fromEntries(matchedDefinitions.map((definition) => [definition.name, definition]));
|
|
115
|
+
if (!definitions?.length || matchedDefinitions.length !== customFields.size) {
|
|
116
|
+
const unmatchedCustomFields = Array.from(customFields).filter((customField) => !matchedDefinitionsByName[customField]);
|
|
117
|
+
throw new errors_1.MissingDefinitionError(unmatchedCustomFields);
|
|
118
|
+
}
|
|
119
|
+
return matchedDefinitionsByName;
|
|
120
|
+
};
|
|
121
|
+
exports.getCustomFieldDefinitionsDictionary = getCustomFieldDefinitionsDictionary;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { FindOptions, Includeable, Transaction } from 'sequelize';
|
|
2
|
+
import { CustomFieldEntries } from '../models';
|
|
3
|
+
import type { ModelOptions } from '../types';
|
|
4
|
+
type CustomFieldEntriesModelOptions = ModelOptions & {
|
|
5
|
+
include?: Includeable;
|
|
6
|
+
transaction?: Transaction;
|
|
7
|
+
};
|
|
8
|
+
export declare const findEntriesByModelId: (modelId: string, options?: CustomFieldEntriesModelOptions) => Promise<CustomFieldEntries>;
|
|
9
|
+
export declare const findEntriesByModelIds: (modelIds: string[], options?: CustomFieldEntriesModelOptions) => Promise<CustomFieldEntries[]>;
|
|
10
|
+
export declare const updateEntries: (modelId: string, modelType: string, customFields: Record<string, any>, identifiers: string[], options?: FindOptions & {
|
|
11
|
+
modelOptions?: ModelOptions;
|
|
12
|
+
}) => Promise<[CustomFieldEntries, boolean]>;
|
|
13
|
+
export {};
|
|
@@ -1,2 +1,92 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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
|
+
exports.updateEntries = exports.findEntriesByModelIds = exports.findEntriesByModelId = void 0;
|
|
30
|
+
const models_1 = require("../models");
|
|
31
|
+
const logger_1 = __importDefault(require("../utils/logger"));
|
|
32
|
+
const errors_1 = require("../errors");
|
|
33
|
+
const DefinitionRepo = __importStar(require("./definition"));
|
|
34
|
+
const formatValues_1 = require("./utils/formatValues");
|
|
35
|
+
const findEntriesByModelId = async (modelId, options = {}) => {
|
|
36
|
+
const { transaction } = options;
|
|
37
|
+
return models_1.CustomFieldEntries.findOne({
|
|
38
|
+
where: { modelId },
|
|
39
|
+
transaction,
|
|
40
|
+
});
|
|
41
|
+
};
|
|
42
|
+
exports.findEntriesByModelId = findEntriesByModelId;
|
|
43
|
+
const findEntriesByModelIds = async (modelIds, options = {}) => {
|
|
44
|
+
const { transaction } = options;
|
|
45
|
+
return models_1.CustomFieldEntries.findAll({
|
|
46
|
+
where: { modelId: modelIds },
|
|
47
|
+
transaction,
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
exports.findEntriesByModelIds = findEntriesByModelIds;
|
|
51
|
+
const updateEntries = async (modelId, modelType, customFields, identifiers, options = {}) => {
|
|
52
|
+
const customFieldsNames = Object.keys(customFields);
|
|
53
|
+
logger_1.default.debug(`custom-fields: updating entries for ${modelType} ${modelId}`, {
|
|
54
|
+
customFieldsNames,
|
|
55
|
+
optionsKeys: options ? Object.keys(options) : null,
|
|
56
|
+
customFields,
|
|
57
|
+
identifiers,
|
|
58
|
+
});
|
|
59
|
+
const { modelOptions, transaction } = options;
|
|
60
|
+
const where = {
|
|
61
|
+
modelType,
|
|
62
|
+
name: customFieldsNames,
|
|
63
|
+
...(!options.modelOptions?.useEntityIdFromInclude && { entityId: identifiers }),
|
|
64
|
+
};
|
|
65
|
+
const fieldDefinitions = await DefinitionRepo.findAll(where, { withDisabled: true, transaction, include: modelOptions.include?.(identifiers) }) ?? [];
|
|
66
|
+
const disabledDefinitions = fieldDefinitions.filter((def) => def.disabled);
|
|
67
|
+
if (fieldDefinitions.length !== customFieldsNames.length) {
|
|
68
|
+
logger_1.default.warn(`custom-fields: missing definitions for ${modelType} ${modelId}`, { names: customFieldsNames, fieldDefinitions });
|
|
69
|
+
const missingDefinitions = customFieldsNames.filter((name) => !fieldDefinitions.some((def) => def.name === name));
|
|
70
|
+
throw new errors_1.MissingDefinitionError(missingDefinitions);
|
|
71
|
+
}
|
|
72
|
+
const disabledNames = disabledDefinitions?.map((def) => def.name) || [];
|
|
73
|
+
const valuesWithDisabledDefinitions = customFieldsNames.filter((name) => disabledNames.includes(name));
|
|
74
|
+
if (valuesWithDisabledDefinitions?.length > 0) {
|
|
75
|
+
logger_1.default.warn(`custom-fields: trying to update disabled values: ${valuesWithDisabledDefinitions.join(', ')}`);
|
|
76
|
+
}
|
|
77
|
+
const definitionsByName = Object.fromEntries(fieldDefinitions.map((definition) => [definition.name, definition]));
|
|
78
|
+
// If we need to format the value before we save it
|
|
79
|
+
Object.entries(customFields)
|
|
80
|
+
.filter(([definitionName]) => formatValues_1.formatFunctions[definitionsByName[definitionName].fieldType])
|
|
81
|
+
.forEach(([definitionName, value]) => {
|
|
82
|
+
const { fieldType } = definitionsByName[definitionName];
|
|
83
|
+
customFields[definitionName] = formatValues_1.formatFunctions[fieldType](value);
|
|
84
|
+
});
|
|
85
|
+
return models_1.CustomFieldEntries.upsert({
|
|
86
|
+
modelId,
|
|
87
|
+
entityId: fieldDefinitions[0].entityId,
|
|
88
|
+
modelType,
|
|
89
|
+
customFields,
|
|
90
|
+
}, options);
|
|
91
|
+
};
|
|
92
|
+
exports.updateEntries = updateEntries;
|
|
@@ -1,2 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formatFunctions = void 0;
|
|
4
|
+
const constants_1 = require("../../utils/constants");
|
|
5
|
+
exports.formatFunctions = {
|
|
6
|
+
[constants_1.CustomFieldDefinitionType.DATE]: (value) => {
|
|
7
|
+
if (value) {
|
|
8
|
+
const date = new Date(value);
|
|
9
|
+
if (date.toString() === 'Invalid Date') {
|
|
10
|
+
throw new Error(`Invalid date value: ${value}`);
|
|
11
|
+
}
|
|
12
|
+
return date.toISOString();
|
|
13
|
+
}
|
|
14
|
+
return null;
|
|
15
|
+
},
|
|
16
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { FindOptions, IncludeOptions, Transactionable } from 'sequelize';
|
|
2
|
+
import { CustomValidator } from '../models';
|
|
3
|
+
import type { ModelOptions } from '../types';
|
|
4
|
+
export interface FindValidatorOptions extends Transactionable {
|
|
5
|
+
withDisabled?: boolean;
|
|
6
|
+
attributes?: string[];
|
|
7
|
+
raw?: boolean;
|
|
8
|
+
include?: IncludeOptions[];
|
|
9
|
+
}
|
|
10
|
+
export interface ValidatorAttributes {
|
|
11
|
+
entityId: string;
|
|
12
|
+
entityType: string;
|
|
13
|
+
modelType: string;
|
|
14
|
+
schema: CustomValidator['schema'];
|
|
15
|
+
disabled?: boolean;
|
|
16
|
+
[key: string]: unknown;
|
|
17
|
+
}
|
|
18
|
+
export declare const create: (validatorAttributes: ValidatorAttributes, options?: Transactionable) => Promise<CustomValidator>;
|
|
19
|
+
export declare const findAll: (where?: {}, options?: FindOptions & {
|
|
20
|
+
modelOptions?: ModelOptions;
|
|
21
|
+
withDisabled?: boolean;
|
|
22
|
+
}) => Promise<CustomValidator[]>;
|
|
23
|
+
export declare const findAllByModelType: (modelType: string, entityId: string, options?: FindOptions & {
|
|
24
|
+
modelOptions?: ModelOptions;
|
|
25
|
+
}) => Promise<CustomValidator[]>;
|
|
26
|
+
export declare const update: (id: string, updates: Partial<ValidatorAttributes>, options?: Transactionable) => Promise<[number, CustomValidator[]]>;
|
|
27
|
+
export declare const disable: (id: string, options?: Transactionable) => Promise<[number, CustomValidator[]]>;
|
|
@@ -1,2 +1,69 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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.disable = exports.update = exports.findAllByModelType = exports.findAll = exports.create = void 0;
|
|
7
|
+
const logger_1 = __importDefault(require("../utils/logger"));
|
|
8
|
+
const models_1 = require("../models");
|
|
9
|
+
const create = async (validatorAttributes, options = {}) => {
|
|
10
|
+
logger_1.default.debug('custom-validator - create validator');
|
|
11
|
+
// Use unknown type to bypass TypeScript errors while maintaining compatibility
|
|
12
|
+
const validator = await models_1.CustomValidator.create(validatorAttributes, options);
|
|
13
|
+
return validator;
|
|
14
|
+
};
|
|
15
|
+
exports.create = create;
|
|
16
|
+
const findAll = async (where = {}, options = {}) => {
|
|
17
|
+
logger_1.default.debug('custom-validator - find all validators');
|
|
18
|
+
const { transaction, withDisabled, include, attributes, raw, } = options;
|
|
19
|
+
let validators;
|
|
20
|
+
if (withDisabled) {
|
|
21
|
+
// If withDisabled is true, use unscoped to ignore the default scope that filters disabled items
|
|
22
|
+
// Apply the userScope separately to maintain permission filtering
|
|
23
|
+
validators = await models_1.CustomValidator.unscoped().scope('userScope').findAll({
|
|
24
|
+
where,
|
|
25
|
+
transaction,
|
|
26
|
+
include,
|
|
27
|
+
attributes,
|
|
28
|
+
raw,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
// Use defaultScope and userScope to filter both disabled and by permissions
|
|
33
|
+
// The defaultScope keeps only non-disabled validators
|
|
34
|
+
validators = await models_1.CustomValidator.scope(['defaultScope', 'userScope']).findAll({
|
|
35
|
+
where,
|
|
36
|
+
transaction,
|
|
37
|
+
include,
|
|
38
|
+
attributes,
|
|
39
|
+
raw,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
return validators;
|
|
43
|
+
};
|
|
44
|
+
exports.findAll = findAll;
|
|
45
|
+
const findAllByModelType = async (modelType, entityId, options = {}) => {
|
|
46
|
+
logger_1.default.debug('custom-validator - find all validators by model type');
|
|
47
|
+
return (0, exports.findAll)({
|
|
48
|
+
modelType,
|
|
49
|
+
...(!options?.modelOptions?.useEntityIdFromInclude && { entityId }),
|
|
50
|
+
}, {
|
|
51
|
+
...options,
|
|
52
|
+
include: options?.modelOptions?.include?.(entityId),
|
|
53
|
+
});
|
|
54
|
+
};
|
|
55
|
+
exports.findAllByModelType = findAllByModelType;
|
|
56
|
+
const update = async (id, updates, options) => {
|
|
57
|
+
logger_1.default.debug('custom-validator - update validator');
|
|
58
|
+
return models_1.CustomValidator.update(updates, {
|
|
59
|
+
where: { id },
|
|
60
|
+
returning: true,
|
|
61
|
+
...options,
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
exports.update = update;
|
|
65
|
+
const disable = async (id, options) => {
|
|
66
|
+
logger_1.default.debug('custom-validator - disable validator');
|
|
67
|
+
return (0, exports.update)(id, { disabled: true }, options);
|
|
68
|
+
};
|
|
69
|
+
exports.disable = disable;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { FindOptions } from 'sequelize';
|
|
2
|
+
import { CustomFieldValue } from '../models';
|
|
3
|
+
import type { CreateCustomFieldValue, ValuesToUpdate } from '../types/value';
|
|
4
|
+
import type { ModelOptions } from '../types';
|
|
5
|
+
export declare const findByModelIdAndDefinition: (modelId: string, customFieldDefinitionId: string) => Promise<CustomFieldValue[]>;
|
|
6
|
+
export declare const create: (data: CreateCustomFieldValue, withAssociations?: boolean) => Promise<CustomFieldValue>;
|
|
7
|
+
export declare const findAllValues: () => Promise<CustomFieldValue[]>;
|
|
8
|
+
/**
|
|
9
|
+
* Get all values for model instance id (with their definitions)
|
|
10
|
+
* @param modelId
|
|
11
|
+
* @returns CustomFieldValue[]
|
|
12
|
+
*/
|
|
13
|
+
export declare const findValuesByModelId: (modelId: string) => Promise<CustomFieldValue[]>;
|
|
14
|
+
/**
|
|
15
|
+
* Retrieves custom field values for given model IDs
|
|
16
|
+
* @param modelIds - An array of model IDs to query custom field values for.
|
|
17
|
+
* @param options - Optional configuration object.
|
|
18
|
+
*/
|
|
19
|
+
export declare const findValuesByModelIds: (modelIds: string[], options?: any) => Promise<CustomFieldValue[]>;
|
|
20
|
+
/**
|
|
21
|
+
* Try to update custom field values for a model instance.
|
|
22
|
+
* Create new value record if not exists, but fails if value's definition not exist.
|
|
23
|
+
* Return the updated values
|
|
24
|
+
*/
|
|
25
|
+
export declare const updateValues: (modelType: string, modelId: string, identifiers: string[], valuesToUpdate: ValuesToUpdate, options?: FindOptions & {
|
|
26
|
+
modelOptions?: ModelOptions;
|
|
27
|
+
}) => Promise<CustomFieldValue[]>;
|
|
28
|
+
export declare const deleteValue: (id: string, options?: any) => Promise<any>;
|