From f2253e9b3c55f858700e2173e735466eae84250f Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Thu, 12 Jun 2025 12:08:11 +0300 Subject: [PATCH 001/113] Update ajv --- package-lock.json | 32 +++++++++++++++++++++++++------- package.json | 2 +- 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index e9184e85..d906b92b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "4.12.4", "license": "Apache-2.0", "dependencies": { - "ajv": "8.6.3", + "ajv": "8.17.1", "async": "3.2.4", "better-npm-run": "0.1.1", "bfx-facs-base": "git+https://github.com:bitfinexcom/bfx-facs-base.git", @@ -501,15 +501,15 @@ "license": "MIT" }, "node_modules/ajv": { - "version": "8.6.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.3.tgz", - "integrity": "sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -3316,6 +3316,22 @@ "dev": true, "license": "MIT" }, + "node_modules/fast-uri": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", + "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, "node_modules/fastq": { "version": "1.19.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", @@ -6314,6 +6330,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -7702,6 +7719,7 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" diff --git a/package.json b/package.json index 277edfd2..a4af53bd 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "Ezequiel Wernicke " ], "dependencies": { - "ajv": "8.6.3", + "ajv": "8.17.1", "async": "3.2.4", "better-npm-run": "0.1.1", "bfx-facs-base": "git+https://github.com:bitfinexcom/bfx-facs-base.git", From d5419e7cee4b990e839e48ce0d32df469f7c08a0 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Thu, 12 Jun 2025 12:09:25 +0300 Subject: [PATCH 002/113] Add ajv-formats dep --- package-lock.json | 18 ++++++++++++++++++ package.json | 1 + 2 files changed, 19 insertions(+) diff --git a/package-lock.json b/package-lock.json index d906b92b..83680f04 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,6 +10,7 @@ "license": "Apache-2.0", "dependencies": { "ajv": "8.17.1", + "ajv-formats": "3.0.1", "async": "3.2.4", "better-npm-run": "0.1.1", "bfx-facs-base": "git+https://github.com:bitfinexcom/bfx-facs-base.git", @@ -516,6 +517,23 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, "node_modules/ansi-colors": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", diff --git a/package.json b/package.json index a4af53bd..20870f1f 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ ], "dependencies": { "ajv": "8.17.1", + "ajv-formats": "3.0.1", "async": "3.2.4", "better-npm-run": "0.1.1", "bfx-facs-base": "git+https://github.com:bitfinexcom/bfx-facs-base.git", From 9eac114ad264620aee88bc93a3b8f09d2af2e88d Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Thu, 12 Jun 2025 13:48:48 +0300 Subject: [PATCH 003/113] Add schema names --- workers/loc.api/data-validator/schema.names.js | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 workers/loc.api/data-validator/schema.names.js diff --git a/workers/loc.api/data-validator/schema.names.js b/workers/loc.api/data-validator/schema.names.js new file mode 100644 index 00000000..e40a523b --- /dev/null +++ b/workers/loc.api/data-validator/schema.names.js @@ -0,0 +1,5 @@ +'use strict' + +module.exports = { + DEFS: 'defs' +} From 336907c6ac2422381d3b2ba6a3f04178c9c52f07 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Thu, 12 Jun 2025 13:49:12 +0300 Subject: [PATCH 004/113] Add schema domain --- workers/loc.api/data-validator/schema.domain.js | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 workers/loc.api/data-validator/schema.domain.js diff --git a/workers/loc.api/data-validator/schema.domain.js b/workers/loc.api/data-validator/schema.domain.js new file mode 100644 index 00000000..55204c4f --- /dev/null +++ b/workers/loc.api/data-validator/schema.domain.js @@ -0,0 +1,3 @@ +'use strict' + +module.exports = 'report.bitfinex.com' From f83a9d011b67abbe56c0102ea40b222fb0e05f5e Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Thu, 12 Jun 2025 13:49:50 +0300 Subject: [PATCH 005/113] Add schema ids --- workers/loc.api/data-validator/schema.ids.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 workers/loc.api/data-validator/schema.ids.js diff --git a/workers/loc.api/data-validator/schema.ids.js b/workers/loc.api/data-validator/schema.ids.js new file mode 100644 index 00000000..01d695ff --- /dev/null +++ b/workers/loc.api/data-validator/schema.ids.js @@ -0,0 +1,12 @@ +'use strict' + +const SCHEMA_DOMAIN = require('./schema.domain') +const SCHEMA_NAMES = require('./schema.names') + +const SCHEMA_IDS = {} + +for (const [key, name] of Object.entries(SCHEMA_NAMES)) { + SCHEMA_IDS[key] = `${SCHEMA_DOMAIN}/${name}` +} + +module.exports = SCHEMA_IDS From 2622e83ad8c9c802d8631c3b738fcfc3e42d76c9 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Thu, 12 Jun 2025 13:50:58 +0300 Subject: [PATCH 006/113] Add schema defs --- .../loc.api/data-validator/schemas/defs.js | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 workers/loc.api/data-validator/schemas/defs.js diff --git a/workers/loc.api/data-validator/schemas/defs.js b/workers/loc.api/data-validator/schemas/defs.js new file mode 100644 index 00000000..366aa7fd --- /dev/null +++ b/workers/loc.api/data-validator/schemas/defs.js @@ -0,0 +1,20 @@ +'use strict' + +const SCHEMA_IDS = require('../schema.ids') + +module.exports = { + $id: SCHEMA_IDS.DEFS, + definitions: { + dateFormat: { + type: 'string', + enum: [ + 'DD-MM-YY', + 'DD-MM-YYYY', + 'MM-DD-YY', + 'MM-DD-YYYY', + 'YY-MM-DD', + 'YYYY-MM-DD' + ] + } + } +} From 8cddbf72647f10dc33a9db502db085370e4669e4 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Thu, 12 Jun 2025 13:52:02 +0300 Subject: [PATCH 007/113] Add schema entrypoint --- workers/loc.api/data-validator/schemas/index.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 workers/loc.api/data-validator/schemas/index.js diff --git a/workers/loc.api/data-validator/schemas/index.js b/workers/loc.api/data-validator/schemas/index.js new file mode 100644 index 00000000..6e62e914 --- /dev/null +++ b/workers/loc.api/data-validator/schemas/index.js @@ -0,0 +1,13 @@ +'use strict' + +const path = require('node:path') + +const SCHEMA_NAMES = require('../schema.names') + +const schemas = {} + +for (const name of Object.values(SCHEMA_NAMES)) { + schemas[name] = require(path.join(__dirname, name)) +} + +module.exports = schemas From a494300284dad6ddf415508230873366676270ce Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Thu, 12 Jun 2025 13:52:42 +0300 Subject: [PATCH 008/113] Add data-validator module --- workers/loc.api/data-validator/index.js | 53 +++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 workers/loc.api/data-validator/index.js diff --git a/workers/loc.api/data-validator/index.js b/workers/loc.api/data-validator/index.js new file mode 100644 index 00000000..f2c3d915 --- /dev/null +++ b/workers/loc.api/data-validator/index.js @@ -0,0 +1,53 @@ +'use strict' + +const Ajv = require('ajv') +const addFormats = require('ajv-formats') + +const SCHEMA_DOMAIN = require('./schema.domain') +const SCHEMA_NAMES = require('./schema.names') +const SCHEMA_IDS = require('./schema.ids') +const schemas = require('./schemas') + +const ajv = new Ajv({ + schemas: Object.values(schemas), + + // strict mode + strict: true, + strictRequired: true, + allowMatchingProperties: true, + allowUnionTypes: true, + + $data: true, + ownProperties: true, + allErrors: true, + messages: true, + formats: { reserved: true }, + verbose: false +}) +addFormats(ajv) + +const addSchemas = (schemas = []) => { + const _schemas = Array.isArray(schemas) + ? schemas + : [schemas] + + if (_schemas.length === 0) { + return + } + + for (const schema of schemas) { + ajv.addSchema(schema) + } +} + +// TODO: +const validate = () => {} + +module.exports = { + SCHEMA_DOMAIN, + SCHEMA_NAMES, + SCHEMA_IDS, + + addSchemas, + validate +} From 97b8af7af37e6ea3e5f53234c586a399c01d99a7 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Thu, 12 Jun 2025 14:03:30 +0300 Subject: [PATCH 009/113] Move schema ids getter to helper --- .../loc.api/data-validator/helpers/index.js | 20 +++++++++++++++++++ workers/loc.api/data-validator/schema.ids.js | 10 ++-------- 2 files changed, 22 insertions(+), 8 deletions(-) create mode 100644 workers/loc.api/data-validator/helpers/index.js diff --git a/workers/loc.api/data-validator/helpers/index.js b/workers/loc.api/data-validator/helpers/index.js new file mode 100644 index 00000000..16d4c3f7 --- /dev/null +++ b/workers/loc.api/data-validator/helpers/index.js @@ -0,0 +1,20 @@ +'use strict' + +const SCHEMA_DOMAIN = require('../schema.domain') + +const getSchemaIds = (schemaNames, schemaDomain) => { + const domain = schemaDomain ?? SCHEMA_DOMAIN + const names = Object.entries(schemaNames ?? {}) + + const schemaIds = {} + + for (const [key, name] of names) { + schemaIds[key] = `${domain}/${name}` + } + + return schemaIds +} + +module.exports = { + getSchemaIds +} diff --git a/workers/loc.api/data-validator/schema.ids.js b/workers/loc.api/data-validator/schema.ids.js index 01d695ff..9c797d80 100644 --- a/workers/loc.api/data-validator/schema.ids.js +++ b/workers/loc.api/data-validator/schema.ids.js @@ -1,12 +1,6 @@ 'use strict' -const SCHEMA_DOMAIN = require('./schema.domain') const SCHEMA_NAMES = require('./schema.names') +const { getSchemaIds } = require('./helpers') -const SCHEMA_IDS = {} - -for (const [key, name] of Object.entries(SCHEMA_NAMES)) { - SCHEMA_IDS[key] = `${SCHEMA_DOMAIN}/${name}` -} - -module.exports = SCHEMA_IDS +module.exports = getSchemaIds(SCHEMA_NAMES) From 1b2d30445ad9ca5b022e8bb1b51bb3fca4077d56 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Thu, 12 Jun 2025 14:12:39 +0300 Subject: [PATCH 010/113] Move schema require logic to helper --- .../loc.api/data-validator/helpers/index.js | 18 +++++++++++++++++- .../loc.api/data-validator/schemas/index.js | 11 ++--------- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/workers/loc.api/data-validator/helpers/index.js b/workers/loc.api/data-validator/helpers/index.js index 16d4c3f7..207aad00 100644 --- a/workers/loc.api/data-validator/helpers/index.js +++ b/workers/loc.api/data-validator/helpers/index.js @@ -1,5 +1,7 @@ 'use strict' +const path = require('node:path') + const SCHEMA_DOMAIN = require('../schema.domain') const getSchemaIds = (schemaNames, schemaDomain) => { @@ -15,6 +17,20 @@ const getSchemaIds = (schemaNames, schemaDomain) => { return schemaIds } +const requireSchemas = (schemaNames, baseSchemaPath) => { + const schemaPath = baseSchemaPath ?? path.join(__dirname, '../schemas') + const names = Object.values(schemaNames ?? {}) + + const schemas = {} + + for (const name of names) { + schemas[name] = require(path.join(schemaPath, name)) + } + + return schemas +} + module.exports = { - getSchemaIds + getSchemaIds, + requireSchemas } diff --git a/workers/loc.api/data-validator/schemas/index.js b/workers/loc.api/data-validator/schemas/index.js index 6e62e914..cc2e619f 100644 --- a/workers/loc.api/data-validator/schemas/index.js +++ b/workers/loc.api/data-validator/schemas/index.js @@ -1,13 +1,6 @@ 'use strict' -const path = require('node:path') - const SCHEMA_NAMES = require('../schema.names') +const { requireSchemas } = require('../helpers') -const schemas = {} - -for (const name of Object.values(SCHEMA_NAMES)) { - schemas[name] = require(path.join(__dirname, name)) -} - -module.exports = schemas +module.exports = requireSchemas(SCHEMA_NAMES) From 1cf2b201cd16af169dfb180d47b96663716a88b7 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Fri, 13 Jun 2025 11:50:36 +0300 Subject: [PATCH 011/113] Implement validate fn using ajv --- workers/loc.api/data-validator/index.js | 51 +++++++++++++++++++++++-- 1 file changed, 47 insertions(+), 4 deletions(-) diff --git a/workers/loc.api/data-validator/index.js b/workers/loc.api/data-validator/index.js index f2c3d915..3c8a3e71 100644 --- a/workers/loc.api/data-validator/index.js +++ b/workers/loc.api/data-validator/index.js @@ -2,6 +2,17 @@ const Ajv = require('ajv') const addFormats = require('ajv-formats') +const argv = require('yargs').argv + +const isDevEnv = ( + argv.env === 'development' || + process.env.NODE_ENV === 'development' +) + +const { + ArgsParamsError, + ParamsValidSchemaFindingError +} = require('../errors') const SCHEMA_DOMAIN = require('./schema.domain') const SCHEMA_NAMES = require('./schema.names') @@ -9,9 +20,10 @@ const SCHEMA_IDS = require('./schema.ids') const schemas = require('./schemas') const ajv = new Ajv({ + // Compile schema on initialization schemas: Object.values(schemas), - // strict mode + // Strict mode strict: true, strictRequired: true, allowMatchingProperties: true, @@ -22,7 +34,7 @@ const ajv = new Ajv({ allErrors: true, messages: true, formats: { reserved: true }, - verbose: false + verbose: isDevEnv }) addFormats(ajv) @@ -40,8 +52,39 @@ const addSchemas = (schemas = []) => { } } -// TODO: -const validate = () => {} +const validate = (args, schemaId) => { + const params = args?.params + + if ( + typeof params === 'undefined' || + params === null + ) { + return true + } + + const validate = ajv.getSchema(schemaId) + + if (typeof validate !== 'function') { + throw new ParamsValidSchemaFindingError() + } + + const res = validate(params) + + // It covers a case when schema has `$async: true` keyword + if (res instanceof Promise) { + return res + .then(() => true) + .catch((err) => Promise.reject( + new ArgsParamsError({ data: err.errors }) + )) + } + + if (res) { + return true + } + + throw new ArgsParamsError({ data: validate.errors }) +} module.exports = { SCHEMA_DOMAIN, From af1d3ac42843d628af359e04dcdfdf52aa5edb0f Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Fri, 13 Jun 2025 12:30:15 +0300 Subject: [PATCH 012/113] Add DataValidator service type --- workers/loc.api/di/types.js | 1 + 1 file changed, 1 insertion(+) diff --git a/workers/loc.api/di/types.js b/workers/loc.api/di/types.js index 09b5b67a..74be5ae9 100644 --- a/workers/loc.api/di/types.js +++ b/workers/loc.api/di/types.js @@ -8,6 +8,7 @@ module.exports = { Container: Symbol.for('Container'), LoggerFactory: Symbol.for('LoggerFactory'), Logger: Symbol.for('Logger'), + DataValidator: Symbol.for('DataValidator'), I18next: Symbol.for('I18next'), RService: Symbol.for('RService'), DeflateFac: Symbol.for('DeflateFac'), From 5b62da81eb21bed4476ce03a065d24e3f1d71c77 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Fri, 13 Jun 2025 12:30:39 +0300 Subject: [PATCH 013/113] Add DataValidator to di --- workers/loc.api/di/core.deps.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/workers/loc.api/di/core.deps.js b/workers/loc.api/di/core.deps.js index ad4a406d..db01e483 100644 --- a/workers/loc.api/di/core.deps.js +++ b/workers/loc.api/di/core.deps.js @@ -6,6 +6,7 @@ const TYPES = require('./types') const { bindDepsToFn } = require('./helpers') const loggerFactory = require('../logger') +const dataValidator = require('../data-validator') module.exports = () => { return new ContainerModule((bind) => { @@ -16,5 +17,6 @@ module.exports = () => { [TYPES.CONF] ) }).inSingletonScope() + bind(TYPES.DataValidator).toConstantValue(dataValidator) }) } From a567cb643efbe092a0d1882941e8013654bf95f4 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Fri, 13 Jun 2025 12:51:22 +0300 Subject: [PATCH 014/113] Add language to param schema definitions --- workers/loc.api/data-validator/schemas/defs.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/workers/loc.api/data-validator/schemas/defs.js b/workers/loc.api/data-validator/schemas/defs.js index 366aa7fd..facdb80d 100644 --- a/workers/loc.api/data-validator/schemas/defs.js +++ b/workers/loc.api/data-validator/schemas/defs.js @@ -15,6 +15,10 @@ module.exports = { 'YY-MM-DD', 'YYYY-MM-DD' ] + }, + language: { + type: 'string', + minLength: 2 } } } From 1af95b2b3fc2be84b34e1743a2f9a24e7115f3f3 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Mon, 16 Jun 2025 09:00:02 +0300 Subject: [PATCH 015/113] Add timezone to param schema definitions --- workers/loc.api/data-validator/schemas/defs.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/workers/loc.api/data-validator/schemas/defs.js b/workers/loc.api/data-validator/schemas/defs.js index facdb80d..223021c9 100644 --- a/workers/loc.api/data-validator/schemas/defs.js +++ b/workers/loc.api/data-validator/schemas/defs.js @@ -19,6 +19,9 @@ module.exports = { language: { type: 'string', minLength: 2 + }, + timezone: { + type: ['number', 'string'] } } } From 47c20d6468b7a0c2d164639456e441ca33608b43 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Mon, 16 Jun 2025 10:26:48 +0300 Subject: [PATCH 016/113] Add start to param schema definitions --- workers/loc.api/data-validator/schemas/defs.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/workers/loc.api/data-validator/schemas/defs.js b/workers/loc.api/data-validator/schemas/defs.js index 223021c9..e93beb1c 100644 --- a/workers/loc.api/data-validator/schemas/defs.js +++ b/workers/loc.api/data-validator/schemas/defs.js @@ -22,6 +22,10 @@ module.exports = { }, timezone: { type: ['number', 'string'] + }, + start: { + type: 'integer', + minimum: 0 } } } From f5e4b56f4273134864e0341ffc5428537d4b3b78 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Mon, 16 Jun 2025 10:27:13 +0300 Subject: [PATCH 017/113] Add end to param schema definitions --- workers/loc.api/data-validator/schemas/defs.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/workers/loc.api/data-validator/schemas/defs.js b/workers/loc.api/data-validator/schemas/defs.js index e93beb1c..25d1bfb3 100644 --- a/workers/loc.api/data-validator/schemas/defs.js +++ b/workers/loc.api/data-validator/schemas/defs.js @@ -26,6 +26,11 @@ module.exports = { start: { type: 'integer', minimum: 0 + }, + end: { + type: 'integer', + exclusiveMinimum: { $data: '1/start' }, + minimum: Date.UTC(2013) } } } From e29fc9e764f9d694875810360ed429f9bc060599 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Mon, 16 Jun 2025 10:34:09 +0300 Subject: [PATCH 018/113] Add limit to param schema definitions --- workers/loc.api/data-validator/schemas/defs.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/workers/loc.api/data-validator/schemas/defs.js b/workers/loc.api/data-validator/schemas/defs.js index 25d1bfb3..dc78f694 100644 --- a/workers/loc.api/data-validator/schemas/defs.js +++ b/workers/loc.api/data-validator/schemas/defs.js @@ -31,6 +31,10 @@ module.exports = { type: 'integer', exclusiveMinimum: { $data: '1/start' }, minimum: Date.UTC(2013) + }, + limit: { + type: 'integer', + minimum: 1 } } } From 16d2ebf4545610cf490dc4db382b902c28036d1b Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Mon, 16 Jun 2025 10:50:44 +0300 Subject: [PATCH 019/113] Add symbol to param schema definitions --- workers/loc.api/data-validator/schemas/defs.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/workers/loc.api/data-validator/schemas/defs.js b/workers/loc.api/data-validator/schemas/defs.js index dc78f694..6d9f3d41 100644 --- a/workers/loc.api/data-validator/schemas/defs.js +++ b/workers/loc.api/data-validator/schemas/defs.js @@ -35,6 +35,23 @@ module.exports = { limit: { type: 'integer', minimum: 1 + }, + symbol: { + type: ['string', 'array'], + if: { + type: 'array' + }, + then: { + uniqueItems: true, + minItems: 1, + items: { + type: 'string', + minLength: 3 + } + }, + else: { + minLength: 3 + } } } } From fff8d8b5eae5542440c56607a292b86461c7c601 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Mon, 16 Jun 2025 10:56:31 +0300 Subject: [PATCH 020/113] Add sort to param schema definitions --- workers/loc.api/data-validator/schemas/defs.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/workers/loc.api/data-validator/schemas/defs.js b/workers/loc.api/data-validator/schemas/defs.js index 6d9f3d41..fe74b2c1 100644 --- a/workers/loc.api/data-validator/schemas/defs.js +++ b/workers/loc.api/data-validator/schemas/defs.js @@ -52,6 +52,10 @@ module.exports = { else: { minLength: 3 } + }, + sort: { + type: 'integer', + enum: [1, -1] } } } From 8beffc3b80dc3fe3c99663fff7be78c8fa3f17d2 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Mon, 16 Jun 2025 10:59:25 +0300 Subject: [PATCH 021/113] Add email to param schema definitions --- workers/loc.api/data-validator/schemas/defs.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/workers/loc.api/data-validator/schemas/defs.js b/workers/loc.api/data-validator/schemas/defs.js index fe74b2c1..85fe225f 100644 --- a/workers/loc.api/data-validator/schemas/defs.js +++ b/workers/loc.api/data-validator/schemas/defs.js @@ -56,6 +56,10 @@ module.exports = { sort: { type: 'integer', enum: [1, -1] + }, + email: { + type: 'string', + format: 'email' } } } From 2c267a129e792f72759aeaa1c50a31ed69701cbb Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Mon, 16 Jun 2025 11:23:53 +0300 Subject: [PATCH 022/113] Add id to param schema definitions --- workers/loc.api/data-validator/schemas/defs.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/workers/loc.api/data-validator/schemas/defs.js b/workers/loc.api/data-validator/schemas/defs.js index 85fe225f..9e037915 100644 --- a/workers/loc.api/data-validator/schemas/defs.js +++ b/workers/loc.api/data-validator/schemas/defs.js @@ -60,6 +60,22 @@ module.exports = { email: { type: 'string', format: 'email' + }, + strId: { + type: 'string', + minLength: 1 + }, + intId: { + type: 'integer', + minimum: 0 + }, + arrId: { + type: 'array', + uniqueItems: true, + minItems: 1, + items: { + $ref: '#/definitions/intId' + } } } } From 2626a15cb16e70546fbd89aee5f26a636846e211 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Mon, 16 Jun 2025 11:30:32 +0300 Subject: [PATCH 023/113] Add symbol with min-max to param schema definitions --- .../loc.api/data-validator/schemas/defs.js | 42 +++++++++++++++++-- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/workers/loc.api/data-validator/schemas/defs.js b/workers/loc.api/data-validator/schemas/defs.js index 9e037915..2fb85f5d 100644 --- a/workers/loc.api/data-validator/schemas/defs.js +++ b/workers/loc.api/data-validator/schemas/defs.js @@ -37,6 +37,42 @@ module.exports = { minimum: 1 }, symbol: { + type: 'string', + minLength: 3 + }, + symbolWithMinItem: { + type: ['string', 'array'], + if: { + type: 'array' + }, + then: { + uniqueItems: true, + minItems: 1, + items: { + $ref: '#/definitions/symbol' + } + }, + else: { + $ref: '#/definitions/symbol' + } + }, + symbolWithMaxItem: { + type: ['string', 'array'], + if: { + type: 'array' + }, + then: { + uniqueItems: true, + maxItems: 1, + items: { + $ref: '#/definitions/symbol' + } + }, + else: { + $ref: '#/definitions/symbol' + } + }, + symbolWithMinMaxItem: { type: ['string', 'array'], if: { type: 'array' @@ -44,13 +80,13 @@ module.exports = { then: { uniqueItems: true, minItems: 1, + maxItems: 1, items: { - type: 'string', - minLength: 3 + $ref: '#/definitions/symbol' } }, else: { - minLength: 3 + $ref: '#/definitions/symbol' } }, sort: { From dc57d84871e95edc11eb8d4eceabf35109f14903 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Mon, 16 Jun 2025 11:37:41 +0300 Subject: [PATCH 024/113] Add symbol without min-max to param schema definitions --- .../loc.api/data-validator/schemas/defs.js | 29 ++++++++++++++----- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/workers/loc.api/data-validator/schemas/defs.js b/workers/loc.api/data-validator/schemas/defs.js index 2fb85f5d..7b822029 100644 --- a/workers/loc.api/data-validator/schemas/defs.js +++ b/workers/loc.api/data-validator/schemas/defs.js @@ -36,10 +36,25 @@ module.exports = { type: 'integer', minimum: 1 }, - symbol: { + strSymbol: { type: 'string', minLength: 3 }, + symbol: { + type: ['string', 'array'], + if: { + type: 'array' + }, + then: { + uniqueItems: true, + items: { + $ref: '#/definitions/strSymbol' + } + }, + else: { + $ref: '#/definitions/strSymbol' + } + }, symbolWithMinItem: { type: ['string', 'array'], if: { @@ -49,11 +64,11 @@ module.exports = { uniqueItems: true, minItems: 1, items: { - $ref: '#/definitions/symbol' + $ref: '#/definitions/strSymbol' } }, else: { - $ref: '#/definitions/symbol' + $ref: '#/definitions/strSymbol' } }, symbolWithMaxItem: { @@ -65,11 +80,11 @@ module.exports = { uniqueItems: true, maxItems: 1, items: { - $ref: '#/definitions/symbol' + $ref: '#/definitions/strSymbol' } }, else: { - $ref: '#/definitions/symbol' + $ref: '#/definitions/strSymbol' } }, symbolWithMinMaxItem: { @@ -82,11 +97,11 @@ module.exports = { minItems: 1, maxItems: 1, items: { - $ref: '#/definitions/symbol' + $ref: '#/definitions/strSymbol' } }, else: { - $ref: '#/definitions/symbol' + $ref: '#/definitions/strSymbol' } }, sort: { From 41eb66aff659f5ea366e072186f5533c0bd73d6f Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Mon, 16 Jun 2025 12:05:02 +0300 Subject: [PATCH 025/113] Add isPDFRequired to param schema definitions --- workers/loc.api/data-validator/schemas/defs.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/workers/loc.api/data-validator/schemas/defs.js b/workers/loc.api/data-validator/schemas/defs.js index 7b822029..c88703fa 100644 --- a/workers/loc.api/data-validator/schemas/defs.js +++ b/workers/loc.api/data-validator/schemas/defs.js @@ -127,6 +127,9 @@ module.exports = { items: { $ref: '#/definitions/intId' } + }, + isPDFRequired: { + type: 'boolean' } } } From aaa12489dad911e1fb3e8cf1607e89d08472f2d1 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Mon, 16 Jun 2025 12:44:38 +0300 Subject: [PATCH 026/113] Add common-req param schema --- .../loc.api/data-validator/schema.names.js | 3 ++- .../data-validator/schemas/common-req.js | 22 +++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 workers/loc.api/data-validator/schemas/common-req.js diff --git a/workers/loc.api/data-validator/schema.names.js b/workers/loc.api/data-validator/schema.names.js index e40a523b..506b5291 100644 --- a/workers/loc.api/data-validator/schema.names.js +++ b/workers/loc.api/data-validator/schema.names.js @@ -1,5 +1,6 @@ 'use strict' module.exports = { - DEFS: 'defs' + DEFS: 'defs', + COMMON_REQ: 'common-req' } diff --git a/workers/loc.api/data-validator/schemas/common-req.js b/workers/loc.api/data-validator/schemas/common-req.js new file mode 100644 index 00000000..b46f8756 --- /dev/null +++ b/workers/loc.api/data-validator/schemas/common-req.js @@ -0,0 +1,22 @@ +'use strict' + +const SCHEMA_IDS = require('../schema.ids') + +module.exports = { + $id: SCHEMA_IDS.COMMON_REQ, + type: 'object', + properties: { + start: { + $ref: 'defs#/definitions/start' + }, + end: { + $ref: 'defs#/definitions/end' + }, + limit: { + $ref: 'defs#/definitions/limit' + }, + symbol: { + $ref: 'defs#/definitions/symbolWithMinItem' + } + } +} From ade9b3c60e2b9629988e9b83debeccf5b7777d4b Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Mon, 16 Jun 2025 13:57:01 +0300 Subject: [PATCH 027/113] Inject DataValidator into main report service --- workers/loc.api/di/app.deps.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/workers/loc.api/di/app.deps.js b/workers/loc.api/di/app.deps.js index 4a57dd8c..321916f1 100644 --- a/workers/loc.api/di/app.deps.js +++ b/workers/loc.api/di/app.deps.js @@ -55,7 +55,8 @@ module.exports = ({ ['_generateReportFile', TYPES.GenerateReportFile], ['_hasGrcService', TYPES.HasGrcService], ['_weightedAveragesReport', TYPES.WeightedAveragesReport], - ['_i18next', TYPES.I18next] + ['_i18next', TYPES.I18next], + ['_dataValidator', TYPES.DataValidator] ]) bind(TYPES.RServiceDepsSchemaAliase) .toDynamicValue((ctx) => { From 0acd24912d0e9aaaf71d3f4d683dcbc188221e88 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Mon, 16 Jun 2025 13:59:26 +0300 Subject: [PATCH 028/113] Rename common req param schema --- workers/loc.api/data-validator/schema.names.js | 2 +- .../data-validator/schemas/{common-req.js => commonReq.js} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename workers/loc.api/data-validator/schemas/{common-req.js => commonReq.js} (100%) diff --git a/workers/loc.api/data-validator/schema.names.js b/workers/loc.api/data-validator/schema.names.js index 506b5291..924583aa 100644 --- a/workers/loc.api/data-validator/schema.names.js +++ b/workers/loc.api/data-validator/schema.names.js @@ -2,5 +2,5 @@ module.exports = { DEFS: 'defs', - COMMON_REQ: 'common-req' + COMMON_REQ: 'commonReq' } diff --git a/workers/loc.api/data-validator/schemas/common-req.js b/workers/loc.api/data-validator/schemas/commonReq.js similarity index 100% rename from workers/loc.api/data-validator/schemas/common-req.js rename to workers/loc.api/data-validator/schemas/commonReq.js From 240d67c5326107495d899297347d44a9ec29df3a Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Tue, 17 Jun 2025 09:21:11 +0300 Subject: [PATCH 029/113] Add getWeightedAveragesReport req param schema --- .../loc.api/data-validator/schema.names.js | 3 ++- .../schemas/getWeightedAveragesReportReq.js | 20 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 workers/loc.api/data-validator/schemas/getWeightedAveragesReportReq.js diff --git a/workers/loc.api/data-validator/schema.names.js b/workers/loc.api/data-validator/schema.names.js index 924583aa..660e223c 100644 --- a/workers/loc.api/data-validator/schema.names.js +++ b/workers/loc.api/data-validator/schema.names.js @@ -2,5 +2,6 @@ module.exports = { DEFS: 'defs', - COMMON_REQ: 'commonReq' + COMMON_REQ: 'commonReq', + GET_WEIGHTED_AVERAGES_REPORT_REQ: 'getWeightedAveragesReportReq' } diff --git a/workers/loc.api/data-validator/schemas/getWeightedAveragesReportReq.js b/workers/loc.api/data-validator/schemas/getWeightedAveragesReportReq.js new file mode 100644 index 00000000..d9cf39ed --- /dev/null +++ b/workers/loc.api/data-validator/schemas/getWeightedAveragesReportReq.js @@ -0,0 +1,20 @@ +'use strict' + +const SCHEMA_IDS = require('../schema.ids') + +module.exports = { + $id: SCHEMA_IDS.GET_WEIGHTED_AVERAGES_REPORT_REQ, + type: 'object', + required: ['symbol'], + properties: { + start: { + $ref: 'defs#/definitions/start' + }, + end: { + $ref: 'defs#/definitions/end' + }, + symbol: { + $ref: 'defs#/definitions/symbolWithMaxItem' + } + } +} From adda8c96a8f9fc1f86b1614a5f8a61a2bc80fdd6 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Tue, 17 Jun 2025 09:44:54 +0300 Subject: [PATCH 030/113] Use DataValidator with getWeightedAveragesReport endpoint --- workers/loc.api/service.report.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/workers/loc.api/service.report.js b/workers/loc.api/service.report.js index d6171020..24c3c9e1 100644 --- a/workers/loc.api/service.report.js +++ b/workers/loc.api/service.report.js @@ -673,7 +673,10 @@ class ReportService extends Api { getWeightedAveragesReport (space, args, cb) { return this._responder(async () => { - checkParams(args, 'paramsSchemaForWeightedAveragesReportApi', ['symbol']) + this._dataValidator.validate( + args, + this._dataValidator.SCHEMA_IDS.GET_WEIGHTED_AVERAGES_REPORT_REQ + ) return this._weightedAveragesReport .getWeightedAveragesReport(args) From c91deb7330d6965cb82b4c6e196f722b8748ebed Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Tue, 17 Jun 2025 13:29:17 +0300 Subject: [PATCH 031/113] Add getPayInvoiceList req param schema --- .../loc.api/data-validator/schema.names.js | 3 ++- .../schemas/getPayInvoiceListReq.js | 26 +++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 workers/loc.api/data-validator/schemas/getPayInvoiceListReq.js diff --git a/workers/loc.api/data-validator/schema.names.js b/workers/loc.api/data-validator/schema.names.js index 660e223c..2839d7e7 100644 --- a/workers/loc.api/data-validator/schema.names.js +++ b/workers/loc.api/data-validator/schema.names.js @@ -3,5 +3,6 @@ module.exports = { DEFS: 'defs', COMMON_REQ: 'commonReq', - GET_WEIGHTED_AVERAGES_REPORT_REQ: 'getWeightedAveragesReportReq' + GET_WEIGHTED_AVERAGES_REPORT_REQ: 'getWeightedAveragesReportReq', + GET_PAY_INVOICE_LIST_REQ: 'getPayInvoiceListReq' } diff --git a/workers/loc.api/data-validator/schemas/getPayInvoiceListReq.js b/workers/loc.api/data-validator/schemas/getPayInvoiceListReq.js new file mode 100644 index 00000000..72380719 --- /dev/null +++ b/workers/loc.api/data-validator/schemas/getPayInvoiceListReq.js @@ -0,0 +1,26 @@ +'use strict' + +const SCHEMA_IDS = require('../schema.ids') + +module.exports = { + $id: SCHEMA_IDS.COMMON_REQ, + type: 'object', + additionalProperties: false, + properties: { + start: { + $ref: 'defs#/definitions/start' + }, + end: { + $ref: 'defs#/definitions/end' + }, + limit: { + $ref: 'defs#/definitions/limit' + }, + symbol: { + $ref: 'defs#/definitions/symbolWithMinItem' + }, + id: { + $ref: 'defs#/definitions/strId' + } + } +} From 686e91efa319762c7090c67c33ff88b0d7606616 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Tue, 17 Jun 2025 13:36:07 +0300 Subject: [PATCH 032/113] Prevent additional properties in params schemas --- workers/loc.api/data-validator/schemas/commonReq.js | 1 + .../data-validator/schemas/getWeightedAveragesReportReq.js | 1 + 2 files changed, 2 insertions(+) diff --git a/workers/loc.api/data-validator/schemas/commonReq.js b/workers/loc.api/data-validator/schemas/commonReq.js index b46f8756..8517d576 100644 --- a/workers/loc.api/data-validator/schemas/commonReq.js +++ b/workers/loc.api/data-validator/schemas/commonReq.js @@ -5,6 +5,7 @@ const SCHEMA_IDS = require('../schema.ids') module.exports = { $id: SCHEMA_IDS.COMMON_REQ, type: 'object', + additionalProperties: false, properties: { start: { $ref: 'defs#/definitions/start' diff --git a/workers/loc.api/data-validator/schemas/getWeightedAveragesReportReq.js b/workers/loc.api/data-validator/schemas/getWeightedAveragesReportReq.js index d9cf39ed..92a79e52 100644 --- a/workers/loc.api/data-validator/schemas/getWeightedAveragesReportReq.js +++ b/workers/loc.api/data-validator/schemas/getWeightedAveragesReportReq.js @@ -5,6 +5,7 @@ const SCHEMA_IDS = require('../schema.ids') module.exports = { $id: SCHEMA_IDS.GET_WEIGHTED_AVERAGES_REPORT_REQ, type: 'object', + additionalProperties: false, required: ['symbol'], properties: { start: { From 6c4c6c34f50b2b8bc8aa9507b40c6cae7e9a5172 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Tue, 17 Jun 2025 14:08:27 +0300 Subject: [PATCH 033/113] Add getStatusMessages req param schema --- workers/loc.api/data-validator/schema.names.js | 3 ++- .../schemas/getStatusMessagesReq.js | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 workers/loc.api/data-validator/schemas/getStatusMessagesReq.js diff --git a/workers/loc.api/data-validator/schema.names.js b/workers/loc.api/data-validator/schema.names.js index 2839d7e7..b6e6285a 100644 --- a/workers/loc.api/data-validator/schema.names.js +++ b/workers/loc.api/data-validator/schema.names.js @@ -4,5 +4,6 @@ module.exports = { DEFS: 'defs', COMMON_REQ: 'commonReq', GET_WEIGHTED_AVERAGES_REPORT_REQ: 'getWeightedAveragesReportReq', - GET_PAY_INVOICE_LIST_REQ: 'getPayInvoiceListReq' + GET_PAY_INVOICE_LIST_REQ: 'getPayInvoiceListReq', + GET_STATUS_ME_REQ: 'getStatusMessagesReq' } diff --git a/workers/loc.api/data-validator/schemas/getStatusMessagesReq.js b/workers/loc.api/data-validator/schemas/getStatusMessagesReq.js new file mode 100644 index 00000000..28f51163 --- /dev/null +++ b/workers/loc.api/data-validator/schemas/getStatusMessagesReq.js @@ -0,0 +1,17 @@ +'use strict' + +const SCHEMA_IDS = require('../schema.ids') + +module.exports = { + $id: SCHEMA_IDS.COMMON_REQ, + type: 'object', + additionalProperties: false, + properties: { + symbol: { + $ref: 'defs#/definitions/symbolWithMinItem' + }, + type: { + type: 'string' + } + } +} From 7814943639a86cc6413bc4abcf8a769f9ee7066a Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Tue, 17 Jun 2025 14:13:11 +0300 Subject: [PATCH 034/113] Add notCheckNextPage into param schemas --- workers/loc.api/data-validator/schemas/commonReq.js | 3 +++ workers/loc.api/data-validator/schemas/defs.js | 3 +++ workers/loc.api/data-validator/schemas/getPayInvoiceListReq.js | 3 +++ workers/loc.api/data-validator/schemas/getStatusMessagesReq.js | 3 +++ .../data-validator/schemas/getWeightedAveragesReportReq.js | 3 +++ 5 files changed, 15 insertions(+) diff --git a/workers/loc.api/data-validator/schemas/commonReq.js b/workers/loc.api/data-validator/schemas/commonReq.js index 8517d576..c3a17713 100644 --- a/workers/loc.api/data-validator/schemas/commonReq.js +++ b/workers/loc.api/data-validator/schemas/commonReq.js @@ -18,6 +18,9 @@ module.exports = { }, symbol: { $ref: 'defs#/definitions/symbolWithMinItem' + }, + notCheckNextPage: { + $ref: 'defs#/definitions/notCheckNextPage' } } } diff --git a/workers/loc.api/data-validator/schemas/defs.js b/workers/loc.api/data-validator/schemas/defs.js index c88703fa..a5dcc8e4 100644 --- a/workers/loc.api/data-validator/schemas/defs.js +++ b/workers/loc.api/data-validator/schemas/defs.js @@ -128,6 +128,9 @@ module.exports = { $ref: '#/definitions/intId' } }, + notCheckNextPage: { + type: 'boolean' + }, isPDFRequired: { type: 'boolean' } diff --git a/workers/loc.api/data-validator/schemas/getPayInvoiceListReq.js b/workers/loc.api/data-validator/schemas/getPayInvoiceListReq.js index 72380719..811f5ee2 100644 --- a/workers/loc.api/data-validator/schemas/getPayInvoiceListReq.js +++ b/workers/loc.api/data-validator/schemas/getPayInvoiceListReq.js @@ -21,6 +21,9 @@ module.exports = { }, id: { $ref: 'defs#/definitions/strId' + }, + notCheckNextPage: { + $ref: 'defs#/definitions/notCheckNextPage' } } } diff --git a/workers/loc.api/data-validator/schemas/getStatusMessagesReq.js b/workers/loc.api/data-validator/schemas/getStatusMessagesReq.js index 28f51163..72331b45 100644 --- a/workers/loc.api/data-validator/schemas/getStatusMessagesReq.js +++ b/workers/loc.api/data-validator/schemas/getStatusMessagesReq.js @@ -12,6 +12,9 @@ module.exports = { }, type: { type: 'string' + }, + notCheckNextPage: { + $ref: 'defs#/definitions/notCheckNextPage' } } } diff --git a/workers/loc.api/data-validator/schemas/getWeightedAveragesReportReq.js b/workers/loc.api/data-validator/schemas/getWeightedAveragesReportReq.js index 92a79e52..053ae2e8 100644 --- a/workers/loc.api/data-validator/schemas/getWeightedAveragesReportReq.js +++ b/workers/loc.api/data-validator/schemas/getWeightedAveragesReportReq.js @@ -16,6 +16,9 @@ module.exports = { }, symbol: { $ref: 'defs#/definitions/symbolWithMaxItem' + }, + notCheckNextPage: { + $ref: 'defs#/definitions/notCheckNextPage' } } } From 6a383964d0edc1c6576b5073e30bde71517abeb2 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Tue, 17 Jun 2025 14:14:58 +0300 Subject: [PATCH 035/113] Add notThrowError into param schemas --- workers/loc.api/data-validator/schemas/commonReq.js | 3 +++ workers/loc.api/data-validator/schemas/defs.js | 3 +++ workers/loc.api/data-validator/schemas/getPayInvoiceListReq.js | 3 +++ workers/loc.api/data-validator/schemas/getStatusMessagesReq.js | 3 +++ .../data-validator/schemas/getWeightedAveragesReportReq.js | 3 +++ 5 files changed, 15 insertions(+) diff --git a/workers/loc.api/data-validator/schemas/commonReq.js b/workers/loc.api/data-validator/schemas/commonReq.js index c3a17713..f868b6b8 100644 --- a/workers/loc.api/data-validator/schemas/commonReq.js +++ b/workers/loc.api/data-validator/schemas/commonReq.js @@ -21,6 +21,9 @@ module.exports = { }, notCheckNextPage: { $ref: 'defs#/definitions/notCheckNextPage' + }, + notThrowError: { + $ref: 'defs#/definitions/notThrowError' } } } diff --git a/workers/loc.api/data-validator/schemas/defs.js b/workers/loc.api/data-validator/schemas/defs.js index a5dcc8e4..68e1d5ed 100644 --- a/workers/loc.api/data-validator/schemas/defs.js +++ b/workers/loc.api/data-validator/schemas/defs.js @@ -131,6 +131,9 @@ module.exports = { notCheckNextPage: { type: 'boolean' }, + notThrowError: { + type: 'boolean' + }, isPDFRequired: { type: 'boolean' } diff --git a/workers/loc.api/data-validator/schemas/getPayInvoiceListReq.js b/workers/loc.api/data-validator/schemas/getPayInvoiceListReq.js index 811f5ee2..3d0e9f6b 100644 --- a/workers/loc.api/data-validator/schemas/getPayInvoiceListReq.js +++ b/workers/loc.api/data-validator/schemas/getPayInvoiceListReq.js @@ -24,6 +24,9 @@ module.exports = { }, notCheckNextPage: { $ref: 'defs#/definitions/notCheckNextPage' + }, + notThrowError: { + $ref: 'defs#/definitions/notThrowError' } } } diff --git a/workers/loc.api/data-validator/schemas/getStatusMessagesReq.js b/workers/loc.api/data-validator/schemas/getStatusMessagesReq.js index 72331b45..7e8c19a2 100644 --- a/workers/loc.api/data-validator/schemas/getStatusMessagesReq.js +++ b/workers/loc.api/data-validator/schemas/getStatusMessagesReq.js @@ -15,6 +15,9 @@ module.exports = { }, notCheckNextPage: { $ref: 'defs#/definitions/notCheckNextPage' + }, + notThrowError: { + $ref: 'defs#/definitions/notThrowError' } } } diff --git a/workers/loc.api/data-validator/schemas/getWeightedAveragesReportReq.js b/workers/loc.api/data-validator/schemas/getWeightedAveragesReportReq.js index 053ae2e8..3132a577 100644 --- a/workers/loc.api/data-validator/schemas/getWeightedAveragesReportReq.js +++ b/workers/loc.api/data-validator/schemas/getWeightedAveragesReportReq.js @@ -19,6 +19,9 @@ module.exports = { }, notCheckNextPage: { $ref: 'defs#/definitions/notCheckNextPage' + }, + notThrowError: { + $ref: 'defs#/definitions/notThrowError' } } } From 073280657bcf54f80a478c62017257b1ca4cc7f7 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Tue, 17 Jun 2025 14:18:31 +0300 Subject: [PATCH 036/113] Add isSyncRequest into param schemas --- workers/loc.api/data-validator/schemas/commonReq.js | 3 +++ workers/loc.api/data-validator/schemas/defs.js | 3 +++ workers/loc.api/data-validator/schemas/getPayInvoiceListReq.js | 3 +++ workers/loc.api/data-validator/schemas/getStatusMessagesReq.js | 3 +++ 4 files changed, 12 insertions(+) diff --git a/workers/loc.api/data-validator/schemas/commonReq.js b/workers/loc.api/data-validator/schemas/commonReq.js index f868b6b8..78c25033 100644 --- a/workers/loc.api/data-validator/schemas/commonReq.js +++ b/workers/loc.api/data-validator/schemas/commonReq.js @@ -24,6 +24,9 @@ module.exports = { }, notThrowError: { $ref: 'defs#/definitions/notThrowError' + }, + isSyncRequest: { + $ref: 'defs#/definitions/isSyncRequest' } } } diff --git a/workers/loc.api/data-validator/schemas/defs.js b/workers/loc.api/data-validator/schemas/defs.js index 68e1d5ed..3ed6f694 100644 --- a/workers/loc.api/data-validator/schemas/defs.js +++ b/workers/loc.api/data-validator/schemas/defs.js @@ -134,6 +134,9 @@ module.exports = { notThrowError: { type: 'boolean' }, + isSyncRequest: { + type: 'boolean' + }, isPDFRequired: { type: 'boolean' } diff --git a/workers/loc.api/data-validator/schemas/getPayInvoiceListReq.js b/workers/loc.api/data-validator/schemas/getPayInvoiceListReq.js index 3d0e9f6b..45c1f6ff 100644 --- a/workers/loc.api/data-validator/schemas/getPayInvoiceListReq.js +++ b/workers/loc.api/data-validator/schemas/getPayInvoiceListReq.js @@ -27,6 +27,9 @@ module.exports = { }, notThrowError: { $ref: 'defs#/definitions/notThrowError' + }, + isSyncRequest: { + $ref: 'defs#/definitions/isSyncRequest' } } } diff --git a/workers/loc.api/data-validator/schemas/getStatusMessagesReq.js b/workers/loc.api/data-validator/schemas/getStatusMessagesReq.js index 7e8c19a2..feaaacd9 100644 --- a/workers/loc.api/data-validator/schemas/getStatusMessagesReq.js +++ b/workers/loc.api/data-validator/schemas/getStatusMessagesReq.js @@ -18,6 +18,9 @@ module.exports = { }, notThrowError: { $ref: 'defs#/definitions/notThrowError' + }, + isSyncRequest: { + $ref: 'defs#/definitions/isSyncRequest' } } } From 2060b8c85ec82d95ef34c9d82e8e6af973a21f5d Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Wed, 18 Jun 2025 07:41:47 +0300 Subject: [PATCH 037/113] Add getPublicTrades req param schema --- .../loc.api/data-validator/schema.names.js | 3 +- .../schemas/getPublicTradesReq.js | 32 +++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 workers/loc.api/data-validator/schemas/getPublicTradesReq.js diff --git a/workers/loc.api/data-validator/schema.names.js b/workers/loc.api/data-validator/schema.names.js index b6e6285a..7b19ff01 100644 --- a/workers/loc.api/data-validator/schema.names.js +++ b/workers/loc.api/data-validator/schema.names.js @@ -5,5 +5,6 @@ module.exports = { COMMON_REQ: 'commonReq', GET_WEIGHTED_AVERAGES_REPORT_REQ: 'getWeightedAveragesReportReq', GET_PAY_INVOICE_LIST_REQ: 'getPayInvoiceListReq', - GET_STATUS_ME_REQ: 'getStatusMessagesReq' + GET_STATUS_MESSAGES_REQ: 'getStatusMessagesReq', + GET_PUBLIC_TRADES_REQ: 'getPublicTradesReq' } diff --git a/workers/loc.api/data-validator/schemas/getPublicTradesReq.js b/workers/loc.api/data-validator/schemas/getPublicTradesReq.js new file mode 100644 index 00000000..fa2dac63 --- /dev/null +++ b/workers/loc.api/data-validator/schemas/getPublicTradesReq.js @@ -0,0 +1,32 @@ +'use strict' + +const SCHEMA_IDS = require('../schema.ids') + +module.exports = { + $id: SCHEMA_IDS.COMMON_REQ, + type: 'object', + additionalProperties: false, + properties: { + start: { + $ref: 'defs#/definitions/start' + }, + end: { + $ref: 'defs#/definitions/end' + }, + limit: { + $ref: 'defs#/definitions/limit' + }, + symbol: { + $ref: 'defs#/definitions/symbolWithMaxItem' + }, + notCheckNextPage: { + $ref: 'defs#/definitions/notCheckNextPage' + }, + notThrowError: { + $ref: 'defs#/definitions/notThrowError' + }, + isSyncRequest: { + $ref: 'defs#/definitions/isSyncRequest' + } + } +} From 9be9fcd7a5bfc4310509c59b55aff4779d8c4e5b Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Wed, 18 Jun 2025 08:12:51 +0300 Subject: [PATCH 038/113] Add getPositionsAudit req param schema --- .../loc.api/data-validator/schema.names.js | 3 +- .../schemas/getPositionsAuditReq.js | 36 +++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 workers/loc.api/data-validator/schemas/getPositionsAuditReq.js diff --git a/workers/loc.api/data-validator/schema.names.js b/workers/loc.api/data-validator/schema.names.js index 7b19ff01..51e0941d 100644 --- a/workers/loc.api/data-validator/schema.names.js +++ b/workers/loc.api/data-validator/schema.names.js @@ -6,5 +6,6 @@ module.exports = { GET_WEIGHTED_AVERAGES_REPORT_REQ: 'getWeightedAveragesReportReq', GET_PAY_INVOICE_LIST_REQ: 'getPayInvoiceListReq', GET_STATUS_MESSAGES_REQ: 'getStatusMessagesReq', - GET_PUBLIC_TRADES_REQ: 'getPublicTradesReq' + GET_PUBLIC_TRADES_REQ: 'getPublicTradesReq', + GET_POSITIONS_AUDIT_REQ: 'getPositionsAuditReq' } diff --git a/workers/loc.api/data-validator/schemas/getPositionsAuditReq.js b/workers/loc.api/data-validator/schemas/getPositionsAuditReq.js new file mode 100644 index 00000000..a599420b --- /dev/null +++ b/workers/loc.api/data-validator/schemas/getPositionsAuditReq.js @@ -0,0 +1,36 @@ +'use strict' + +const SCHEMA_IDS = require('../schema.ids') + +module.exports = { + $id: SCHEMA_IDS.GET_POSITIONS_AUDIT_REQ, + type: 'object', + additionalProperties: false, + required: ['id'], + properties: { + start: { + $ref: 'defs#/definitions/start' + }, + end: { + $ref: 'defs#/definitions/end' + }, + limit: { + $ref: 'defs#/definitions/limit' + }, + symbol: { + $ref: 'defs#/definitions/symbolWithMinItem' + }, + id: { + $ref: 'defs#/definitions/arrId' + }, + notCheckNextPage: { + $ref: 'defs#/definitions/notCheckNextPage' + }, + notThrowError: { + $ref: 'defs#/definitions/notThrowError' + }, + isSyncRequest: { + $ref: 'defs#/definitions/isSyncRequest' + } + } +} From 2f55d59294ccc89348155e0037f5c02736a6935c Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Wed, 18 Jun 2025 08:17:50 +0300 Subject: [PATCH 039/113] Add to getPayInvoiceList req param schema --- workers/loc.api/data-validator/schemas/getPayInvoiceListReq.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workers/loc.api/data-validator/schemas/getPayInvoiceListReq.js b/workers/loc.api/data-validator/schemas/getPayInvoiceListReq.js index 45c1f6ff..fcc173b3 100644 --- a/workers/loc.api/data-validator/schemas/getPayInvoiceListReq.js +++ b/workers/loc.api/data-validator/schemas/getPayInvoiceListReq.js @@ -3,7 +3,7 @@ const SCHEMA_IDS = require('../schema.ids') module.exports = { - $id: SCHEMA_IDS.COMMON_REQ, + $id: SCHEMA_IDS.GET_PAY_INVOICE_LIST_REQ, type: 'object', additionalProperties: false, properties: { From 3679d2ebc545809db7e3ef5c4bdcfab21d1f57e8 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Wed, 18 Jun 2025 08:18:19 +0300 Subject: [PATCH 040/113] Add to getPublicTrades req param schema --- workers/loc.api/data-validator/schemas/getPublicTradesReq.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workers/loc.api/data-validator/schemas/getPublicTradesReq.js b/workers/loc.api/data-validator/schemas/getPublicTradesReq.js index fa2dac63..bdc17327 100644 --- a/workers/loc.api/data-validator/schemas/getPublicTradesReq.js +++ b/workers/loc.api/data-validator/schemas/getPublicTradesReq.js @@ -3,7 +3,7 @@ const SCHEMA_IDS = require('../schema.ids') module.exports = { - $id: SCHEMA_IDS.COMMON_REQ, + $id: SCHEMA_IDS.GET_PUBLIC_TRADES_REQ, type: 'object', additionalProperties: false, properties: { From 384fa7528463c8e83b6550c8fbbcd649a90d3263 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Wed, 18 Jun 2025 08:18:43 +0300 Subject: [PATCH 041/113] Add to getStatusMessages req param schema --- workers/loc.api/data-validator/schemas/getStatusMessagesReq.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workers/loc.api/data-validator/schemas/getStatusMessagesReq.js b/workers/loc.api/data-validator/schemas/getStatusMessagesReq.js index feaaacd9..69436728 100644 --- a/workers/loc.api/data-validator/schemas/getStatusMessagesReq.js +++ b/workers/loc.api/data-validator/schemas/getStatusMessagesReq.js @@ -3,7 +3,7 @@ const SCHEMA_IDS = require('../schema.ids') module.exports = { - $id: SCHEMA_IDS.COMMON_REQ, + $id: SCHEMA_IDS.GET_STATUS_MESSAGES_REQ, type: 'object', additionalProperties: false, properties: { From eebf7537e0cbb2b72e4deb6d2a2a0b12dce1dbcc Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Wed, 18 Jun 2025 08:53:06 +0300 Subject: [PATCH 042/113] Add filter to req param schemas --- workers/loc.api/data-validator/schemas/commonReq.js | 4 ++++ workers/loc.api/data-validator/schemas/defs.js | 3 +++ .../loc.api/data-validator/schemas/getPayInvoiceListReq.js | 4 ++++ .../loc.api/data-validator/schemas/getPositionsAuditReq.js | 4 ++++ workers/loc.api/data-validator/schemas/getPublicTradesReq.js | 4 ++++ .../loc.api/data-validator/schemas/getStatusMessagesReq.js | 4 ++++ 6 files changed, 23 insertions(+) diff --git a/workers/loc.api/data-validator/schemas/commonReq.js b/workers/loc.api/data-validator/schemas/commonReq.js index 78c25033..cce7c66c 100644 --- a/workers/loc.api/data-validator/schemas/commonReq.js +++ b/workers/loc.api/data-validator/schemas/commonReq.js @@ -19,6 +19,10 @@ module.exports = { symbol: { $ref: 'defs#/definitions/symbolWithMinItem' }, + filter: { + $ref: 'defs#/definitions/filter' + }, + notCheckNextPage: { $ref: 'defs#/definitions/notCheckNextPage' }, diff --git a/workers/loc.api/data-validator/schemas/defs.js b/workers/loc.api/data-validator/schemas/defs.js index 3ed6f694..71c1a808 100644 --- a/workers/loc.api/data-validator/schemas/defs.js +++ b/workers/loc.api/data-validator/schemas/defs.js @@ -128,6 +128,9 @@ module.exports = { $ref: '#/definitions/intId' } }, + filter: { + type: 'object' + }, notCheckNextPage: { type: 'boolean' }, diff --git a/workers/loc.api/data-validator/schemas/getPayInvoiceListReq.js b/workers/loc.api/data-validator/schemas/getPayInvoiceListReq.js index fcc173b3..00eedecf 100644 --- a/workers/loc.api/data-validator/schemas/getPayInvoiceListReq.js +++ b/workers/loc.api/data-validator/schemas/getPayInvoiceListReq.js @@ -22,6 +22,10 @@ module.exports = { id: { $ref: 'defs#/definitions/strId' }, + filter: { + $ref: 'defs#/definitions/filter' + }, + notCheckNextPage: { $ref: 'defs#/definitions/notCheckNextPage' }, diff --git a/workers/loc.api/data-validator/schemas/getPositionsAuditReq.js b/workers/loc.api/data-validator/schemas/getPositionsAuditReq.js index a599420b..d0ddd340 100644 --- a/workers/loc.api/data-validator/schemas/getPositionsAuditReq.js +++ b/workers/loc.api/data-validator/schemas/getPositionsAuditReq.js @@ -23,6 +23,10 @@ module.exports = { id: { $ref: 'defs#/definitions/arrId' }, + filter: { + $ref: 'defs#/definitions/filter' + }, + notCheckNextPage: { $ref: 'defs#/definitions/notCheckNextPage' }, diff --git a/workers/loc.api/data-validator/schemas/getPublicTradesReq.js b/workers/loc.api/data-validator/schemas/getPublicTradesReq.js index bdc17327..25e68abc 100644 --- a/workers/loc.api/data-validator/schemas/getPublicTradesReq.js +++ b/workers/loc.api/data-validator/schemas/getPublicTradesReq.js @@ -19,6 +19,10 @@ module.exports = { symbol: { $ref: 'defs#/definitions/symbolWithMaxItem' }, + filter: { + $ref: 'defs#/definitions/filter' + }, + notCheckNextPage: { $ref: 'defs#/definitions/notCheckNextPage' }, diff --git a/workers/loc.api/data-validator/schemas/getStatusMessagesReq.js b/workers/loc.api/data-validator/schemas/getStatusMessagesReq.js index 69436728..3932d2f6 100644 --- a/workers/loc.api/data-validator/schemas/getStatusMessagesReq.js +++ b/workers/loc.api/data-validator/schemas/getStatusMessagesReq.js @@ -13,6 +13,10 @@ module.exports = { type: { type: 'string' }, + filter: { + $ref: 'defs#/definitions/filter' + }, + notCheckNextPage: { $ref: 'defs#/definitions/notCheckNextPage' }, From e2c6e1bab0bea43cdaf7f06ed9f13b1edd402f2b Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Wed, 18 Jun 2025 09:05:56 +0300 Subject: [PATCH 043/113] Add getOrderTrades req param schema --- .../loc.api/data-validator/schema.names.js | 3 +- .../schemas/getOrderTradesReq.js | 40 +++++++++++++++++++ 2 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 workers/loc.api/data-validator/schemas/getOrderTradesReq.js diff --git a/workers/loc.api/data-validator/schema.names.js b/workers/loc.api/data-validator/schema.names.js index 51e0941d..e0c45110 100644 --- a/workers/loc.api/data-validator/schema.names.js +++ b/workers/loc.api/data-validator/schema.names.js @@ -7,5 +7,6 @@ module.exports = { GET_PAY_INVOICE_LIST_REQ: 'getPayInvoiceListReq', GET_STATUS_MESSAGES_REQ: 'getStatusMessagesReq', GET_PUBLIC_TRADES_REQ: 'getPublicTradesReq', - GET_POSITIONS_AUDIT_REQ: 'getPositionsAuditReq' + GET_POSITIONS_AUDIT_REQ: 'getPositionsAuditReq', + GET_ORDER_TRADES_REQ: 'getOrderTradesReq' } diff --git a/workers/loc.api/data-validator/schemas/getOrderTradesReq.js b/workers/loc.api/data-validator/schemas/getOrderTradesReq.js new file mode 100644 index 00000000..06ed4cc2 --- /dev/null +++ b/workers/loc.api/data-validator/schemas/getOrderTradesReq.js @@ -0,0 +1,40 @@ +'use strict' + +const SCHEMA_IDS = require('../schema.ids') + +module.exports = { + $id: SCHEMA_IDS.GET_ORDER_TRADES_REQ, + type: 'object', + additionalProperties: false, + required: ['id', 'symbol'], + properties: { + start: { + $ref: 'defs#/definitions/start' + }, + end: { + $ref: 'defs#/definitions/end' + }, + limit: { + $ref: 'defs#/definitions/limit' + }, + symbol: { + $ref: 'defs#/definitions/symbolWithMinMaxItem' + }, + id: { + $ref: 'defs#/definitions/intId' + }, + filter: { + $ref: 'defs#/definitions/filter' + }, + + notCheckNextPage: { + $ref: 'defs#/definitions/notCheckNextPage' + }, + notThrowError: { + $ref: 'defs#/definitions/notThrowError' + }, + isSyncRequest: { + $ref: 'defs#/definitions/isSyncRequest' + } + } +} From 3b06a48df6daa47cc8fa2081dd9331a6b51381a5 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Wed, 18 Jun 2025 09:34:53 +0300 Subject: [PATCH 044/113] Add getCandles req param schema --- .../loc.api/data-validator/schema.names.js | 3 +- .../data-validator/schemas/getCandlesReq.js | 48 +++++++++++++++++++ 2 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 workers/loc.api/data-validator/schemas/getCandlesReq.js diff --git a/workers/loc.api/data-validator/schema.names.js b/workers/loc.api/data-validator/schema.names.js index e0c45110..a5ae47a5 100644 --- a/workers/loc.api/data-validator/schema.names.js +++ b/workers/loc.api/data-validator/schema.names.js @@ -8,5 +8,6 @@ module.exports = { GET_STATUS_MESSAGES_REQ: 'getStatusMessagesReq', GET_PUBLIC_TRADES_REQ: 'getPublicTradesReq', GET_POSITIONS_AUDIT_REQ: 'getPositionsAuditReq', - GET_ORDER_TRADES_REQ: 'getOrderTradesReq' + GET_ORDER_TRADES_REQ: 'getOrderTradesReq', + GET_CANDLES_REQ: 'getCandlesReq' } diff --git a/workers/loc.api/data-validator/schemas/getCandlesReq.js b/workers/loc.api/data-validator/schemas/getCandlesReq.js new file mode 100644 index 00000000..c79ccf8f --- /dev/null +++ b/workers/loc.api/data-validator/schemas/getCandlesReq.js @@ -0,0 +1,48 @@ +'use strict' + +const SCHEMA_IDS = require('../schema.ids') + +module.exports = { + $id: SCHEMA_IDS.GET_CANDLES_REQ, + type: 'object', + additionalProperties: false, + required: ['symbol'], + properties: { + start: { + $ref: 'defs#/definitions/start' + }, + end: { + $ref: 'defs#/definitions/end' + }, + limit: { + $ref: 'defs#/definitions/limit' + }, + symbol: { + $ref: 'defs#/definitions/symbolWithMaxItem' + }, + sort: { + $ref: 'defs#/definitions/sort' + }, + timeframe: { + type: 'string', + minLength: 2 + }, + section: { + type: 'string', + enum: ['last', 'hist'] + }, + filter: { + $ref: 'defs#/definitions/filter' + }, + + notCheckNextPage: { + $ref: 'defs#/definitions/notCheckNextPage' + }, + notThrowError: { + $ref: 'defs#/definitions/notThrowError' + }, + isSyncRequest: { + $ref: 'defs#/definitions/isSyncRequest' + } + } +} From 00c80092b8c7bc5857f10c22d03658ad23a06769 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Wed, 18 Jun 2025 10:16:08 +0300 Subject: [PATCH 045/113] Add getLedgers req param schema --- .../loc.api/data-validator/schema.names.js | 3 +- .../data-validator/schemas/getLedgersReq.js | 58 +++++++++++++++++++ 2 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 workers/loc.api/data-validator/schemas/getLedgersReq.js diff --git a/workers/loc.api/data-validator/schema.names.js b/workers/loc.api/data-validator/schema.names.js index a5ae47a5..08468882 100644 --- a/workers/loc.api/data-validator/schema.names.js +++ b/workers/loc.api/data-validator/schema.names.js @@ -9,5 +9,6 @@ module.exports = { GET_PUBLIC_TRADES_REQ: 'getPublicTradesReq', GET_POSITIONS_AUDIT_REQ: 'getPositionsAuditReq', GET_ORDER_TRADES_REQ: 'getOrderTradesReq', - GET_CANDLES_REQ: 'getCandlesReq' + GET_CANDLES_REQ: 'getCandlesReq', + GET_LEDGERS_REQ: 'getLedgersReq' } diff --git a/workers/loc.api/data-validator/schemas/getLedgersReq.js b/workers/loc.api/data-validator/schemas/getLedgersReq.js new file mode 100644 index 00000000..cdf049e6 --- /dev/null +++ b/workers/loc.api/data-validator/schemas/getLedgersReq.js @@ -0,0 +1,58 @@ +'use strict' + +const SCHEMA_IDS = require('../schema.ids') + +module.exports = { + $id: SCHEMA_IDS.GET_LEDGERS_REQ, + type: 'object', + additionalProperties: false, + properties: { + start: { + $ref: 'defs#/definitions/start' + }, + end: { + $ref: 'defs#/definitions/end' + }, + limit: { + $ref: 'defs#/definitions/limit' + }, + symbol: { + $ref: 'defs#/definitions/symbolWithMinItem' + }, + category: { + type: ['string', 'integer'], + if: { + type: 'string' + }, + then: { + minLength: 1, + pattern: '(^[1-9]\\d*$)|(^[0]$)' + }, + else: { + minimum: 0 + } + }, + isMarginFundingPayment: { + type: 'boolean' + }, + isAffiliateRebate: { + type: 'boolean' + }, + isStakingPayments: { + type: 'boolean' + }, + filter: { + $ref: 'defs#/definitions/filter' + }, + + notCheckNextPage: { + $ref: 'defs#/definitions/notCheckNextPage' + }, + notThrowError: { + $ref: 'defs#/definitions/notThrowError' + }, + isSyncRequest: { + $ref: 'defs#/definitions/isSyncRequest' + } + } +} From dcb42311b0e017ed611a87c96d91cd997a74859f Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Wed, 18 Jun 2025 10:21:28 +0300 Subject: [PATCH 046/113] Add getTickersHistory req param schema --- .../loc.api/data-validator/schema.names.js | 3 +- .../schemas/getTickersHistoryReq.js | 37 +++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 workers/loc.api/data-validator/schemas/getTickersHistoryReq.js diff --git a/workers/loc.api/data-validator/schema.names.js b/workers/loc.api/data-validator/schema.names.js index 08468882..091598ae 100644 --- a/workers/loc.api/data-validator/schema.names.js +++ b/workers/loc.api/data-validator/schema.names.js @@ -10,5 +10,6 @@ module.exports = { GET_POSITIONS_AUDIT_REQ: 'getPositionsAuditReq', GET_ORDER_TRADES_REQ: 'getOrderTradesReq', GET_CANDLES_REQ: 'getCandlesReq', - GET_LEDGERS_REQ: 'getLedgersReq' + GET_LEDGERS_REQ: 'getLedgersReq', + GET_TICKERS_HISTORY_REQ: 'getTickersHistoryReq' } diff --git a/workers/loc.api/data-validator/schemas/getTickersHistoryReq.js b/workers/loc.api/data-validator/schemas/getTickersHistoryReq.js new file mode 100644 index 00000000..3bc8d82e --- /dev/null +++ b/workers/loc.api/data-validator/schemas/getTickersHistoryReq.js @@ -0,0 +1,37 @@ +'use strict' + +const SCHEMA_IDS = require('../schema.ids') + +module.exports = { + $id: SCHEMA_IDS.GET_TICKERS_HISTORY_REQ, + type: 'object', + additionalProperties: false, + required: ['symbol'], + properties: { + start: { + $ref: 'defs#/definitions/start' + }, + end: { + $ref: 'defs#/definitions/end' + }, + limit: { + $ref: 'defs#/definitions/limit' + }, + symbol: { + $ref: 'defs#/definitions/symbolWithMinItem' + }, + filter: { + $ref: 'defs#/definitions/filter' + }, + + notCheckNextPage: { + $ref: 'defs#/definitions/notCheckNextPage' + }, + notThrowError: { + $ref: 'defs#/definitions/notThrowError' + }, + isSyncRequest: { + $ref: 'defs#/definitions/isSyncRequest' + } + } +} From 1f58e375b6755b23a5a267e4f4971ea671bfee92 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Thu, 19 Jun 2025 14:10:20 +0300 Subject: [PATCH 047/113] Add milliseconds to param schema definitions --- workers/loc.api/data-validator/schemas/defs.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/workers/loc.api/data-validator/schemas/defs.js b/workers/loc.api/data-validator/schemas/defs.js index 71c1a808..f0db7f5b 100644 --- a/workers/loc.api/data-validator/schemas/defs.js +++ b/workers/loc.api/data-validator/schemas/defs.js @@ -5,6 +5,9 @@ const SCHEMA_IDS = require('../schema.ids') module.exports = { $id: SCHEMA_IDS.DEFS, definitions: { + milliseconds: { + type: 'boolean' + }, dateFormat: { type: 'string', enum: [ From 398622eda1bbb23688376c1a2c23d92f5c825088 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Thu, 19 Jun 2025 14:11:11 +0300 Subject: [PATCH 048/113] Add isSignatureRequired to param schema definitions --- workers/loc.api/data-validator/schemas/defs.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/workers/loc.api/data-validator/schemas/defs.js b/workers/loc.api/data-validator/schemas/defs.js index f0db7f5b..1e19b6f8 100644 --- a/workers/loc.api/data-validator/schemas/defs.js +++ b/workers/loc.api/data-validator/schemas/defs.js @@ -145,6 +145,9 @@ module.exports = { }, isPDFRequired: { type: 'boolean' + }, + isSignatureRequired: { + type: 'boolean' } } } From 13429b527272ef018ea839a7c0586cbe17a57ef2 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Thu, 19 Jun 2025 14:12:34 +0300 Subject: [PATCH 049/113] Inject DataValidator into PrepareApiResponse service --- workers/loc.api/di/app.deps.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/workers/loc.api/di/app.deps.js b/workers/loc.api/di/app.deps.js index 321916f1..eed0ba6d 100644 --- a/workers/loc.api/di/app.deps.js +++ b/workers/loc.api/di/app.deps.js @@ -106,7 +106,10 @@ module.exports = ({ bind(TYPES.PrepareApiResponse).toConstantValue( bindDepsToFn( prepareApiResponse, - [TYPES.GetREST] + [ + TYPES.GetREST, + TYPES.DataValidator + ] ) ) bind(TYPES.FOREX_SYMBS).toConstantValue(FOREX_SYMBS) From 90d9a025bf6eba99edeb8bda21c2cd2246856a8c Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Thu, 19 Jun 2025 14:14:00 +0300 Subject: [PATCH 050/113] Add validation-schema-id getter --- .../helpers/get-validation-schema-id.js | 23 +++++++++++++++++++ .../helpers/prepare-response/helpers/index.js | 2 ++ 2 files changed, 25 insertions(+) create mode 100644 workers/loc.api/helpers/prepare-response/helpers/get-validation-schema-id.js diff --git a/workers/loc.api/helpers/prepare-response/helpers/get-validation-schema-id.js b/workers/loc.api/helpers/prepare-response/helpers/get-validation-schema-id.js new file mode 100644 index 00000000..7d2012f0 --- /dev/null +++ b/workers/loc.api/helpers/prepare-response/helpers/get-validation-schema-id.js @@ -0,0 +1,23 @@ +'use strict' + +const { SCHEMA_IDS } = require('../../../data-validator') + +const PARAMS_SCHEMAS_MAP = { + default: SCHEMA_IDS.COMMON_REQ, + + payInvoiceList: SCHEMA_IDS.GET_PAY_INVOICE_LIST_REQ, + statusMessages: SCHEMA_IDS.GET_STATUS_MESSAGES_REQ, + publicTrades: SCHEMA_IDS.GET_PUBLIC_TRADES_REQ, + positionsAudit: SCHEMA_IDS.GET_POSITIONS_AUDIT_REQ, + orderTrades: SCHEMA_IDS.GET_ORDER_TRADES_REQ, + candles: SCHEMA_IDS.GET_CANDLES_REQ, + ledgers: SCHEMA_IDS.GET_LEDGERS_REQ, + tickersHistory: SCHEMA_IDS.GET_TICKERS_HISTORY_REQ +} + +module.exports = ( + method, + map = PARAMS_SCHEMAS_MAP +) => { + return map?.[method] ?? map.default +} diff --git a/workers/loc.api/helpers/prepare-response/helpers/index.js b/workers/loc.api/helpers/prepare-response/helpers/index.js index 3ec2d445..0b2b812a 100644 --- a/workers/loc.api/helpers/prepare-response/helpers/index.js +++ b/workers/loc.api/helpers/prepare-response/helpers/index.js @@ -2,6 +2,7 @@ const getParamsMap = require('./get-params-map') const getParamsSchemaName = require('./get-params-schema-name') +const getValidationSchemaId = require('./get-validation-schema-id') const omitPrivateModelFields = require('./omit-private-model-fields') const getBfxApiMethodName = require('./get-bfx-api-method-name') const getSymbolsForFiltering = require('./get-symbols-for-filtering') @@ -12,6 +13,7 @@ const isNotContainedSameMts = require('./is-not-contained-same-mts') module.exports = { getParamsMap, getParamsSchemaName, + getValidationSchemaId, omitPrivateModelFields, getBfxApiMethodName, getSymbolsForFiltering, From 03d1a3dfa5f61034749ac21e53159b7cdb8d68fd Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Thu, 19 Jun 2025 14:16:28 +0300 Subject: [PATCH 051/113] Use data validator in PrepareResponse service --- workers/loc.api/helpers/prepare-response/index.js | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/workers/loc.api/helpers/prepare-response/index.js b/workers/loc.api/helpers/prepare-response/index.js index a3817bee..d2dae441 100644 --- a/workers/loc.api/helpers/prepare-response/index.js +++ b/workers/loc.api/helpers/prepare-response/index.js @@ -3,14 +3,13 @@ const { MinLimitParamError } = require('../../errors') const filterResponse = require('../filter-response') -const checkParams = require('../check-params') const checkFilterParams = require('../check-filter-params') const normalizeFilterParams = require('../normalize-filter-params') const prepareSymbolResponse = require('./prepare-symbol-response') const { - getParamsSchemaName, + getValidationSchemaId, omitPrivateModelFields, getBfxApiMethodName, getSymbolsForFiltering, @@ -128,7 +127,8 @@ const prepareResponse = ( } const prepareApiResponse = ( - getREST + getREST, + dataValidator ) => async ( reqArgs, apiMethodName, @@ -137,13 +137,12 @@ const prepareApiResponse = ( const { datePropName, symbPropName, - requireFields, parseFieldsFn, isNotMoreThanInnerMax: _isNotMoreThanInnerMax } = params ?? {} - const schemaName = getParamsSchemaName(apiMethodName) + const schemaId = getValidationSchemaId(apiMethodName) - checkParams(reqArgs, schemaName, requireFields) + await dataValidator.validate(reqArgs, schemaId) const args = normalizeFilterParams(apiMethodName, reqArgs) checkFilterParams(apiMethodName, args) From c51f9ee40efdfb992fef5cacec76adf75acc92cf Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Thu, 19 Jun 2025 14:18:07 +0300 Subject: [PATCH 052/113] Remove redundant required fields from getTickersHistory endpoint --- workers/loc.api/service.report.js | 1 - 1 file changed, 1 deletion(-) diff --git a/workers/loc.api/service.report.js b/workers/loc.api/service.report.js index 24c3c9e1..70599bcc 100644 --- a/workers/loc.api/service.report.js +++ b/workers/loc.api/service.report.js @@ -312,7 +312,6 @@ class ReportService extends Api { 'tickersHistory', { datePropName: 'mtsUpdate', - requireFields: ['symbol'], isNotMoreThanInnerMax } ) From 393ae38dac0e5616af026a3877d856702c92f4b2 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Thu, 19 Jun 2025 14:21:07 +0300 Subject: [PATCH 053/113] Adjust default params for getStatusMessages --- workers/loc.api/queue/write-data-to-stream/helpers.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/workers/loc.api/queue/write-data-to-stream/helpers.js b/workers/loc.api/queue/write-data-to-stream/helpers.js index 26fdb643..3141106e 100644 --- a/workers/loc.api/queue/write-data-to-stream/helpers.js +++ b/workers/loc.api/queue/write-data-to-stream/helpers.js @@ -169,8 +169,13 @@ const writeMessageToStream = ( processorQueue.emit('progress', 100) } -const setDefaultPrams = (args) => { +const setDefaultPrams = (args, method) => { args.params.notThrowError = true + + if (method === 'getStatusMessages') { + return + } + args.params.end = args.params.end ? Math.min(args.params.end, Date.now()) : Date.now() From badd150b631ad0f1fe31a6cc3e9b94368d3f164f Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Thu, 19 Jun 2025 14:24:50 +0300 Subject: [PATCH 054/113] Adjust limit params for getWeightedAverages --- .../loc.api/generate-report-file/report.file.job.data.js | 2 +- workers/loc.api/helpers/limit-param.helpers.js | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/workers/loc.api/generate-report-file/report.file.job.data.js b/workers/loc.api/generate-report-file/report.file.job.data.js index 8037c02f..ead8fa0e 100644 --- a/workers/loc.api/generate-report-file/report.file.job.data.js +++ b/workers/loc.api/generate-report-file/report.file.job.data.js @@ -1063,7 +1063,7 @@ class ReportFileJobData { uInfo ) - const reportFileArgs = getReportFileArgs(args) + const reportFileArgs = getReportFileArgs(args, 'getWeightedAverages') const jobData = { userInfo, diff --git a/workers/loc.api/helpers/limit-param.helpers.js b/workers/loc.api/helpers/limit-param.helpers.js index 642cf1bd..49424052 100644 --- a/workers/loc.api/helpers/limit-param.helpers.js +++ b/workers/loc.api/helpers/limit-param.helpers.js @@ -65,11 +65,16 @@ const getReportFileArgs = (args, method, extraParams = {}) => { ...args, params: { ...args.params, - ...extraParams, - limit: getMethodLimit({ isMax: true }, method) + ...extraParams } } + if (method === 'getWeightedAverages') { + return reportFileArgs + } + + reportFileArgs.limit = getMethodLimit({ isMax: true }, method) + return reportFileArgs } From c84d50fa08451718089b42a6766ffc2e98dc5b3e Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Thu, 19 Jun 2025 14:27:08 +0300 Subject: [PATCH 055/113] Omit redundant request params for report file gen --- .../weighted-averages-report-csv-writer.js | 16 +++++++++++++- .../queue/write-data-to-stream/index.js | 21 ++++++++++++++++--- 2 files changed, 33 insertions(+), 4 deletions(-) diff --git a/workers/loc.api/generate-report-file/csv-writer/weighted-averages-report-csv-writer.js b/workers/loc.api/generate-report-file/csv-writer/weighted-averages-report-csv-writer.js index 99288db6..bab662e9 100644 --- a/workers/loc.api/generate-report-file/csv-writer/weighted-averages-report-csv-writer.js +++ b/workers/loc.api/generate-report-file/csv-writer/weighted-averages-report-csv-writer.js @@ -1,5 +1,7 @@ 'use strict' +const { omit } = require('lib-js-util-base') + const { write } = require('../../queue/write-data-to-stream/helpers') @@ -40,7 +42,19 @@ module.exports = ( const { res } = await getDataFromApi({ getData: rService[name].bind(rService), - args, + args: { + ...args, + params: omit(params, [ + 'dateFormat', + 'milliseconds', + 'language', + 'isPDFRequired', + 'method', + 'timezone', + 'email', + 'isSignatureRequired' + ]) + }, callerName: 'CSV_WRITER', shouldNotInterrupt: true }) diff --git a/workers/loc.api/queue/write-data-to-stream/index.js b/workers/loc.api/queue/write-data-to-stream/index.js index 1f9bd2e8..d44c526c 100644 --- a/workers/loc.api/queue/write-data-to-stream/index.js +++ b/workers/loc.api/queue/write-data-to-stream/index.js @@ -1,6 +1,6 @@ 'use strict' -const { cloneDeep } = require('lib-js-util-base') +const { cloneDeep, omit } = require('lib-js-util-base') const { writeMessageToStream, @@ -33,9 +33,24 @@ module.exports = ( const propName = jobData.propNameForPagination const formatSettings = jobData.formatSettings - const _args = cloneDeep(jobData.args) + const _args = { + auth: { ...jobData?.args?.auth }, + params: omit(jobData?.args?.params ?? {}, [ + 'dateFormat', + 'milliseconds', + 'language', + 'isPDFRequired', + 'method', + 'timezone', + 'email', + 'isSignatureRequired', + 'isDeposits', + 'isWithdrawals', + 'isTradingPair' + ]) + } - setDefaultPrams(_args) + setDefaultPrams(_args, method) const currIterationArgs = cloneDeep(_args) const getData = rService[method].bind(rService) From 9e82c9a1f91e8c2ddb36852863480028b2d79d12 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Fri, 20 Jun 2025 10:26:31 +0300 Subject: [PATCH 056/113] Add getMovementInfo req param schema --- workers/loc.api/data-validator/schema.names.js | 3 ++- .../data-validator/schemas/getMovementInfoReq.js | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 workers/loc.api/data-validator/schemas/getMovementInfoReq.js diff --git a/workers/loc.api/data-validator/schema.names.js b/workers/loc.api/data-validator/schema.names.js index 091598ae..e083dd39 100644 --- a/workers/loc.api/data-validator/schema.names.js +++ b/workers/loc.api/data-validator/schema.names.js @@ -11,5 +11,6 @@ module.exports = { GET_ORDER_TRADES_REQ: 'getOrderTradesReq', GET_CANDLES_REQ: 'getCandlesReq', GET_LEDGERS_REQ: 'getLedgersReq', - GET_TICKERS_HISTORY_REQ: 'getTickersHistoryReq' + GET_TICKERS_HISTORY_REQ: 'getTickersHistoryReq', + GET_MOVEMENT_INFO_REQ: 'getMovementInfoReq' } diff --git a/workers/loc.api/data-validator/schemas/getMovementInfoReq.js b/workers/loc.api/data-validator/schemas/getMovementInfoReq.js new file mode 100644 index 00000000..55945b7e --- /dev/null +++ b/workers/loc.api/data-validator/schemas/getMovementInfoReq.js @@ -0,0 +1,15 @@ +'use strict' + +const SCHEMA_IDS = require('../schema.ids') + +module.exports = { + $id: SCHEMA_IDS.GET_MOVEMENT_INFO_REQ, + type: 'object', + additionalProperties: false, + required: ['id'], + properties: { + id: { + $ref: 'defs#/definitions/intId' + } + } +} From 1edb1c431f3d9feac40a114af5d63b2156ab3788 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Fri, 20 Jun 2025 10:27:05 +0300 Subject: [PATCH 057/113] Use DataValidator with getMovementInfo endpoint --- workers/loc.api/service.report.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/workers/loc.api/service.report.js b/workers/loc.api/service.report.js index 70599bcc..4a93318f 100644 --- a/workers/loc.api/service.report.js +++ b/workers/loc.api/service.report.js @@ -563,7 +563,10 @@ class ReportService extends Api { getMovementInfo (space, args, cb) { return this._responder(async () => { - checkParams(args, 'paramsSchemaForMovementInfo', ['id']) + this._dataValidator.validate( + args, + this._dataValidator.SCHEMA_IDS.GET_MOVEMENT_INFO_REQ + ) const { auth, params, interrupter } = args ?? {} const rest = this._getREST(auth, { interrupter }) From 67165df465fa13e1b2518245400c435f816852f0 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Fri, 20 Jun 2025 12:01:52 +0300 Subject: [PATCH 058/113] Add getWallets req param schema --- workers/loc.api/data-validator/schema.names.js | 3 ++- .../data-validator/schemas/getWalletsReq.js | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 workers/loc.api/data-validator/schemas/getWalletsReq.js diff --git a/workers/loc.api/data-validator/schema.names.js b/workers/loc.api/data-validator/schema.names.js index e083dd39..13e4a382 100644 --- a/workers/loc.api/data-validator/schema.names.js +++ b/workers/loc.api/data-validator/schema.names.js @@ -12,5 +12,6 @@ module.exports = { GET_CANDLES_REQ: 'getCandlesReq', GET_LEDGERS_REQ: 'getLedgersReq', GET_TICKERS_HISTORY_REQ: 'getTickersHistoryReq', - GET_MOVEMENT_INFO_REQ: 'getMovementInfoReq' + GET_MOVEMENT_INFO_REQ: 'getMovementInfoReq', + GET_WALLETS_REQ: 'getWalletsReq' } diff --git a/workers/loc.api/data-validator/schemas/getWalletsReq.js b/workers/loc.api/data-validator/schemas/getWalletsReq.js new file mode 100644 index 00000000..1d5be5c2 --- /dev/null +++ b/workers/loc.api/data-validator/schemas/getWalletsReq.js @@ -0,0 +1,14 @@ +'use strict' + +const SCHEMA_IDS = require('../schema.ids') + +module.exports = { + $id: SCHEMA_IDS.GET_WALLETS_REQ, + type: 'object', + additionalProperties: false, + properties: { + end: { + $ref: 'defs#/definitions/end' + } + } +} From 70ec922140d96c7e6c7b37f468b651b1de0c6726 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Fri, 20 Jun 2025 12:02:16 +0300 Subject: [PATCH 059/113] Use DataValidator with getWallets endpoint --- workers/loc.api/service.report.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/workers/loc.api/service.report.js b/workers/loc.api/service.report.js index 4a93318f..5ac9aae9 100644 --- a/workers/loc.api/service.report.js +++ b/workers/loc.api/service.report.js @@ -3,7 +3,6 @@ const { Api } = require('bfx-wrk-api') const { - checkParams, parseFields, parseLoginsExtraDataFields, accountCache, @@ -363,7 +362,10 @@ class ReportService extends Api { getWallets (space, args, cb) { return this._responder(async () => { - checkParams(args, 'paramsSchemaForWallets') + this._dataValidator.validate( + args, + this._dataValidator.SCHEMA_IDS.GET_WALLETS_REQ + ) const rest = this._getREST(args.auth, { interrupter: args?.interrupter From 0597af1d2ff8620bd8092c6de2b07c5e6192593b Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Fri, 20 Jun 2025 12:31:31 +0300 Subject: [PATCH 060/113] Adjust default params for getWallets --- workers/loc.api/queue/write-data-to-stream/helpers.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/workers/loc.api/queue/write-data-to-stream/helpers.js b/workers/loc.api/queue/write-data-to-stream/helpers.js index 3141106e..f6be6b11 100644 --- a/workers/loc.api/queue/write-data-to-stream/helpers.js +++ b/workers/loc.api/queue/write-data-to-stream/helpers.js @@ -170,6 +170,14 @@ const writeMessageToStream = ( } const setDefaultPrams = (args, method) => { + if (method === 'getWallets') { + args.params.end = args.params.end + ? Math.min(args.params.end, Date.now()) + : Date.now() + + return + } + args.params.notThrowError = true if (method === 'getStatusMessages') { From 99f545f7d18182e0689bec98ec50c7afdeb44f8b Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Fri, 20 Jun 2025 12:33:13 +0300 Subject: [PATCH 061/113] Omit redundant request params for wallets report file gen --- workers/loc.api/queue/write-data-to-stream/index.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/workers/loc.api/queue/write-data-to-stream/index.js b/workers/loc.api/queue/write-data-to-stream/index.js index d44c526c..122c74a5 100644 --- a/workers/loc.api/queue/write-data-to-stream/index.js +++ b/workers/loc.api/queue/write-data-to-stream/index.js @@ -46,7 +46,8 @@ module.exports = ( 'isSignatureRequired', 'isDeposits', 'isWithdrawals', - 'isTradingPair' + 'isTradingPair', + 'isBaseNameInName' ]) } From 1422ee8d652377947918158180b09da7f97db8aa Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Fri, 20 Jun 2025 12:34:33 +0300 Subject: [PATCH 062/113] Fix setDefaultParams helper naming --- workers/loc.api/queue/write-data-to-stream/helpers.js | 4 ++-- workers/loc.api/queue/write-data-to-stream/index.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/workers/loc.api/queue/write-data-to-stream/helpers.js b/workers/loc.api/queue/write-data-to-stream/helpers.js index f6be6b11..218e1527 100644 --- a/workers/loc.api/queue/write-data-to-stream/helpers.js +++ b/workers/loc.api/queue/write-data-to-stream/helpers.js @@ -169,7 +169,7 @@ const writeMessageToStream = ( processorQueue.emit('progress', 100) } -const setDefaultPrams = (args, method) => { +const setDefaultParams = (args, method) => { if (method === 'getWallets') { args.params.end = args.params.end ? Math.min(args.params.end, Date.now()) @@ -226,7 +226,7 @@ const progress = ( module.exports = { writeMessageToStream, - setDefaultPrams, + setDefaultParams, filterMovementsByAmount, write, progress diff --git a/workers/loc.api/queue/write-data-to-stream/index.js b/workers/loc.api/queue/write-data-to-stream/index.js index 122c74a5..584a38e1 100644 --- a/workers/loc.api/queue/write-data-to-stream/index.js +++ b/workers/loc.api/queue/write-data-to-stream/index.js @@ -4,7 +4,7 @@ const { cloneDeep, omit } = require('lib-js-util-base') const { writeMessageToStream, - setDefaultPrams, + setDefaultParams, filterMovementsByAmount, write, progress @@ -51,7 +51,7 @@ module.exports = ( ]) } - setDefaultPrams(_args, method) + setDefaultParams(_args, method) const currIterationArgs = cloneDeep(_args) const getData = rService[method].bind(rService) From 6df5fabb5ba90e3931f8f51f204a93b05d958da0 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Tue, 8 Jul 2025 13:14:56 +0300 Subject: [PATCH 063/113] Add method to param schema definitions --- workers/loc.api/data-validator/schemas/defs.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/workers/loc.api/data-validator/schemas/defs.js b/workers/loc.api/data-validator/schemas/defs.js index 1e19b6f8..4d9b4539 100644 --- a/workers/loc.api/data-validator/schemas/defs.js +++ b/workers/loc.api/data-validator/schemas/defs.js @@ -148,6 +148,9 @@ module.exports = { }, isSignatureRequired: { type: 'boolean' + }, + method: { + type: 'string' } } } From ef3f57688c59a04ca47d55c159c9faa55b8b404c Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Tue, 8 Jul 2025 13:17:41 +0300 Subject: [PATCH 064/113] Add commonFile req param schema name --- workers/loc.api/data-validator/schema.names.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/workers/loc.api/data-validator/schema.names.js b/workers/loc.api/data-validator/schema.names.js index 13e4a382..06598ff4 100644 --- a/workers/loc.api/data-validator/schema.names.js +++ b/workers/loc.api/data-validator/schema.names.js @@ -2,6 +2,7 @@ module.exports = { DEFS: 'defs', + COMMON_REQ: 'commonReq', GET_WEIGHTED_AVERAGES_REPORT_REQ: 'getWeightedAveragesReportReq', GET_PAY_INVOICE_LIST_REQ: 'getPayInvoiceListReq', @@ -13,5 +14,7 @@ module.exports = { GET_LEDGERS_REQ: 'getLedgersReq', GET_TICKERS_HISTORY_REQ: 'getTickersHistoryReq', GET_MOVEMENT_INFO_REQ: 'getMovementInfoReq', - GET_WALLETS_REQ: 'getWalletsReq' + GET_WALLETS_REQ: 'getWalletsReq', + + COMMON_FILE_REQ: 'commonFileReq' } From 5d7c19c85e6491825d32c25413224dfccd3b6cb8 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Tue, 8 Jul 2025 13:18:03 +0300 Subject: [PATCH 065/113] Add commonFile req param schema --- .../data-validator/schemas/commonFileReq.js | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 workers/loc.api/data-validator/schemas/commonFileReq.js diff --git a/workers/loc.api/data-validator/schemas/commonFileReq.js b/workers/loc.api/data-validator/schemas/commonFileReq.js new file mode 100644 index 00000000..5e90059e --- /dev/null +++ b/workers/loc.api/data-validator/schemas/commonFileReq.js @@ -0,0 +1,48 @@ +'use strict' + +const SCHEMA_IDS = require('../schema.ids') + +module.exports = { + $id: SCHEMA_IDS.COMMON_FILE_REQ, + type: 'object', + additionalProperties: false, + properties: { + method: { + $ref: 'defs#/definitions/method' + }, + start: { + $ref: 'defs#/definitions/start' + }, + end: { + $ref: 'defs#/definitions/end' + }, + limit: { + $ref: 'defs#/definitions/limit' + }, + symbol: { + $ref: 'defs#/definitions/symbolWithMinItem' + }, + filter: { + $ref: 'defs#/definitions/filter' + }, + + milliseconds: { + $ref: 'defs#/definitions/milliseconds' + }, + dateFormat: { + $ref: 'defs#/definitions/dateFormat' + }, + language: { + $ref: 'defs#/definitions/language' + }, + timezone: { + $ref: 'defs#/definitions/timezone' + }, + isPDFRequired: { + $ref: 'defs#/definitions/isPDFRequired' + }, + isSignatureRequired: { + $ref: 'defs#/definitions/isSignatureRequired' + } + } +} From a17e853c1994e825261dd7fb27bf38d701deea1f Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Tue, 8 Jul 2025 13:27:37 +0300 Subject: [PATCH 066/113] Use data validator with commonFile req param schema --- .../report.file.job.data.js | 63 +++++++++++++++---- 1 file changed, 51 insertions(+), 12 deletions(-) diff --git a/workers/loc.api/generate-report-file/report.file.job.data.js b/workers/loc.api/generate-report-file/report.file.job.data.js index ead8fa0e..d4757b72 100644 --- a/workers/loc.api/generate-report-file/report.file.job.data.js +++ b/workers/loc.api/generate-report-file/report.file.job.data.js @@ -16,14 +16,17 @@ const { const depsTypes = (TYPES) => [ TYPES.RService, + TYPES.DataValidator, TYPES.WeightedAveragesReportCsvWriter ] class ReportFileJobData { constructor ( rService, + dataValidator, weightedAveragesReportCsvWriter ) { this.rService = rService + this.dataValidator = dataValidator this.weightedAveragesReportCsvWriter = weightedAveragesReportCsvWriter } @@ -32,7 +35,10 @@ class ReportFileJobData { uId, uInfo ) { - checkParams(args) + this.dataValidator.validate( + args, + this.dataValidator.SCHEMA_IDS.COMMON_FILE_REQ + ) const { userId, @@ -76,7 +82,10 @@ class ReportFileJobData { uId, uInfo ) { - checkParams(args) + this.dataValidator.validate( + args, + this.dataValidator.SCHEMA_IDS.COMMON_FILE_REQ + ) const { userId, @@ -218,7 +227,10 @@ class ReportFileJobData { uId, uInfo ) { - checkParams(args) + this.dataValidator.validate( + args, + this.dataValidator.SCHEMA_IDS.COMMON_FILE_REQ + ) const { userId, @@ -546,7 +558,10 @@ class ReportFileJobData { uId, uInfo ) { - checkParams(args) + this.dataValidator.validate( + args, + this.dataValidator.SCHEMA_IDS.COMMON_FILE_REQ + ) const { userId, @@ -632,7 +647,10 @@ class ReportFileJobData { uId, uInfo ) { - checkParams(args) + this.dataValidator.validate( + args, + this.dataValidator.SCHEMA_IDS.COMMON_FILE_REQ + ) const { userId, @@ -681,7 +699,10 @@ class ReportFileJobData { uId, uInfo ) { - checkParams(args) + this.dataValidator.validate( + args, + this.dataValidator.SCHEMA_IDS.COMMON_FILE_REQ + ) const { userId, @@ -727,7 +748,10 @@ class ReportFileJobData { uId, uInfo ) { - checkParams(args) + this.dataValidator.validate( + args, + this.dataValidator.SCHEMA_IDS.COMMON_FILE_REQ + ) const { userId, @@ -770,7 +794,10 @@ class ReportFileJobData { uId, uInfo ) { - checkParams(args) + this.dataValidator.validate( + args, + this.dataValidator.SCHEMA_IDS.COMMON_FILE_REQ + ) const { userId, @@ -816,7 +843,10 @@ class ReportFileJobData { uId, uInfo ) { - checkParams(args) + this.dataValidator.validate( + args, + this.dataValidator.SCHEMA_IDS.COMMON_FILE_REQ + ) const { userId, @@ -864,7 +894,10 @@ class ReportFileJobData { uId, uInfo ) { - checkParams(args) + this.dataValidator.validate( + args, + this.dataValidator.SCHEMA_IDS.COMMON_FILE_REQ + ) const { userId, @@ -913,7 +946,10 @@ class ReportFileJobData { uId, uInfo ) { - checkParams(args) + this.dataValidator.validate( + args, + this.dataValidator.SCHEMA_IDS.COMMON_FILE_REQ + ) const { userId, @@ -950,7 +986,10 @@ class ReportFileJobData { uId, uInfo ) { - checkParams(args) + this.dataValidator.validate( + args, + this.dataValidator.SCHEMA_IDS.COMMON_FILE_REQ + ) const { userId, From a3cd64842b9547041b589be53dbfe1758b019fa7 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Wed, 9 Jul 2025 11:23:26 +0300 Subject: [PATCH 067/113] Omit redundant method field for multi-export --- workers/loc.api/generate-report-file/report.file.job.data.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/workers/loc.api/generate-report-file/report.file.job.data.js b/workers/loc.api/generate-report-file/report.file.job.data.js index d4757b72..6f45887e 100644 --- a/workers/loc.api/generate-report-file/report.file.job.data.js +++ b/workers/loc.api/generate-report-file/report.file.job.data.js @@ -1,5 +1,7 @@ 'use strict' +const { omit } = require('lib-js-util-base') + const { decorateInjectable } = require('../di/utils') const { @@ -1061,7 +1063,7 @@ class ReportFileJobData { { ...args, params: { - ...params, + ...omit(params, ['method']), ...(language && typeof language === 'string' ? { language } : {}), From 2a745f2303e2052496a77a48f8a77d19f37c1162 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Wed, 9 Jul 2025 11:25:45 +0300 Subject: [PATCH 068/113] Add getMultipleFile req param schema name --- workers/loc.api/data-validator/schema.names.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/workers/loc.api/data-validator/schema.names.js b/workers/loc.api/data-validator/schema.names.js index 06598ff4..e67b4b38 100644 --- a/workers/loc.api/data-validator/schema.names.js +++ b/workers/loc.api/data-validator/schema.names.js @@ -16,5 +16,6 @@ module.exports = { GET_MOVEMENT_INFO_REQ: 'getMovementInfoReq', GET_WALLETS_REQ: 'getWalletsReq', - COMMON_FILE_REQ: 'commonFileReq' + COMMON_FILE_REQ: 'commonFileReq', + GET_MULTIPLE_FILE_REQ: 'getMultipleFileReq' } From 9bd79a133aabda4b925bd95a3236815a3e83562e Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Wed, 9 Jul 2025 11:27:06 +0300 Subject: [PATCH 069/113] Add getMultipleFile req param schema --- .../schemas/getMultipleFileReq.js | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 workers/loc.api/data-validator/schemas/getMultipleFileReq.js diff --git a/workers/loc.api/data-validator/schemas/getMultipleFileReq.js b/workers/loc.api/data-validator/schemas/getMultipleFileReq.js new file mode 100644 index 00000000..173e4c5f --- /dev/null +++ b/workers/loc.api/data-validator/schemas/getMultipleFileReq.js @@ -0,0 +1,39 @@ +'use strict' + +const SCHEMA_IDS = require('../schema.ids') + +module.exports = { + $id: SCHEMA_IDS.GET_MULTIPLE_FILE_REQ, + type: 'object', + additionalProperties: false, + required: ['multiExport'], + properties: { + email: { + $ref: 'defs#/definitions/email' + }, + language: { + $ref: 'defs#/definitions/language' + }, + isPDFRequired: { + $ref: 'defs#/definitions/isPDFRequired' + }, + isSignatureRequired: { + $ref: 'defs#/definitions/isSignatureRequired' + }, + + multiExport: { + type: 'array', + minItems: 1, + items: { + type: 'object', + additionalProperties: true, + required: ['method'], + properties: { + method: { + $ref: 'defs#/definitions/method' + } + } + } + } + } +} From 0de8d83d28ddf6d21c92bb7a50bccacd54ac86eb Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Wed, 9 Jul 2025 11:28:02 +0300 Subject: [PATCH 070/113] Remove redundant method field from commonFile req param schema --- workers/loc.api/data-validator/schemas/commonFileReq.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/workers/loc.api/data-validator/schemas/commonFileReq.js b/workers/loc.api/data-validator/schemas/commonFileReq.js index 5e90059e..cd669b74 100644 --- a/workers/loc.api/data-validator/schemas/commonFileReq.js +++ b/workers/loc.api/data-validator/schemas/commonFileReq.js @@ -7,9 +7,6 @@ module.exports = { type: 'object', additionalProperties: false, properties: { - method: { - $ref: 'defs#/definitions/method' - }, start: { $ref: 'defs#/definitions/start' }, From 4e421e24eb7780585b309e8688765e0bf9e748a0 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Wed, 9 Jul 2025 11:30:04 +0300 Subject: [PATCH 071/113] Add shouldParamsFieldBeChecked flag support to data validator --- workers/loc.api/data-validator/index.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/workers/loc.api/data-validator/index.js b/workers/loc.api/data-validator/index.js index 3c8a3e71..0793445c 100644 --- a/workers/loc.api/data-validator/index.js +++ b/workers/loc.api/data-validator/index.js @@ -52,12 +52,18 @@ const addSchemas = (schemas = []) => { } } -const validate = (args, schemaId) => { +const validate = (args, schemaId, opts) => { + const { + shouldParamsFieldBeChecked + } = opts ?? {} const params = args?.params if ( - typeof params === 'undefined' || - params === null + !shouldParamsFieldBeChecked && + ( + typeof params === 'undefined' || + params === null + ) ) { return true } From 6a6fafe958ce7f469b89de9b82634ea726bf7879 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Wed, 9 Jul 2025 11:31:39 +0300 Subject: [PATCH 072/113] Use data validator with multi-export --- .../loc.api/generate-report-file/report.file.job.data.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/workers/loc.api/generate-report-file/report.file.job.data.js b/workers/loc.api/generate-report-file/report.file.job.data.js index 6f45887e..01399052 100644 --- a/workers/loc.api/generate-report-file/report.file.job.data.js +++ b/workers/loc.api/generate-report-file/report.file.job.data.js @@ -1029,7 +1029,11 @@ class ReportFileJobData { uId, uInfo ) { - checkParams(args, 'paramsSchemaForMultipleFile', false, true) + this.dataValidator.validate( + args, + this.dataValidator.SCHEMA_IDS.GET_MULTIPLE_FILE_REQ, + { shouldParamsFieldBeChecked: true } + ) const { userId, From ba8b306c4f23e182aed49a1aac593b99069f7301 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Wed, 9 Jul 2025 12:37:06 +0300 Subject: [PATCH 073/113] Add email to commonFile req param schema --- workers/loc.api/data-validator/schemas/commonFileReq.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/workers/loc.api/data-validator/schemas/commonFileReq.js b/workers/loc.api/data-validator/schemas/commonFileReq.js index cd669b74..a5eeb011 100644 --- a/workers/loc.api/data-validator/schemas/commonFileReq.js +++ b/workers/loc.api/data-validator/schemas/commonFileReq.js @@ -23,6 +23,9 @@ module.exports = { $ref: 'defs#/definitions/filter' }, + email: { + $ref: 'defs#/definitions/email' + }, milliseconds: { $ref: 'defs#/definitions/milliseconds' }, From bf290e1aa2b117a44a66b00eba6adeaf087e5efe Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Wed, 9 Jul 2025 12:37:53 +0300 Subject: [PATCH 074/113] Add getTickersHistoryFile req param schema name --- workers/loc.api/data-validator/schema.names.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/workers/loc.api/data-validator/schema.names.js b/workers/loc.api/data-validator/schema.names.js index e67b4b38..394b418b 100644 --- a/workers/loc.api/data-validator/schema.names.js +++ b/workers/loc.api/data-validator/schema.names.js @@ -17,5 +17,6 @@ module.exports = { GET_WALLETS_REQ: 'getWalletsReq', COMMON_FILE_REQ: 'commonFileReq', - GET_MULTIPLE_FILE_REQ: 'getMultipleFileReq' + GET_MULTIPLE_FILE_REQ: 'getMultipleFileReq', + GET_TICKERS_HISTORY_FILE_REQ: 'getTickersHistoryFileReq' } From 13a7d57301cfcfba35bc855b154e9c23b263f263 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Wed, 9 Jul 2025 12:38:19 +0300 Subject: [PATCH 075/113] Add getTickersHistoryFile req param schema --- .../schemas/getTickersHistoryFileReq.js | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 workers/loc.api/data-validator/schemas/getTickersHistoryFileReq.js diff --git a/workers/loc.api/data-validator/schemas/getTickersHistoryFileReq.js b/workers/loc.api/data-validator/schemas/getTickersHistoryFileReq.js new file mode 100644 index 00000000..97e8132b --- /dev/null +++ b/workers/loc.api/data-validator/schemas/getTickersHistoryFileReq.js @@ -0,0 +1,49 @@ +'use strict' + +const SCHEMA_IDS = require('../schema.ids') + +module.exports = { + $id: SCHEMA_IDS.GET_TICKERS_HISTORY_FILE_REQ, + type: 'object', + additionalProperties: false, + required: ['symbol'], + properties: { + start: { + $ref: 'defs#/definitions/start' + }, + end: { + $ref: 'defs#/definitions/end' + }, + limit: { + $ref: 'defs#/definitions/limit' + }, + symbol: { + $ref: 'defs#/definitions/symbolWithMinItem' + }, + filter: { + $ref: 'defs#/definitions/filter' + }, + + email: { + $ref: 'defs#/definitions/email' + }, + milliseconds: { + $ref: 'defs#/definitions/milliseconds' + }, + dateFormat: { + $ref: 'defs#/definitions/dateFormat' + }, + language: { + $ref: 'defs#/definitions/language' + }, + timezone: { + $ref: 'defs#/definitions/timezone' + }, + isPDFRequired: { + $ref: 'defs#/definitions/isPDFRequired' + }, + isSignatureRequired: { + $ref: 'defs#/definitions/isSignatureRequired' + } + } +} From 2a756356b7b9f7c3918c3e1d396c669f96c3ec7d Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Wed, 9 Jul 2025 12:39:08 +0300 Subject: [PATCH 076/113] Use data validator with getTickersHistoryFile --- workers/loc.api/generate-report-file/report.file.job.data.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/workers/loc.api/generate-report-file/report.file.job.data.js b/workers/loc.api/generate-report-file/report.file.job.data.js index 01399052..133e6e0f 100644 --- a/workers/loc.api/generate-report-file/report.file.job.data.js +++ b/workers/loc.api/generate-report-file/report.file.job.data.js @@ -130,7 +130,10 @@ class ReportFileJobData { uId, uInfo ) { - checkParams(args, 'paramsSchemaForFile', ['symbol']) + this.dataValidator.validate( + args, + this.dataValidator.SCHEMA_IDS.GET_TICKERS_HISTORY_FILE_REQ + ) const { userId, From 7ac7b346f6e0764442c688f5f259ded547de58ee Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Thu, 10 Jul 2025 11:59:09 +0300 Subject: [PATCH 077/113] Add getMovementsFile req param schema name --- workers/loc.api/data-validator/schema.names.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/workers/loc.api/data-validator/schema.names.js b/workers/loc.api/data-validator/schema.names.js index 394b418b..6db4ce22 100644 --- a/workers/loc.api/data-validator/schema.names.js +++ b/workers/loc.api/data-validator/schema.names.js @@ -18,5 +18,6 @@ module.exports = { COMMON_FILE_REQ: 'commonFileReq', GET_MULTIPLE_FILE_REQ: 'getMultipleFileReq', - GET_TICKERS_HISTORY_FILE_REQ: 'getTickersHistoryFileReq' + GET_TICKERS_HISTORY_FILE_REQ: 'getTickersHistoryFileReq', + GET_MOVEMENTS_FILE_REQ: 'getMovementsFileReq' } From f377249038c59d08093179e56e69b88158179fb5 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Thu, 10 Jul 2025 11:59:33 +0300 Subject: [PATCH 078/113] Add getMovementsFile req param schema --- .../schemas/getMovementsFileReq.js | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 workers/loc.api/data-validator/schemas/getMovementsFileReq.js diff --git a/workers/loc.api/data-validator/schemas/getMovementsFileReq.js b/workers/loc.api/data-validator/schemas/getMovementsFileReq.js new file mode 100644 index 00000000..91499afb --- /dev/null +++ b/workers/loc.api/data-validator/schemas/getMovementsFileReq.js @@ -0,0 +1,54 @@ +'use strict' + +const SCHEMA_IDS = require('../schema.ids') + +module.exports = { + $id: SCHEMA_IDS.GET_MOVEMENTS_FILE_REQ, + type: 'object', + additionalProperties: false, + properties: { + start: { + $ref: 'defs#/definitions/start' + }, + end: { + $ref: 'defs#/definitions/end' + }, + limit: { + $ref: 'defs#/definitions/limit' + }, + symbol: { + $ref: 'defs#/definitions/symbolWithMinItem' + }, + filter: { + $ref: 'defs#/definitions/filter' + }, + isDeposits: { + type: 'boolean' + }, + isWithdrawals: { + type: 'boolean' + }, + + email: { + $ref: 'defs#/definitions/email' + }, + milliseconds: { + $ref: 'defs#/definitions/milliseconds' + }, + dateFormat: { + $ref: 'defs#/definitions/dateFormat' + }, + language: { + $ref: 'defs#/definitions/language' + }, + timezone: { + $ref: 'defs#/definitions/timezone' + }, + isPDFRequired: { + $ref: 'defs#/definitions/isPDFRequired' + }, + isSignatureRequired: { + $ref: 'defs#/definitions/isSignatureRequired' + } + } +} From 45a246ee65780738d10d9c98939a5496d75a199c Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Thu, 10 Jul 2025 11:59:57 +0300 Subject: [PATCH 079/113] Use data validator with getMovementsFile --- workers/loc.api/generate-report-file/report.file.job.data.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workers/loc.api/generate-report-file/report.file.job.data.js b/workers/loc.api/generate-report-file/report.file.job.data.js index 133e6e0f..5f1869ac 100644 --- a/workers/loc.api/generate-report-file/report.file.job.data.js +++ b/workers/loc.api/generate-report-file/report.file.job.data.js @@ -755,7 +755,7 @@ class ReportFileJobData { ) { this.dataValidator.validate( args, - this.dataValidator.SCHEMA_IDS.COMMON_FILE_REQ + this.dataValidator.SCHEMA_IDS.GET_MOVEMENTS_FILE_REQ ) const { From db3950b621a57659741cd4677149e846530e6e0a Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Thu, 10 Jul 2025 12:14:45 +0300 Subject: [PATCH 080/113] Add getLedgersFile req param schema name --- workers/loc.api/data-validator/schema.names.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/workers/loc.api/data-validator/schema.names.js b/workers/loc.api/data-validator/schema.names.js index 6db4ce22..9241b515 100644 --- a/workers/loc.api/data-validator/schema.names.js +++ b/workers/loc.api/data-validator/schema.names.js @@ -19,5 +19,6 @@ module.exports = { COMMON_FILE_REQ: 'commonFileReq', GET_MULTIPLE_FILE_REQ: 'getMultipleFileReq', GET_TICKERS_HISTORY_FILE_REQ: 'getTickersHistoryFileReq', - GET_MOVEMENTS_FILE_REQ: 'getMovementsFileReq' + GET_MOVEMENTS_FILE_REQ: 'getMovementsFileReq', + GET_LEDGERS_FILE_REQ: 'getLedgersFileReq' } From 0f95f3e68ce41a4c8658a3a81a2dcdd7d2cb8794 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Thu, 10 Jul 2025 12:15:00 +0300 Subject: [PATCH 081/113] Add getLedgersFile req param schema --- .../schemas/getLedgersFileReq.js | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 workers/loc.api/data-validator/schemas/getLedgersFileReq.js diff --git a/workers/loc.api/data-validator/schemas/getLedgersFileReq.js b/workers/loc.api/data-validator/schemas/getLedgersFileReq.js new file mode 100644 index 00000000..ef916779 --- /dev/null +++ b/workers/loc.api/data-validator/schemas/getLedgersFileReq.js @@ -0,0 +1,70 @@ +'use strict' + +const SCHEMA_IDS = require('../schema.ids') + +module.exports = { + $id: SCHEMA_IDS.GET_LEDGERS_FILE_REQ, + type: 'object', + additionalProperties: false, + properties: { + start: { + $ref: 'defs#/definitions/start' + }, + end: { + $ref: 'defs#/definitions/end' + }, + limit: { + $ref: 'defs#/definitions/limit' + }, + symbol: { + $ref: 'defs#/definitions/symbolWithMinItem' + }, + category: { + type: ['string', 'integer'], + if: { + type: 'string' + }, + then: { + minLength: 1, + pattern: '(^[1-9]\\d*$)|(^[0]$)' + }, + else: { + minimum: 0 + } + }, + isMarginFundingPayment: { + type: 'boolean' + }, + isAffiliateRebate: { + type: 'boolean' + }, + isStakingPayments: { + type: 'boolean' + }, + filter: { + $ref: 'defs#/definitions/filter' + }, + + email: { + $ref: 'defs#/definitions/email' + }, + milliseconds: { + $ref: 'defs#/definitions/milliseconds' + }, + dateFormat: { + $ref: 'defs#/definitions/dateFormat' + }, + language: { + $ref: 'defs#/definitions/language' + }, + timezone: { + $ref: 'defs#/definitions/timezone' + }, + isPDFRequired: { + $ref: 'defs#/definitions/isPDFRequired' + }, + isSignatureRequired: { + $ref: 'defs#/definitions/isSignatureRequired' + } + } +} From 7c6417406f8024c88cb4ef58952a90324615794e Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Thu, 10 Jul 2025 12:15:36 +0300 Subject: [PATCH 082/113] Use data validator with getLedgersFile --- workers/loc.api/generate-report-file/report.file.job.data.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/workers/loc.api/generate-report-file/report.file.job.data.js b/workers/loc.api/generate-report-file/report.file.job.data.js index 5f1869ac..5a73bb54 100644 --- a/workers/loc.api/generate-report-file/report.file.job.data.js +++ b/workers/loc.api/generate-report-file/report.file.job.data.js @@ -518,7 +518,10 @@ class ReportFileJobData { uId, uInfo ) { - checkParams(args) + this.dataValidator.validate( + args, + this.dataValidator.SCHEMA_IDS.GET_LEDGERS_FILE_REQ + ) const { userId, From cf17073a1bf692eed02a0723c695c53f55407fd8 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Thu, 10 Jul 2025 12:23:22 +0300 Subject: [PATCH 083/113] Add getWalletsFile req param schema name --- workers/loc.api/data-validator/schema.names.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/workers/loc.api/data-validator/schema.names.js b/workers/loc.api/data-validator/schema.names.js index 9241b515..2dda6ef3 100644 --- a/workers/loc.api/data-validator/schema.names.js +++ b/workers/loc.api/data-validator/schema.names.js @@ -20,5 +20,6 @@ module.exports = { GET_MULTIPLE_FILE_REQ: 'getMultipleFileReq', GET_TICKERS_HISTORY_FILE_REQ: 'getTickersHistoryFileReq', GET_MOVEMENTS_FILE_REQ: 'getMovementsFileReq', - GET_LEDGERS_FILE_REQ: 'getLedgersFileReq' + GET_LEDGERS_FILE_REQ: 'getLedgersFileReq', + GET_WALLETS_FILE_REQ: 'getWalletsFileReq' } From d29ef61cd09989a5c531d979871ebed304c6110e Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Thu, 10 Jul 2025 12:23:42 +0300 Subject: [PATCH 084/113] Add getWalletsFile req param schema --- .../schemas/getWalletsFileReq.js | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 workers/loc.api/data-validator/schemas/getWalletsFileReq.js diff --git a/workers/loc.api/data-validator/schemas/getWalletsFileReq.js b/workers/loc.api/data-validator/schemas/getWalletsFileReq.js new file mode 100644 index 00000000..7c7f7ee5 --- /dev/null +++ b/workers/loc.api/data-validator/schemas/getWalletsFileReq.js @@ -0,0 +1,36 @@ +'use strict' + +const SCHEMA_IDS = require('../schema.ids') + +module.exports = { + $id: SCHEMA_IDS.GET_WALLETS_FILE_REQ, + type: 'object', + additionalProperties: false, + properties: { + end: { + $ref: 'defs#/definitions/end' + }, + + email: { + $ref: 'defs#/definitions/email' + }, + milliseconds: { + $ref: 'defs#/definitions/milliseconds' + }, + dateFormat: { + $ref: 'defs#/definitions/dateFormat' + }, + language: { + $ref: 'defs#/definitions/language' + }, + timezone: { + $ref: 'defs#/definitions/timezone' + }, + isPDFRequired: { + $ref: 'defs#/definitions/isPDFRequired' + }, + isSignatureRequired: { + $ref: 'defs#/definitions/isSignatureRequired' + } + } +} From 7184a3755f6e882c4d3d122e741259f6469b7fbe Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Thu, 10 Jul 2025 12:24:19 +0300 Subject: [PATCH 085/113] Use data validator with getWalletsFile --- workers/loc.api/generate-report-file/report.file.job.data.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/workers/loc.api/generate-report-file/report.file.job.data.js b/workers/loc.api/generate-report-file/report.file.job.data.js index 5a73bb54..61f2341a 100644 --- a/workers/loc.api/generate-report-file/report.file.job.data.js +++ b/workers/loc.api/generate-report-file/report.file.job.data.js @@ -194,7 +194,10 @@ class ReportFileJobData { uId, uInfo ) { - checkParams(args, 'paramsSchemaForWalletsFile') + this.dataValidator.validate( + args, + this.dataValidator.SCHEMA_IDS.GET_WALLETS_FILE_REQ + ) const { userId, From 875ca139f867d9d0edb87f4dc738a1aaebea9958 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Thu, 10 Jul 2025 12:41:14 +0300 Subject: [PATCH 086/113] Add getActivePositionsFile req param schema name --- workers/loc.api/data-validator/schema.names.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/workers/loc.api/data-validator/schema.names.js b/workers/loc.api/data-validator/schema.names.js index 2dda6ef3..4195e44d 100644 --- a/workers/loc.api/data-validator/schema.names.js +++ b/workers/loc.api/data-validator/schema.names.js @@ -21,5 +21,6 @@ module.exports = { GET_TICKERS_HISTORY_FILE_REQ: 'getTickersHistoryFileReq', GET_MOVEMENTS_FILE_REQ: 'getMovementsFileReq', GET_LEDGERS_FILE_REQ: 'getLedgersFileReq', - GET_WALLETS_FILE_REQ: 'getWalletsFileReq' + GET_WALLETS_FILE_REQ: 'getWalletsFileReq', + GET_ACTIVE_POSITIONS_FILE_REQ: 'getActivePositionsFileReq' } From 54aa867d339eeb0013cf122b9e9243136bc6af49 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Thu, 10 Jul 2025 12:41:34 +0300 Subject: [PATCH 087/113] Add getActivePositionsFile req param schema --- .../schemas/getActivePositionsFileReq.js | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 workers/loc.api/data-validator/schemas/getActivePositionsFileReq.js diff --git a/workers/loc.api/data-validator/schemas/getActivePositionsFileReq.js b/workers/loc.api/data-validator/schemas/getActivePositionsFileReq.js new file mode 100644 index 00000000..8bbb83cb --- /dev/null +++ b/workers/loc.api/data-validator/schemas/getActivePositionsFileReq.js @@ -0,0 +1,32 @@ +'use strict' + +const SCHEMA_IDS = require('../schema.ids') + +module.exports = { + $id: SCHEMA_IDS.GET_ACTIVE_POSITIONS_FILE_REQ, + type: 'object', + additionalProperties: false, + properties: { + email: { + $ref: 'defs#/definitions/email' + }, + milliseconds: { + $ref: 'defs#/definitions/milliseconds' + }, + dateFormat: { + $ref: 'defs#/definitions/dateFormat' + }, + language: { + $ref: 'defs#/definitions/language' + }, + timezone: { + $ref: 'defs#/definitions/timezone' + }, + isPDFRequired: { + $ref: 'defs#/definitions/isPDFRequired' + }, + isSignatureRequired: { + $ref: 'defs#/definitions/isSignatureRequired' + } + } +} From ba7b1f861d0a64a19d6f5ead0985b02ecdba1a07 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Thu, 10 Jul 2025 12:42:03 +0300 Subject: [PATCH 088/113] Use data validator with getActivePositionsFile --- workers/loc.api/generate-report-file/report.file.job.data.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/workers/loc.api/generate-report-file/report.file.job.data.js b/workers/loc.api/generate-report-file/report.file.job.data.js index 61f2341a..22ef8d35 100644 --- a/workers/loc.api/generate-report-file/report.file.job.data.js +++ b/workers/loc.api/generate-report-file/report.file.job.data.js @@ -285,7 +285,10 @@ class ReportFileJobData { uId, uInfo ) { - checkParams(args, 'paramsSchemaForActivePositionsFile') + this.dataValidator.validate( + args, + this.dataValidator.SCHEMA_IDS.GET_ACTIVE_POSITIONS_FILE_REQ + ) const { userId, From 78df59f3d09e61dede370c3d5d6cb0f31c3d00fb Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Fri, 11 Jul 2025 10:15:28 +0300 Subject: [PATCH 089/113] Add getPositionsAuditFile req param schema name --- workers/loc.api/data-validator/schema.names.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/workers/loc.api/data-validator/schema.names.js b/workers/loc.api/data-validator/schema.names.js index 4195e44d..6aa7e1de 100644 --- a/workers/loc.api/data-validator/schema.names.js +++ b/workers/loc.api/data-validator/schema.names.js @@ -22,5 +22,6 @@ module.exports = { GET_MOVEMENTS_FILE_REQ: 'getMovementsFileReq', GET_LEDGERS_FILE_REQ: 'getLedgersFileReq', GET_WALLETS_FILE_REQ: 'getWalletsFileReq', - GET_ACTIVE_POSITIONS_FILE_REQ: 'getActivePositionsFileReq' + GET_ACTIVE_POSITIONS_FILE_REQ: 'getActivePositionsFileReq', + GET_POSITIONS_AUDIT_FILE_REQ: 'getPositionsAuditFileReq' } From 0c9b7d0ed9e77fe66c9cb06c520cf8086f51953c Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Fri, 11 Jul 2025 10:15:44 +0300 Subject: [PATCH 090/113] Add getPositionsAuditFile req param schema --- .../schemas/getPositionsAuditFileReq.js | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 workers/loc.api/data-validator/schemas/getPositionsAuditFileReq.js diff --git a/workers/loc.api/data-validator/schemas/getPositionsAuditFileReq.js b/workers/loc.api/data-validator/schemas/getPositionsAuditFileReq.js new file mode 100644 index 00000000..a4aa98f9 --- /dev/null +++ b/workers/loc.api/data-validator/schemas/getPositionsAuditFileReq.js @@ -0,0 +1,52 @@ +'use strict' + +const SCHEMA_IDS = require('../schema.ids') + +module.exports = { + $id: SCHEMA_IDS.GET_POSITIONS_AUDIT_FILE_REQ, + type: 'object', + additionalProperties: false, + required: ['id'], + properties: { + start: { + $ref: 'defs#/definitions/start' + }, + end: { + $ref: 'defs#/definitions/end' + }, + limit: { + $ref: 'defs#/definitions/limit' + }, + symbol: { + $ref: 'defs#/definitions/symbolWithMinItem' + }, + id: { + $ref: 'defs#/definitions/arrId' + }, + filter: { + $ref: 'defs#/definitions/filter' + }, + + email: { + $ref: 'defs#/definitions/email' + }, + milliseconds: { + $ref: 'defs#/definitions/milliseconds' + }, + dateFormat: { + $ref: 'defs#/definitions/dateFormat' + }, + language: { + $ref: 'defs#/definitions/language' + }, + timezone: { + $ref: 'defs#/definitions/timezone' + }, + isPDFRequired: { + $ref: 'defs#/definitions/isPDFRequired' + }, + isSignatureRequired: { + $ref: 'defs#/definitions/isSignatureRequired' + } + } +} From 419d065dd6d92a09d8837c295d043a8693cafd39 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Fri, 11 Jul 2025 10:17:35 +0300 Subject: [PATCH 091/113] Use data validator with getPositionsAuditFile --- workers/loc.api/generate-report-file/report.file.job.data.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/workers/loc.api/generate-report-file/report.file.job.data.js b/workers/loc.api/generate-report-file/report.file.job.data.js index 22ef8d35..5785af26 100644 --- a/workers/loc.api/generate-report-file/report.file.job.data.js +++ b/workers/loc.api/generate-report-file/report.file.job.data.js @@ -339,7 +339,10 @@ class ReportFileJobData { uInfo ) { const _args = parsePositionsAuditId(args) - checkParams(_args, 'paramsSchemaForPositionsAuditFile', ['id']) + this.dataValidator.validate( + args, + this.dataValidator.SCHEMA_IDS.GET_POSITIONS_AUDIT_FILE_REQ + ) const { userId, From 914b52af6abf21e24bd49d8a38910c811a7a9544 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Fri, 11 Jul 2025 11:18:16 +0300 Subject: [PATCH 092/113] Add getPublicTradesFile req param schema name --- workers/loc.api/data-validator/schema.names.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/workers/loc.api/data-validator/schema.names.js b/workers/loc.api/data-validator/schema.names.js index 6aa7e1de..4ca7fed2 100644 --- a/workers/loc.api/data-validator/schema.names.js +++ b/workers/loc.api/data-validator/schema.names.js @@ -23,5 +23,6 @@ module.exports = { GET_LEDGERS_FILE_REQ: 'getLedgersFileReq', GET_WALLETS_FILE_REQ: 'getWalletsFileReq', GET_ACTIVE_POSITIONS_FILE_REQ: 'getActivePositionsFileReq', - GET_POSITIONS_AUDIT_FILE_REQ: 'getPositionsAuditFileReq' + GET_POSITIONS_AUDIT_FILE_REQ: 'getPositionsAuditFileReq', + GET_PUBLIC_TRADES_FILE_REQ: 'getPublicTradesFileReq' } From dc71a266b91383648394d5b10b524f078447c56a Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Fri, 11 Jul 2025 11:19:18 +0300 Subject: [PATCH 093/113] Add getPublicTradesFile req param schema --- .../schemas/getPublicTradesFileReq.js | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 workers/loc.api/data-validator/schemas/getPublicTradesFileReq.js diff --git a/workers/loc.api/data-validator/schemas/getPublicTradesFileReq.js b/workers/loc.api/data-validator/schemas/getPublicTradesFileReq.js new file mode 100644 index 00000000..3156f4b5 --- /dev/null +++ b/workers/loc.api/data-validator/schemas/getPublicTradesFileReq.js @@ -0,0 +1,49 @@ +'use strict' + +const SCHEMA_IDS = require('../schema.ids') + +module.exports = { + $id: SCHEMA_IDS.GET_PUBLIC_TRADES_FILE_REQ, + type: 'object', + additionalProperties: false, + required: ['symbol'], + properties: { + start: { + $ref: 'defs#/definitions/start' + }, + end: { + $ref: 'defs#/definitions/end' + }, + limit: { + $ref: 'defs#/definitions/limit' + }, + symbol: { + $ref: 'defs#/definitions/symbolWithMaxItem' + }, + filter: { + $ref: 'defs#/definitions/filter' + }, + + email: { + $ref: 'defs#/definitions/email' + }, + milliseconds: { + $ref: 'defs#/definitions/milliseconds' + }, + dateFormat: { + $ref: 'defs#/definitions/dateFormat' + }, + language: { + $ref: 'defs#/definitions/language' + }, + timezone: { + $ref: 'defs#/definitions/timezone' + }, + isPDFRequired: { + $ref: 'defs#/definitions/isPDFRequired' + }, + isSignatureRequired: { + $ref: 'defs#/definitions/isSignatureRequired' + } + } +} From df50e9650a771c20597bc054a650738537adedf2 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Fri, 11 Jul 2025 11:20:27 +0300 Subject: [PATCH 094/113] Use data validator with getPublicTradesFile --- workers/loc.api/generate-report-file/report.file.job.data.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/workers/loc.api/generate-report-file/report.file.job.data.js b/workers/loc.api/generate-report-file/report.file.job.data.js index 5785af26..9fcc2807 100644 --- a/workers/loc.api/generate-report-file/report.file.job.data.js +++ b/workers/loc.api/generate-report-file/report.file.job.data.js @@ -391,7 +391,10 @@ class ReportFileJobData { uId, uInfo ) { - checkParams(args, 'paramsSchemaForPublicTradesFile', ['symbol']) + this.dataValidator.validate( + args, + this.dataValidator.SCHEMA_IDS.GET_PUBLIC_TRADES_FILE_REQ + ) checkTimeLimit(args) const { From 9b0a41a836e44f0facb4948fbfaf244eed47dfe3 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Fri, 11 Jul 2025 11:22:43 +0300 Subject: [PATCH 095/113] Add required symbol field to getPublicTrades req param schema --- workers/loc.api/data-validator/schemas/getPublicTradesReq.js | 1 + 1 file changed, 1 insertion(+) diff --git a/workers/loc.api/data-validator/schemas/getPublicTradesReq.js b/workers/loc.api/data-validator/schemas/getPublicTradesReq.js index 25e68abc..3d82793c 100644 --- a/workers/loc.api/data-validator/schemas/getPublicTradesReq.js +++ b/workers/loc.api/data-validator/schemas/getPublicTradesReq.js @@ -6,6 +6,7 @@ module.exports = { $id: SCHEMA_IDS.GET_PUBLIC_TRADES_REQ, type: 'object', additionalProperties: false, + required: ['symbol'], properties: { start: { $ref: 'defs#/definitions/start' From 2faa744d0a27662f276cac207b3c3fc0b8a37df7 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Fri, 11 Jul 2025 11:40:09 +0300 Subject: [PATCH 096/113] Add getStatusMessagesFile req param schema name --- workers/loc.api/data-validator/schema.names.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/workers/loc.api/data-validator/schema.names.js b/workers/loc.api/data-validator/schema.names.js index 4ca7fed2..254427dd 100644 --- a/workers/loc.api/data-validator/schema.names.js +++ b/workers/loc.api/data-validator/schema.names.js @@ -24,5 +24,6 @@ module.exports = { GET_WALLETS_FILE_REQ: 'getWalletsFileReq', GET_ACTIVE_POSITIONS_FILE_REQ: 'getActivePositionsFileReq', GET_POSITIONS_AUDIT_FILE_REQ: 'getPositionsAuditFileReq', - GET_PUBLIC_TRADES_FILE_REQ: 'getPublicTradesFileReq' + GET_PUBLIC_TRADES_FILE_REQ: 'getPublicTradesFileReq', + GET_STATUS_MESSAGES_FILE_REQ: 'getStatusMessagesFileReq' } From bef272efcfeb96f0769ab8ae68195adcade4807e Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Fri, 11 Jul 2025 11:40:22 +0300 Subject: [PATCH 097/113] Add getStatusMessagesFile req param schema --- .../schemas/getStatusMessagesFileReq.js | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 workers/loc.api/data-validator/schemas/getStatusMessagesFileReq.js diff --git a/workers/loc.api/data-validator/schemas/getStatusMessagesFileReq.js b/workers/loc.api/data-validator/schemas/getStatusMessagesFileReq.js new file mode 100644 index 00000000..a96adf89 --- /dev/null +++ b/workers/loc.api/data-validator/schemas/getStatusMessagesFileReq.js @@ -0,0 +1,42 @@ +'use strict' + +const SCHEMA_IDS = require('../schema.ids') + +module.exports = { + $id: SCHEMA_IDS.GET_STATUS_MESSAGES_FILE_REQ, + type: 'object', + additionalProperties: false, + properties: { + symbol: { + $ref: 'defs#/definitions/symbolWithMinItem' + }, + type: { + type: 'string' + }, + filter: { + $ref: 'defs#/definitions/filter' + }, + + email: { + $ref: 'defs#/definitions/email' + }, + milliseconds: { + $ref: 'defs#/definitions/milliseconds' + }, + dateFormat: { + $ref: 'defs#/definitions/dateFormat' + }, + language: { + $ref: 'defs#/definitions/language' + }, + timezone: { + $ref: 'defs#/definitions/timezone' + }, + isPDFRequired: { + $ref: 'defs#/definitions/isPDFRequired' + }, + isSignatureRequired: { + $ref: 'defs#/definitions/isSignatureRequired' + } + } +} From 367c20fd0519b1f712c7c4da672603dae31fe68f Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Fri, 11 Jul 2025 11:40:50 +0300 Subject: [PATCH 098/113] Use data validator with getStatusMessagesFile --- workers/loc.api/generate-report-file/report.file.job.data.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/workers/loc.api/generate-report-file/report.file.job.data.js b/workers/loc.api/generate-report-file/report.file.job.data.js index 9fcc2807..81d9ef7d 100644 --- a/workers/loc.api/generate-report-file/report.file.job.data.js +++ b/workers/loc.api/generate-report-file/report.file.job.data.js @@ -449,7 +449,10 @@ class ReportFileJobData { uId, uInfo ) { - checkParams(args, 'paramsSchemaForStatusMessagesFile') + this.dataValidator.validate( + args, + this.dataValidator.SCHEMA_IDS.GET_STATUS_MESSAGES_FILE_REQ + ) const { userId, From e402b08860f3c688ec4563d3a934fba8dd427729 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Fri, 11 Jul 2025 11:47:37 +0300 Subject: [PATCH 099/113] Add getCandlesFile req param schema name --- workers/loc.api/data-validator/schema.names.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/workers/loc.api/data-validator/schema.names.js b/workers/loc.api/data-validator/schema.names.js index 254427dd..8d83042e 100644 --- a/workers/loc.api/data-validator/schema.names.js +++ b/workers/loc.api/data-validator/schema.names.js @@ -25,5 +25,6 @@ module.exports = { GET_ACTIVE_POSITIONS_FILE_REQ: 'getActivePositionsFileReq', GET_POSITIONS_AUDIT_FILE_REQ: 'getPositionsAuditFileReq', GET_PUBLIC_TRADES_FILE_REQ: 'getPublicTradesFileReq', - GET_STATUS_MESSAGES_FILE_REQ: 'getStatusMessagesFileReq' + GET_STATUS_MESSAGES_FILE_REQ: 'getStatusMessagesFileReq', + GET_CANDLES_FILE_REQ: 'getCandlesFileReq' } From 40b217b28cf4748bbcc0ca64561af717af0e1e62 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Fri, 11 Jul 2025 11:47:50 +0300 Subject: [PATCH 100/113] Add getCandlesFile req param schema --- .../schemas/getCandlesFileReq.js | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 workers/loc.api/data-validator/schemas/getCandlesFileReq.js diff --git a/workers/loc.api/data-validator/schemas/getCandlesFileReq.js b/workers/loc.api/data-validator/schemas/getCandlesFileReq.js new file mode 100644 index 00000000..c1552202 --- /dev/null +++ b/workers/loc.api/data-validator/schemas/getCandlesFileReq.js @@ -0,0 +1,60 @@ +'use strict' + +const SCHEMA_IDS = require('../schema.ids') + +module.exports = { + $id: SCHEMA_IDS.GET_CANDLES_FILE_REQ, + type: 'object', + additionalProperties: false, + required: ['symbol'], + properties: { + start: { + $ref: 'defs#/definitions/start' + }, + end: { + $ref: 'defs#/definitions/end' + }, + limit: { + $ref: 'defs#/definitions/limit' + }, + symbol: { + $ref: 'defs#/definitions/symbolWithMaxItem' + }, + sort: { + $ref: 'defs#/definitions/sort' + }, + timeframe: { + type: 'string', + minLength: 2 + }, + section: { + type: 'string', + enum: ['last', 'hist'] + }, + filter: { + $ref: 'defs#/definitions/filter' + }, + + email: { + $ref: 'defs#/definitions/email' + }, + milliseconds: { + $ref: 'defs#/definitions/milliseconds' + }, + dateFormat: { + $ref: 'defs#/definitions/dateFormat' + }, + language: { + $ref: 'defs#/definitions/language' + }, + timezone: { + $ref: 'defs#/definitions/timezone' + }, + isPDFRequired: { + $ref: 'defs#/definitions/isPDFRequired' + }, + isSignatureRequired: { + $ref: 'defs#/definitions/isSignatureRequired' + } + } +} From 3fce722c37cba6ced7c634b825a052305f247dee Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Fri, 11 Jul 2025 11:48:18 +0300 Subject: [PATCH 101/113] Use data validator with getCandlesFile --- workers/loc.api/generate-report-file/report.file.job.data.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/workers/loc.api/generate-report-file/report.file.job.data.js b/workers/loc.api/generate-report-file/report.file.job.data.js index 81d9ef7d..3ef7c927 100644 --- a/workers/loc.api/generate-report-file/report.file.job.data.js +++ b/workers/loc.api/generate-report-file/report.file.job.data.js @@ -492,7 +492,10 @@ class ReportFileJobData { uId, uInfo ) { - checkParams(args, 'paramsSchemaForCandlesFile', ['symbol']) + this.dataValidator.validate( + args, + this.dataValidator.SCHEMA_IDS.GET_CANDLES_FILE_REQ + ) checkTimeLimit(args) const { From c7260cc139d7282ec08cce2074896d2c153ca7c9 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Mon, 14 Jul 2025 12:08:11 +0300 Subject: [PATCH 102/113] Add getOrderTradesFile req param schema name --- workers/loc.api/data-validator/schema.names.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/workers/loc.api/data-validator/schema.names.js b/workers/loc.api/data-validator/schema.names.js index 8d83042e..62b70abd 100644 --- a/workers/loc.api/data-validator/schema.names.js +++ b/workers/loc.api/data-validator/schema.names.js @@ -26,5 +26,6 @@ module.exports = { GET_POSITIONS_AUDIT_FILE_REQ: 'getPositionsAuditFileReq', GET_PUBLIC_TRADES_FILE_REQ: 'getPublicTradesFileReq', GET_STATUS_MESSAGES_FILE_REQ: 'getStatusMessagesFileReq', - GET_CANDLES_FILE_REQ: 'getCandlesFileReq' + GET_CANDLES_FILE_REQ: 'getCandlesFileReq', + GET_ORDER_TRADES_FILE_REQ: 'getOrderTradesFileReq' } From f61c5c12a7d5bd803e9bdd5adfe1474dee408007 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Mon, 14 Jul 2025 12:08:33 +0300 Subject: [PATCH 103/113] Add getOrderTradesFile req param schema --- .../schemas/getOrderTradesFileReq.js | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 workers/loc.api/data-validator/schemas/getOrderTradesFileReq.js diff --git a/workers/loc.api/data-validator/schemas/getOrderTradesFileReq.js b/workers/loc.api/data-validator/schemas/getOrderTradesFileReq.js new file mode 100644 index 00000000..3f6ea679 --- /dev/null +++ b/workers/loc.api/data-validator/schemas/getOrderTradesFileReq.js @@ -0,0 +1,52 @@ +'use strict' + +const SCHEMA_IDS = require('../schema.ids') + +module.exports = { + $id: SCHEMA_IDS.GET_ORDER_TRADES_FILE_REQ, + type: 'object', + additionalProperties: false, + required: ['id', 'symbol'], + properties: { + start: { + $ref: 'defs#/definitions/start' + }, + end: { + $ref: 'defs#/definitions/end' + }, + limit: { + $ref: 'defs#/definitions/limit' + }, + symbol: { + $ref: 'defs#/definitions/symbolWithMinMaxItem' + }, + id: { + $ref: 'defs#/definitions/intId' + }, + filter: { + $ref: 'defs#/definitions/filter' + }, + + email: { + $ref: 'defs#/definitions/email' + }, + milliseconds: { + $ref: 'defs#/definitions/milliseconds' + }, + dateFormat: { + $ref: 'defs#/definitions/dateFormat' + }, + language: { + $ref: 'defs#/definitions/language' + }, + timezone: { + $ref: 'defs#/definitions/timezone' + }, + isPDFRequired: { + $ref: 'defs#/definitions/isPDFRequired' + }, + isSignatureRequired: { + $ref: 'defs#/definitions/isSignatureRequired' + } + } +} From 8988abceea7dd1f2f312a33bace5f784682620ef Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Mon, 14 Jul 2025 12:09:07 +0300 Subject: [PATCH 104/113] Use data validator with getOrderTradesFile --- workers/loc.api/generate-report-file/report.file.job.data.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/workers/loc.api/generate-report-file/report.file.job.data.js b/workers/loc.api/generate-report-file/report.file.job.data.js index 3ef7c927..2fab3b6b 100644 --- a/workers/loc.api/generate-report-file/report.file.job.data.js +++ b/workers/loc.api/generate-report-file/report.file.job.data.js @@ -630,7 +630,10 @@ class ReportFileJobData { uId, uInfo ) { - checkParams(args, 'paramsSchemaForOrderTradesFile') + this.dataValidator.validate( + args, + this.dataValidator.SCHEMA_IDS.GET_ORDER_TRADES_FILE_REQ + ) const { userId, From cd00db354babd91dea3f25a9611b51eb6071236d Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Mon, 14 Jul 2025 12:21:14 +0300 Subject: [PATCH 105/113] Add getWeightedAveragesReportFile req param schema name --- workers/loc.api/data-validator/schema.names.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/workers/loc.api/data-validator/schema.names.js b/workers/loc.api/data-validator/schema.names.js index 62b70abd..9bc39edd 100644 --- a/workers/loc.api/data-validator/schema.names.js +++ b/workers/loc.api/data-validator/schema.names.js @@ -27,5 +27,6 @@ module.exports = { GET_PUBLIC_TRADES_FILE_REQ: 'getPublicTradesFileReq', GET_STATUS_MESSAGES_FILE_REQ: 'getStatusMessagesFileReq', GET_CANDLES_FILE_REQ: 'getCandlesFileReq', - GET_ORDER_TRADES_FILE_REQ: 'getOrderTradesFileReq' + GET_ORDER_TRADES_FILE_REQ: 'getOrderTradesFileReq', + GET_WEIGHTED_AVERAGES_REPORT_FILE_REQ: 'getWeightedAveragesReportFileReq' } From 41b07e344c2c01610166bb1193bc54d6148b396d Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Mon, 14 Jul 2025 12:21:32 +0300 Subject: [PATCH 106/113] Add getWeightedAveragesReportFile req param schema --- .../getWeightedAveragesReportFileReq.js | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 workers/loc.api/data-validator/schemas/getWeightedAveragesReportFileReq.js diff --git a/workers/loc.api/data-validator/schemas/getWeightedAveragesReportFileReq.js b/workers/loc.api/data-validator/schemas/getWeightedAveragesReportFileReq.js new file mode 100644 index 00000000..f8da6041 --- /dev/null +++ b/workers/loc.api/data-validator/schemas/getWeightedAveragesReportFileReq.js @@ -0,0 +1,43 @@ +'use strict' + +const SCHEMA_IDS = require('../schema.ids') + +module.exports = { + $id: SCHEMA_IDS.GET_WEIGHTED_AVERAGES_REPORT_FILE_REQ, + type: 'object', + additionalProperties: false, + required: ['symbol'], + properties: { + start: { + $ref: 'defs#/definitions/start' + }, + end: { + $ref: 'defs#/definitions/end' + }, + symbol: { + $ref: 'defs#/definitions/symbolWithMaxItem' + }, + + email: { + $ref: 'defs#/definitions/email' + }, + milliseconds: { + $ref: 'defs#/definitions/milliseconds' + }, + dateFormat: { + $ref: 'defs#/definitions/dateFormat' + }, + language: { + $ref: 'defs#/definitions/language' + }, + timezone: { + $ref: 'defs#/definitions/timezone' + }, + isPDFRequired: { + $ref: 'defs#/definitions/isPDFRequired' + }, + isSignatureRequired: { + $ref: 'defs#/definitions/isSignatureRequired' + } + } +} From 497b233b0560a855ca93b01e895466a3af61969f Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Mon, 14 Jul 2025 12:22:29 +0300 Subject: [PATCH 107/113] Use data validator with getWeightedAveragesReportFile --- .../loc.api/generate-report-file/report.file.job.data.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/workers/loc.api/generate-report-file/report.file.job.data.js b/workers/loc.api/generate-report-file/report.file.job.data.js index 2fab3b6b..466cfd5f 100644 --- a/workers/loc.api/generate-report-file/report.file.job.data.js +++ b/workers/loc.api/generate-report-file/report.file.job.data.js @@ -5,7 +5,6 @@ const { omit } = require('lib-js-util-base') const { decorateInjectable } = require('../di/utils') const { - checkParams, getReportFileArgs, checkTimeLimit, checkJobAndGetUserData, @@ -1124,7 +1123,11 @@ class ReportFileJobData { uId, uInfo ) { - checkParams(args, 'paramsSchemaForWeightedAveragesReportFile', ['symbol']) + this.dataValidator.validate( + args, + this.dataValidator.SCHEMA_IDS.GET_WEIGHTED_AVERAGES_REPORT_FILE_REQ, + { shouldParamsFieldBeChecked: true } + ) const { userId, From bf3ceff34c530165feb35a92b8020a015757b4e9 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Tue, 15 Jul 2025 11:54:57 +0300 Subject: [PATCH 108/113] Add helper to omit extra param fields --- .../generate-report-file/helpers/index.js | 9 +++++++++ ...it-extra-param-fields-for-report-export.js | 20 +++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 workers/loc.api/generate-report-file/helpers/index.js create mode 100644 workers/loc.api/generate-report-file/helpers/omit-extra-param-fields-for-report-export.js diff --git a/workers/loc.api/generate-report-file/helpers/index.js b/workers/loc.api/generate-report-file/helpers/index.js new file mode 100644 index 00000000..0e86f1b7 --- /dev/null +++ b/workers/loc.api/generate-report-file/helpers/index.js @@ -0,0 +1,9 @@ +'use strict' + +const omitExtraParamFieldsForReportExport = require( + './omit-extra-param-fields-for-report-export' +) + +module.exports = { + omitExtraParamFieldsForReportExport +} diff --git a/workers/loc.api/generate-report-file/helpers/omit-extra-param-fields-for-report-export.js b/workers/loc.api/generate-report-file/helpers/omit-extra-param-fields-for-report-export.js new file mode 100644 index 00000000..a33be354 --- /dev/null +++ b/workers/loc.api/generate-report-file/helpers/omit-extra-param-fields-for-report-export.js @@ -0,0 +1,20 @@ +'use strict' + +const { omit } = require('lib-js-util-base') + +module.exports = (params) => { + return omit(params ?? {}, [ + 'dateFormat', + 'milliseconds', + 'language', + 'isPDFRequired', + 'method', + 'timezone', + 'email', + 'isSignatureRequired', + 'isDeposits', + 'isWithdrawals', + 'isTradingPair', + 'isBaseNameInName' + ]) +} From a59a9982904f40e3cc5bb58be76b609a6ba78525 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Tue, 15 Jul 2025 11:55:51 +0300 Subject: [PATCH 109/113] Use omitting extra param fields helper --- .../weighted-averages-report-csv-writer.js | 17 ++++------------ .../queue/write-data-to-stream/index.js | 20 +++++-------------- 2 files changed, 9 insertions(+), 28 deletions(-) diff --git a/workers/loc.api/generate-report-file/csv-writer/weighted-averages-report-csv-writer.js b/workers/loc.api/generate-report-file/csv-writer/weighted-averages-report-csv-writer.js index bab662e9..f5411b4c 100644 --- a/workers/loc.api/generate-report-file/csv-writer/weighted-averages-report-csv-writer.js +++ b/workers/loc.api/generate-report-file/csv-writer/weighted-averages-report-csv-writer.js @@ -1,11 +1,11 @@ 'use strict' -const { omit } = require('lib-js-util-base') - const { write } = require('../../queue/write-data-to-stream/helpers') - +const { + omitExtraParamFieldsForReportExport +} = require('../helpers') const { streamWriter } = require('./helpers') module.exports = ( @@ -44,16 +44,7 @@ module.exports = ( getData: rService[name].bind(rService), args: { ...args, - params: omit(params, [ - 'dateFormat', - 'milliseconds', - 'language', - 'isPDFRequired', - 'method', - 'timezone', - 'email', - 'isSignatureRequired' - ]) + params: omitExtraParamFieldsForReportExport(params) }, callerName: 'CSV_WRITER', shouldNotInterrupt: true diff --git a/workers/loc.api/queue/write-data-to-stream/index.js b/workers/loc.api/queue/write-data-to-stream/index.js index 584a38e1..252c84c1 100644 --- a/workers/loc.api/queue/write-data-to-stream/index.js +++ b/workers/loc.api/queue/write-data-to-stream/index.js @@ -1,7 +1,10 @@ 'use strict' -const { cloneDeep, omit } = require('lib-js-util-base') +const { cloneDeep } = require('lib-js-util-base') +const { + omitExtraParamFieldsForReportExport +} = require('../../generate-report-file/helpers') const { writeMessageToStream, setDefaultParams, @@ -35,20 +38,7 @@ module.exports = ( const _args = { auth: { ...jobData?.args?.auth }, - params: omit(jobData?.args?.params ?? {}, [ - 'dateFormat', - 'milliseconds', - 'language', - 'isPDFRequired', - 'method', - 'timezone', - 'email', - 'isSignatureRequired', - 'isDeposits', - 'isWithdrawals', - 'isTradingPair', - 'isBaseNameInName' - ]) + params: omitExtraParamFieldsForReportExport(jobData?.args?.params) } setDefaultParams(_args, method) From b77c5d7c17f596259754492e78c738cb4a17e567 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Wed, 16 Jul 2025 12:09:38 +0300 Subject: [PATCH 110/113] Add sort to getPublicTrades req param schema --- workers/loc.api/data-validator/schemas/getPublicTradesReq.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/workers/loc.api/data-validator/schemas/getPublicTradesReq.js b/workers/loc.api/data-validator/schemas/getPublicTradesReq.js index 3d82793c..58002e18 100644 --- a/workers/loc.api/data-validator/schemas/getPublicTradesReq.js +++ b/workers/loc.api/data-validator/schemas/getPublicTradesReq.js @@ -20,6 +20,9 @@ module.exports = { symbol: { $ref: 'defs#/definitions/symbolWithMaxItem' }, + sort: { + $ref: 'defs#/definitions/sort' + }, filter: { $ref: 'defs#/definitions/filter' }, From 8118c4880d787236912b8b9befd5c8bc1195415c Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Wed, 16 Jul 2025 12:09:57 +0300 Subject: [PATCH 111/113] Add sort to getPublicTradesFile req param schema --- .../loc.api/data-validator/schemas/getPublicTradesFileReq.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/workers/loc.api/data-validator/schemas/getPublicTradesFileReq.js b/workers/loc.api/data-validator/schemas/getPublicTradesFileReq.js index 3156f4b5..66398c3b 100644 --- a/workers/loc.api/data-validator/schemas/getPublicTradesFileReq.js +++ b/workers/loc.api/data-validator/schemas/getPublicTradesFileReq.js @@ -20,6 +20,9 @@ module.exports = { symbol: { $ref: 'defs#/definitions/symbolWithMaxItem' }, + sort: { + $ref: 'defs#/definitions/sort' + }, filter: { $ref: 'defs#/definitions/filter' }, From 5ba8cc2a614e5960ff2e8c12e2217bce928b9599 Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Fri, 18 Jul 2025 10:21:21 +0300 Subject: [PATCH 112/113] Prevent request retry to bfx api if params validation error --- workers/loc.api/helpers/get-data-from-api/index.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/workers/loc.api/helpers/get-data-from-api/index.js b/workers/loc.api/helpers/get-data-from-api/index.js index 61ce7c87..d75a2539 100644 --- a/workers/loc.api/helpers/get-data-from-api/index.js +++ b/workers/loc.api/helpers/get-data-from-api/index.js @@ -10,6 +10,9 @@ const { isENetError, isAuthError } = require('../api-errors-testers') +const { + ArgsParamsError +} = require('../../errors') const { calcBackOffAndJitteredDelay, isInterrupted: _isInterrupted, @@ -76,6 +79,10 @@ module.exports = ( break } catch (err) { + if (err instanceof ArgsParamsError) { + throw err + } + if (isUserIsNotMerchantError(err)) { return getEmptyArrRes() } From ed6def1d969c6a65aaa6b76fe7c94bdbc93a56aa Mon Sep 17 00:00:00 2001 From: Vladimir Voronkov Date: Mon, 21 Jul 2025 11:22:21 +0300 Subject: [PATCH 113/113] Fix limit param passing --- workers/loc.api/helpers/limit-param.helpers.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workers/loc.api/helpers/limit-param.helpers.js b/workers/loc.api/helpers/limit-param.helpers.js index 49424052..a540b9b5 100644 --- a/workers/loc.api/helpers/limit-param.helpers.js +++ b/workers/loc.api/helpers/limit-param.helpers.js @@ -73,7 +73,7 @@ const getReportFileArgs = (args, method, extraParams = {}) => { return reportFileArgs } - reportFileArgs.limit = getMethodLimit({ isMax: true }, method) + reportFileArgs.params.limit = getMethodLimit({ isMax: true }, method) return reportFileArgs }