@autofleet/sadot 0.5.4-beta.3 → 0.5.4-beta.5

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/.env ADDED
@@ -0,0 +1,3 @@
1
+ DB_USERNAME=emiltayeb
2
+ DB_PASSWORD=123456
3
+ NODE_ENV=test
@@ -41,6 +41,7 @@ const toPascalCase = (str) => str.replace(/(^\w|-\w)/g, (subStr) => subStr.repla
41
41
  router.post('/', async (req, res) => {
42
42
  const { modelName } = req.params;
43
43
  const modelType = toPascalCase(modelName);
44
+ logger_1.default.info('sadot Creating custom field definition', { modelName });
44
45
  try {
45
46
  const validatedPayload = await (0, validations_1.validateCustomFieldDefinitionCreation)(req.body);
46
47
  const customFieldDefinition = await DefinitionRepo.create({
@@ -77,6 +78,7 @@ router.get('/:customFieldDefinitionId', async (req, res) => {
77
78
  router.get('/', async (req, res) => {
78
79
  const { modelName } = req.params;
79
80
  const { entityIds } = req.query;
81
+ logger_1.default.info('sadot Fetching custom field definitions', { modelName, entityIds });
80
82
  const modelType = toPascalCase(modelName);
81
83
  try {
82
84
  const where = { modelType };
package/dist/index.js CHANGED
@@ -32,7 +32,7 @@ __exportStar(require("./utils/constants"), exports);
32
32
  const useCustomFields = async (app, getModel, options) => {
33
33
  const { models } = options;
34
34
  if (app) {
35
- app.use('/api', api_1.default);
35
+ app.use('/api', options.middleware, api_1.default);
36
36
  }
37
37
  const sequelize = (0, db_1.default)(options.databaseConfig);
38
38
  if (process.env.NODE_ENV === 'test') {
@@ -73,12 +73,11 @@ exports.findValuesByModelIds = findValuesByModelIds;
73
73
  * Return the updated values
74
74
  */
75
75
  const updateValues = async (modelType, modelId, identifiers, valuesToUpdate, options = {}) => {
76
+ logger_1.default.info(`custom-fields: updating values for ${modelType} ${modelId}`, { valuesToUpdate });
76
77
  const names = Object.keys(valuesToUpdate);
77
78
  const fieldDefinitions = await DefinitionRepo.findAll({ modelType, name: names, entityId: identifiers }, { withDisabled: true, transaction: options.transaction }) || [];
78
- logger_1.default.info(`custom-fields: updating values for ${modelType} ${modelId}`, { valuesToUpdate, entityId: identifiers });
79
79
  const disabledDefinitions = fieldDefinitions.filter((def) => def.disabled);
80
80
  if (fieldDefinitions.length !== names.length) {
81
- logger_1.default.info(`custom-fields: missing definitions for ${modelType} ${modelId}`, { names, fieldDefinitions });
82
81
  const missingDefinitions = names.filter((name) => !fieldDefinitions.some((def) => def.name === name));
83
82
  throw new errors_1.MissingDefinitionError(missingDefinitions);
84
83
  }
@@ -1,3 +1,4 @@
1
+ import { RequestHandler } from 'express';
1
2
  export type ModelFetcher = (name: string) => any;
2
3
  export type ModelOptions = {
3
4
  name: string;
@@ -10,4 +11,5 @@ export type CustomFieldOptions = {
10
11
  models: ModelOptions[];
11
12
  databaseConfig: any;
12
13
  getUser: () => any;
14
+ middleware?: RequestHandler;
13
15
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@autofleet/sadot",
3
- "version": "0.5.4-beta.3",
3
+ "version": "0.5.4-beta.5",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -9,7 +9,24 @@
9
9
  "linter": "./node_modules/.bin/eslint .",
10
10
  "test": "jest --forceExit --runInBand",
11
11
  "coverage": "jest --coverage --forceExit --runInBand && rm -rf ./coverage",
12
- "dev": "nodemon"
12
+ "build-to-local-repo": "npm run build && cp -r dist/* ../$REPO/node_modules/$npm_package_name/dist",
13
+ "dev": "nodemon",
14
+ "watch": "npm-watch build-to-local-repo"
15
+ },
16
+ "watch": {
17
+ "build-to-local-repo": {
18
+ "extensions": [
19
+ "js",
20
+ "jsx",
21
+ "ts",
22
+ "tsx",
23
+ "css"
24
+ ],
25
+ "patterns": [
26
+ "src"
27
+ ],
28
+ "quiet": false
29
+ }
13
30
  },
14
31
  "dependencies": {
15
32
  "@autofleet/common-types": "^1.7.29",
@@ -18,6 +35,7 @@
18
35
  "@autofleet/logger": "^2.0.5",
19
36
  "express": "^4.18.2",
20
37
  "joi": "^17.7.0",
38
+ "npm-watch": "^0.11.0",
21
39
  "pg": "^8.10.0",
22
40
  "reflect-metadata": "^0.1.13",
23
41
  "sequelize": "^6.31.1",
@@ -18,6 +18,7 @@ const toPascalCase = (str: string): string => str.replace(/(^\w|-\w)/g, (subStr)
18
18
  router.post('/', async (req: Request, res: Response) => {
19
19
  const { modelName } = req.params as any;
20
20
  const modelType = toPascalCase(modelName);
21
+ logger.info('sadot Creating custom field definition', { modelName });
21
22
  try {
22
23
  const validatedPayload: CreateCustomFieldDefinition = await
23
24
  validateCustomFieldDefinitionCreation(req.body);
@@ -58,7 +59,7 @@ router.get('/:customFieldDefinitionId', async (req, res) => {
58
59
  router.get('/', async (req, res) => {
59
60
  const { modelName } = req.params as any;
60
61
  const { entityIds } = req.query as any;
61
-
62
+ logger.info('sadot Fetching custom field definitions', { modelName, entityIds });
62
63
  const modelType = toPascalCase(modelName);
63
64
  try {
64
65
  const where: any = { modelType };
package/src/index.ts CHANGED
@@ -24,7 +24,7 @@ const useCustomFields = async (
24
24
  ): Promise<Sequelize> => {
25
25
  const { models } = options;
26
26
  if (app) {
27
- app.use('/api', api);
27
+ app.use('/api', options.middleware, api);
28
28
  }
29
29
  const sequelize = initDB(options.databaseConfig);
30
30
  if (process.env.NODE_ENV === 'test') {
@@ -52,16 +52,16 @@ export const updateValues = async (
52
52
  valuesToUpdate: ValuesToUpdate,
53
53
  options: any = {},
54
54
  ): Promise<CustomFieldValue[]> => {
55
+ logger.info(`custom-fields: updating values for ${modelType} ${modelId}`, { valuesToUpdate });
56
+
55
57
  const names = Object.keys(valuesToUpdate);
56
58
  const fieldDefinitions = await DefinitionRepo.findAll(
57
59
  { modelType, name: names, entityId: identifiers },
58
60
  { withDisabled: true, transaction: options.transaction },
59
61
  ) || [];
60
62
 
61
- logger.info(`custom-fields: updating values for ${modelType} ${modelId}`, { valuesToUpdate, entityId: identifiers });
62
63
  const disabledDefinitions = fieldDefinitions.filter((def) => def.disabled);
63
64
  if (fieldDefinitions.length !== names.length) {
64
- logger.info(`custom-fields: missing definitions for ${modelType} ${modelId}`, { names, fieldDefinitions });
65
65
  const missingDefinitions = names.filter((name) => !fieldDefinitions.some((def) => def.name === name));
66
66
  throw new MissingDefinitionError(missingDefinitions);
67
67
  }
@@ -1,3 +1,5 @@
1
+ import { RequestHandler } from 'express';
2
+
1
3
  export type ModelFetcher = (name: string) => any;
2
4
 
3
5
  export type ModelOptions = {
@@ -8,8 +10,9 @@ export type ModelOptions = {
8
10
  deletionWebhookHandler?: (instance: any) => any;
9
11
  }
10
12
 
11
- export type CustomFieldOptions= {
13
+ export type CustomFieldOptions = {
12
14
  models: ModelOptions[];
13
15
  databaseConfig: any;
14
16
  getUser: () => any;
17
+ middleware?: RequestHandler
15
18
  };