eservices-back-core 2.1.67 → 2.1.68
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/classes/client-error-generator.d.ts +20 -0
- package/dist/classes/client-error-generator.d.ts.map +1 -0
- package/dist/classes/client-error-generator.js +40 -0
- package/dist/classes/client-error-generator.js.map +1 -0
- package/dist/controller/close-api/view-controller.d.ts.map +1 -1
- package/dist/controller/close-api/view-controller.js +2 -2
- package/dist/controller/close-api/view-controller.js.map +1 -1
- package/dist/errors/api-error.d.ts +32 -18
- package/dist/errors/api-error.d.ts.map +1 -1
- package/dist/errors/api-error.js +42 -41
- package/dist/errors/api-error.js.map +1 -1
- package/dist/errors/app-server-error.d.ts +29 -0
- package/dist/errors/app-server-error.d.ts.map +1 -0
- package/dist/errors/app-server-error.js +43 -0
- package/dist/errors/app-server-error.js.map +1 -0
- package/dist/errors/auth-error.d.ts +8 -1
- package/dist/errors/auth-error.d.ts.map +1 -1
- package/dist/errors/auth-error.js +15 -1
- package/dist/errors/auth-error.js.map +1 -1
- package/dist/errors/core-error.d.ts +7 -41
- package/dist/errors/core-error.d.ts.map +1 -1
- package/dist/errors/core-error.js +10 -89
- package/dist/errors/core-error.js.map +1 -1
- package/dist/errors/metadata-error.d.ts +23 -3
- package/dist/errors/metadata-error.d.ts.map +1 -1
- package/dist/errors/metadata-error.js +30 -5
- package/dist/errors/metadata-error.js.map +1 -1
- package/dist/logger/use-logger.js +2 -2
- package/dist/logger/use-logger.js.map +1 -1
- package/dist/middleware/error-middleware.d.ts.map +1 -1
- package/dist/middleware/error-middleware.js +10 -6
- package/dist/middleware/error-middleware.js.map +1 -1
- package/dist/middleware/user-middleware.js +2 -2
- package/dist/middleware/user-middleware.js.map +1 -1
- package/dist/services/data-service.js +2 -2
- package/dist/services/data-service.js.map +1 -1
- package/dist/services/list-setting-service.js +3 -3
- package/dist/services/list-setting-service.js.map +1 -1
- package/dist/services/metadata-service.js +1 -1
- package/dist/services/metadata-service.js.map +1 -1
- package/dist/socket/connect-socket.d.ts.map +1 -1
- package/dist/socket/connect-socket.js +8 -11
- package/dist/socket/connect-socket.js.map +1 -1
- package/dist/socket/events/entity_create.d.ts.map +1 -1
- package/dist/socket/events/entity_create.js +1 -1
- package/dist/socket/events/entity_create.js.map +1 -1
- package/dist/socket/events/entity_delete.d.ts.map +1 -1
- package/dist/socket/events/entity_delete.js +1 -1
- package/dist/socket/events/entity_delete.js.map +1 -1
- package/dist/socket/events/entity_read.js +1 -1
- package/dist/socket/events/entity_read.js.map +1 -1
- package/dist/socket/events/entity_update.d.ts.map +1 -1
- package/dist/socket/events/entity_update.js +1 -1
- package/dist/socket/events/entity_update.js.map +1 -1
- package/dist/socket/events/usage-context_read.d.ts.map +1 -1
- package/dist/socket/events/usage-context_read.js +1 -1
- package/dist/socket/events/usage-context_read.js.map +1 -1
- package/dist/socket/events/wizard.js +5 -5
- package/dist/socket/events/wizard.js.map +1 -1
- package/dist/store/metadata-store.d.ts.map +1 -1
- package/dist/store/metadata-store.js +1 -2
- package/dist/store/metadata-store.js.map +1 -1
- package/dist/templates/error.html +3 -0
- package/dist/utils/get-usage-context.js +1 -1
- package/dist/utils/get-usage-context.js.map +1 -1
- package/dist/utils/nodeFetch.js +10 -9
- package/dist/utils/nodeFetch.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Клиентская ошибка. Используется для скрытия полезных данных от пользователя.
|
|
3
|
+
*/
|
|
4
|
+
export default class ClientErrorGenerator {
|
|
5
|
+
message: string;
|
|
6
|
+
traceId: string;
|
|
7
|
+
statusCode?: number;
|
|
8
|
+
details: unknown;
|
|
9
|
+
constructor(params: IClientErrorParams);
|
|
10
|
+
static apply(error: unknown): ClientErrorGenerator;
|
|
11
|
+
private static parseCoreError;
|
|
12
|
+
}
|
|
13
|
+
interface IClientErrorParams {
|
|
14
|
+
message: string;
|
|
15
|
+
details?: unknown;
|
|
16
|
+
statusCode?: number;
|
|
17
|
+
traceId?: string;
|
|
18
|
+
}
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=client-error-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-error-generator.d.ts","sourceRoot":"","sources":["../../src/classes/client-error-generator.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,oBAAoB;IAEjC,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,OAAO,CAAA;gBAEX,MAAM,EAAE,kBAAkB;IAOtC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO;IAc3B,OAAO,CAAC,MAAM,CAAC,cAAc;CAO7B;AAED,UAAU,kBAAkB;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const api_error_1 = __importDefault(require("../errors/api-error"));
|
|
7
|
+
const core_error_1 = __importDefault(require("../errors/core-error"));
|
|
8
|
+
const constants_1 = require("../constants");
|
|
9
|
+
/**
|
|
10
|
+
* @description Клиентская ошибка. Используется для скрытия полезных данных от пользователя.
|
|
11
|
+
*/
|
|
12
|
+
class ClientErrorGenerator {
|
|
13
|
+
constructor(params) {
|
|
14
|
+
this.message = params.message;
|
|
15
|
+
this.traceId = params.traceId;
|
|
16
|
+
this.statusCode = params.statusCode;
|
|
17
|
+
this.details = params.details;
|
|
18
|
+
}
|
|
19
|
+
static apply(error) {
|
|
20
|
+
if (error instanceof api_error_1.default) {
|
|
21
|
+
const clientError = ClientErrorGenerator.parseCoreError(error);
|
|
22
|
+
clientError.statusCode = error.statusCode;
|
|
23
|
+
return clientError;
|
|
24
|
+
}
|
|
25
|
+
if (error instanceof core_error_1.default)
|
|
26
|
+
return ClientErrorGenerator.parseCoreError(error);
|
|
27
|
+
return new ClientErrorGenerator({
|
|
28
|
+
message: constants_1.DEFAULT_ERROR_MESSAGE
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
static parseCoreError(error) {
|
|
32
|
+
return new ClientErrorGenerator({
|
|
33
|
+
message: constants_1.DEFAULT_ERROR_MESSAGE,
|
|
34
|
+
traceId: error.traceId,
|
|
35
|
+
details: error.details
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.default = ClientErrorGenerator;
|
|
40
|
+
//# sourceMappingURL=client-error-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-error-generator.js","sourceRoot":"","sources":["../../src/classes/client-error-generator.ts"],"names":[],"mappings":";;;;;AAAA,oEAA2C;AAC3C,sEAA6C;AAC7C,4CAAmD;AAEnD;;GAEG;AACH,MAAqB,oBAAoB;IAOxC,YAAY,MAA0B;QACrC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,KAAc;QAC1B,IAAI,KAAK,YAAY,mBAAQ,EAAE,CAAC;YAC/B,MAAM,WAAW,GAAG,oBAAoB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAC/D,WAAW,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;YAC1C,OAAO,WAAW,CAAC;QACpB,CAAC;QAED,IAAI,KAAK,YAAY,oBAAS;YAAE,OAAO,oBAAoB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;QAEjF,OAAO,IAAI,oBAAoB,CAAC;YAC/B,OAAO,EAAE,iCAAqB;SAC9B,CAAC,CAAA;IACH,CAAC;IAEO,MAAM,CAAC,cAAc,CAAC,KAAgB;QAC7C,OAAO,IAAI,oBAAoB,CAAC;YAC/B,OAAO,EAAE,iCAAqB;YAC9B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,OAAO,EAAE,KAAK,CAAC,OAAO;SACtB,CAAC,CAAA;IACH,CAAC;CACD;AAnCD,uCAmCC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view-controller.d.ts","sourceRoot":"","sources":["../../../src/controller/close-api/view-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,QAAQ,EAAC,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"view-controller.d.ts","sourceRoot":"","sources":["../../../src/controller/close-api/view-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,QAAQ,EAAC,MAAM,SAAS,CAAC;AAM1C,MAAM,CAAC,OAAO,OAAO,cAAc;WAErB,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,KAAA;WAStD,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,KAAA;CAiB9D"}
|
|
@@ -34,10 +34,10 @@ class ViewController {
|
|
|
34
34
|
try {
|
|
35
35
|
const { entity, mark } = req.query;
|
|
36
36
|
if (!entity && !mark)
|
|
37
|
-
throw api_error_1.default.
|
|
37
|
+
throw api_error_1.default.IncorrectEventParams("get-list-settings", req.query);
|
|
38
38
|
const settings = list_store_1.default.get(String(entity), typeof mark === 'string' ? mark : null);
|
|
39
39
|
if (!settings)
|
|
40
|
-
throw api_error_1.default.
|
|
40
|
+
throw api_error_1.default.ListConfigurationNotFound(entity, mark);
|
|
41
41
|
res.json(settings);
|
|
42
42
|
}
|
|
43
43
|
catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view-controller.js","sourceRoot":"","sources":["../../../src/controller/close-api/view-controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"view-controller.js","sourceRoot":"","sources":["../../../src/controller/close-api/view-controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,uEAA8C;AAC9C,sFAA4D;AAC5D,0DAAkC;AAClC,wEAA+C;AAE/C,MAAqB,cAAc;IAElC,MAAM,CAAO,oBAAoB,CAAC,GAAY,EAAE,GAAa,EAAE,IAAI;;;YAClE,IAAI,CAAC;gBACJ,MAAM,OAAO,GAAG,IAAA,2BAAe,EAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACrD,GAAG,CAAC,IAAI,CAAC,CAAA,MAAA,MAAA,gBAAM,CAAC,QAAQ,CAAC,aAAa,0CAAE,kBAAkB,0CAAG,OAAO,CAAC,KAAI,EAAE,CAAC,CAAC;YAC9E,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,IAAI,CAAC,CAAC,CAAC,CAAC;YACT,CAAC;;KACD;IAED,MAAM,CAAO,eAAe,CAAC,GAAY,EAAE,GAAa,EAAE,IAAI;;YAC7D,IAAI,CAAC;gBACJ,MAAM,EAAC,MAAM,EAAE,IAAI,EAAC,GAAG,GAAG,CAAC,KAAK,CAAA;gBAEhC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI;oBAAE,MAAM,mBAAQ,CAAC,oBAAoB,CAAC,mBAAmB,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;gBAE1F,MAAM,QAAQ,GAAG,oBAAS,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAEvF,IAAI,CAAC,QAAQ;oBAAE,MAAM,mBAAQ,CAAC,yBAAyB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAEtE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YAEnB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,IAAI,CAAC,CAAC,CAAC,CAAC;YACT,CAAC;QACF,CAAC;KAAA;CAED;AA5BD,iCA4BC"}
|
|
@@ -1,23 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
details: any;
|
|
4
|
-
constructor(msg: string, status?: number, details?: string[]);
|
|
5
|
-
static AccessDenied(): ApiError;
|
|
6
|
-
static UnauthorizedAccess(accessTo?: string): ApiError;
|
|
7
|
-
static RouteNotFounded(): ApiError;
|
|
8
|
-
static DefaultUsageContextNotFound(): ApiError;
|
|
1
|
+
import CoreError from "./core-error";
|
|
2
|
+
export default class ApiError extends CoreError {
|
|
9
3
|
/**
|
|
10
|
-
* @
|
|
11
|
-
*
|
|
12
|
-
* ибку доступа. Например, в случае, получения объекта по идентификатору - мы можем его не найти.
|
|
4
|
+
* @description Поскольку ошибка относится к API, то здесь возможно задать код ошибки. Для того, чтобы на
|
|
5
|
+
* frontend лучше понимать, в чем ошибка.
|
|
13
6
|
*/
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
static
|
|
17
|
-
static UsageContextNotFounded(url: string): ApiError;
|
|
18
|
-
static UndefinedPrimaryKey(): ApiError;
|
|
19
|
-
static UndefinedEntityOrMarkForListSettings(): ApiError;
|
|
20
|
-
static ListSettingsNotFound(entity: any, mark: any): ApiError;
|
|
7
|
+
statusCode: number;
|
|
8
|
+
constructor(msg: string, statusCode?: number, details?: string[]);
|
|
9
|
+
static UnauthorizedAccess(accessTo?: string): ApiError;
|
|
21
10
|
static RabbitMessageIncorrect(message: any): ApiError;
|
|
22
11
|
static RabbitMessagePayloadIncorrect(payload: any): ApiError;
|
|
23
12
|
/**
|
|
@@ -34,5 +23,30 @@ export default class ApiError extends Error {
|
|
|
34
23
|
* @param eventName Название события, которое не было найдено.
|
|
35
24
|
*/
|
|
36
25
|
static UnknownEvent(eventName: string): ApiError;
|
|
26
|
+
/**
|
|
27
|
+
* @description Ошибка связана со случаем, когда мы используем usage-context(при чтении его, изменении данных и т.д.),
|
|
28
|
+
* но usage-context связка не была определена в конфигурации.
|
|
29
|
+
* @param url {String} путь, который передаётся в качестве текущего.
|
|
30
|
+
*/
|
|
31
|
+
static UsageContextBindingIsNotRegistered(url?: string): ApiError;
|
|
32
|
+
/**
|
|
33
|
+
* @new
|
|
34
|
+
* @description Ошибка используется в случе, если объект не найден в системе, или при запросе объекта мы получаем
|
|
35
|
+
* ошибку доступа. Например, в случае, получения объекта по идентификатору - мы можем его не найти.
|
|
36
|
+
*/
|
|
37
|
+
static ItemNotFoundOrNotAccessible(entityName: string, primaryKey: string | number): ApiError;
|
|
38
|
+
/**
|
|
39
|
+
* @description Ошибка для случая, когда первичный ключ не является валидным.
|
|
40
|
+
* @param primaryKey Полученный первичный ключ
|
|
41
|
+
* @constructor
|
|
42
|
+
*/
|
|
43
|
+
static InvalidPrimaryKey(primaryKey: unknown): ApiError;
|
|
44
|
+
/**
|
|
45
|
+
* @description Ошибка для случая, когда не удалось найти конфигурацию списка для переданной сущности и метки
|
|
46
|
+
* @param entity
|
|
47
|
+
* @param mark
|
|
48
|
+
* @constructor
|
|
49
|
+
*/
|
|
50
|
+
static ListConfigurationNotFound(entity: any, mark: any): ApiError;
|
|
37
51
|
}
|
|
38
52
|
//# sourceMappingURL=api-error.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-error.d.ts","sourceRoot":"","sources":["../../src/errors/api-error.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"api-error.d.ts","sourceRoot":"","sources":["../../src/errors/api-error.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,SAAS;IAE9C;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAA;gBAEN,GAAG,EAAE,MAAM,EAAE,UAAU,GAAE,MAAY,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE;IAQrE,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,MAAM;IAO3C,MAAM,CAAC,sBAAsB,CAAC,OAAO,KAAA;IAGrC,MAAM,CAAC,6BAA6B,CAAC,OAAO,KAAA;IAI5C;;;;;;OAMG;IACH,MAAM,CAAC,oBAAoB,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO;IAIhE;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM;IAIrC;;;;OAIG;IACH,MAAM,CAAC,kCAAkC,CAAC,GAAG,CAAC,EAAE,MAAM;IAItD;;;;OAIG;IACH,MAAM,CAAC,2BAA2B,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;IAIlF;;;;OAIG;IACH,MAAM,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO;IAI5C;;;;;OAKG;IACH,MAAM,CAAC,yBAAyB,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG;CAIvD"}
|
package/dist/errors/api-error.js
CHANGED
|
@@ -1,54 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
this.
|
|
8
|
-
}
|
|
9
|
-
static AccessDenied() {
|
|
10
|
-
return new ApiError(`The server understood the request, but refuses to authorize it. This page may require you to log in or provide additional credentials. Additionally, access to the requested resource may be prohibited for other reasons. Please contact the website administrator to resolve this issue.`, 403);
|
|
6
|
+
const core_error_1 = __importDefault(require("./core-error"));
|
|
7
|
+
class ApiError extends core_error_1.default {
|
|
8
|
+
constructor(msg, statusCode = 500, details) {
|
|
9
|
+
super(msg, details);
|
|
10
|
+
this.statusCode = statusCode;
|
|
11
11
|
}
|
|
12
12
|
static UnauthorizedAccess(accessTo) {
|
|
13
13
|
return new ApiError(`Unauthorized access(${accessTo})`, 500);
|
|
14
14
|
}
|
|
15
|
-
static RouteNotFounded() {
|
|
16
|
-
return new ApiError("Route or File is not found", 404);
|
|
17
|
-
}
|
|
18
|
-
static DefaultUsageContextNotFound() {
|
|
19
|
-
return new ApiError(`Default usage context is not provided`, 500);
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* @new
|
|
23
|
-
* @description Ошибка используется в случе, если объект не найден в системе, или при запросе объекта мы получаем ош
|
|
24
|
-
* ибку доступа. Например, в случае, получения объекта по идентификатору - мы можем его не найти.
|
|
25
|
-
*/
|
|
26
|
-
static ItemNotFoundOrNotAccessible() {
|
|
27
|
-
return new ApiError(`Item either is not found or not accessible`, 404);
|
|
28
|
-
}
|
|
29
|
-
static NotFound(data) {
|
|
30
|
-
return new ApiError('Object not found', 404);
|
|
31
|
-
}
|
|
32
|
-
static InvalidAccess(message = 'It looks like we have some problems with authentication, you may try to refresh page or relogin') {
|
|
33
|
-
return new ApiError(message, 401);
|
|
34
|
-
}
|
|
35
|
-
static UsageContextNotFounded(url) {
|
|
36
|
-
return new ApiError(`Metadata can't be found for url(${url}).`, 500);
|
|
37
|
-
}
|
|
38
|
-
static UndefinedPrimaryKey() {
|
|
39
|
-
return new ApiError('Required field not specified: PrimaryKey');
|
|
40
|
-
}
|
|
41
|
-
static UndefinedEntityOrMarkForListSettings() {
|
|
42
|
-
return new ApiError('Please provide entity name or mark.');
|
|
43
|
-
}
|
|
44
|
-
static ListSettingsNotFound(entity, mark) {
|
|
45
|
-
return new ApiError(`Can't find list settings for entity ${entity} and mark ${mark}`);
|
|
46
|
-
}
|
|
47
15
|
static RabbitMessageIncorrect(message) {
|
|
48
16
|
return new ApiError(`Is not correct Rabbit Message: ${message}`);
|
|
49
17
|
}
|
|
50
18
|
static RabbitMessagePayloadIncorrect(payload) {
|
|
51
|
-
return new ApiError(`Is not correct Rabbit Message Payload`, payload);
|
|
19
|
+
return new ApiError(`Is not correct Rabbit Message Payload`, 500, payload);
|
|
52
20
|
}
|
|
53
21
|
/**
|
|
54
22
|
* @description Ошибка предназначенная для невалидных параметров переданных в событие(socket-event). Является
|
|
@@ -68,6 +36,39 @@ class ApiError extends Error {
|
|
|
68
36
|
static UnknownEvent(eventName) {
|
|
69
37
|
return new ApiError(`Event with name "${eventName}" not registered in socket-event-store.`, 404);
|
|
70
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* @description Ошибка связана со случаем, когда мы используем usage-context(при чтении его, изменении данных и т.д.),
|
|
41
|
+
* но usage-context связка не была определена в конфигурации.
|
|
42
|
+
* @param url {String} путь, который передаётся в качестве текущего.
|
|
43
|
+
*/
|
|
44
|
+
static UsageContextBindingIsNotRegistered(url) {
|
|
45
|
+
return new ApiError(`Usage-Context not binding with URL/Path ${url} inside website configurations.`);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* @new
|
|
49
|
+
* @description Ошибка используется в случе, если объект не найден в системе, или при запросе объекта мы получаем
|
|
50
|
+
* ошибку доступа. Например, в случае, получения объекта по идентификатору - мы можем его не найти.
|
|
51
|
+
*/
|
|
52
|
+
static ItemNotFoundOrNotAccessible(entityName, primaryKey) {
|
|
53
|
+
return new ApiError(`The entity "${entityName}" with pk "${primaryKey}" could not be found or cannot be accessed.`, 404);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* @description Ошибка для случая, когда первичный ключ не является валидным.
|
|
57
|
+
* @param primaryKey Полученный первичный ключ
|
|
58
|
+
* @constructor
|
|
59
|
+
*/
|
|
60
|
+
static InvalidPrimaryKey(primaryKey) {
|
|
61
|
+
return new ApiError('Required field not specified: PrimaryKey', 400, [typeof primaryKey]);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* @description Ошибка для случая, когда не удалось найти конфигурацию списка для переданной сущности и метки
|
|
65
|
+
* @param entity
|
|
66
|
+
* @param mark
|
|
67
|
+
* @constructor
|
|
68
|
+
*/
|
|
69
|
+
static ListConfigurationNotFound(entity, mark) {
|
|
70
|
+
return new ApiError(`Can't find list settings for entity ${entity} and mark ${mark}.`);
|
|
71
|
+
}
|
|
71
72
|
}
|
|
72
73
|
exports.default = ApiError;
|
|
73
74
|
//# sourceMappingURL=api-error.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-error.js","sourceRoot":"","sources":["../../src/errors/api-error.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"api-error.js","sourceRoot":"","sources":["../../src/errors/api-error.ts"],"names":[],"mappings":";;;;;AAAA,8DAAqC;AAErC,MAAqB,QAAS,SAAQ,oBAAS;IAQ9C,YAAY,GAAW,EAAE,aAAqB,GAAG,EAAE,OAAkB;QACpE,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAEpB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC9B,CAAC;IAID,MAAM,CAAC,kBAAkB,CAAC,QAAiB;QAC1C,OAAO,IAAI,QAAQ,CAAC,uBAAuB,QAAQ,GAAG,EAAE,GAAG,CAAC,CAAC;IAC9D,CAAC;IAKD,MAAM,CAAC,sBAAsB,CAAC,OAAO;QACpC,OAAO,IAAI,QAAQ,CAAC,kCAAkC,OAAO,EAAE,CAAC,CAAA;IACjE,CAAC;IACD,MAAM,CAAC,6BAA6B,CAAC,OAAO;QAC3C,OAAO,IAAI,QAAQ,CAAC,uCAAuC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAC5E,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,oBAAoB,CAAC,SAAkB,EAAE,MAAgB;QAC/D,OAAO,IAAI,QAAQ,CAAC,wDAAwD,SAAS,cAAc,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACnI,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,SAAiB;QACpC,OAAO,IAAI,QAAQ,CAAC,oBAAoB,SAAS,yCAAyC,EAAE,GAAG,CAAC,CAAA;IACjG,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,kCAAkC,CAAC,GAAY;QACrD,OAAO,IAAI,QAAQ,CAAC,2CAA2C,GAAG,iCAAiC,CAAC,CAAA;IACrG,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,2BAA2B,CAAC,UAAkB,EAAE,UAA2B;QACjF,OAAO,IAAI,QAAQ,CAAC,eAAe,UAAU,cAAc,UAAU,6CAA6C,EAAE,GAAG,CAAC,CAAC;IAC1H,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,iBAAiB,CAAC,UAAmB;QAC3C,OAAO,IAAI,QAAQ,CAAC,0CAA0C,EAAE,GAAG,EAAE,CAAC,OAAO,UAAU,CAAC,CAAC,CAAA;IAC1F,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,yBAAyB,CAAC,MAAW,EAAE,IAAS;QACtD,OAAO,IAAI,QAAQ,CAAC,uCAAuC,MAAM,aAAa,IAAI,GAAG,CAAC,CAAC;IACxF,CAAC;CAED;AAvFD,2BAuFC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import CoreError from "./core-error";
|
|
2
|
+
/**
|
|
3
|
+
* @description Используется только для обработки ошибок при запросе на AppServer.
|
|
4
|
+
*/
|
|
5
|
+
export default class AppServerError extends CoreError {
|
|
6
|
+
/**
|
|
7
|
+
* @description Ошибка для случая, когда response не является валидным при обработке ответа с AppServer.
|
|
8
|
+
* @constructor
|
|
9
|
+
*/
|
|
10
|
+
static InvalidResponse(): AppServerError;
|
|
11
|
+
/**
|
|
12
|
+
* @description Ошибка для случая, когда не удалось получить значение content-type. Вероятно всего, метод на AppServer
|
|
13
|
+
* не правильно сконфигурирован.
|
|
14
|
+
* @constructor
|
|
15
|
+
*/
|
|
16
|
+
static InvalidContentType(): AppServerError;
|
|
17
|
+
/**
|
|
18
|
+
* @description Ошибка для случая, когда для полученного Content-Type не удалосьн айти обработчика.
|
|
19
|
+
* @param contentType
|
|
20
|
+
* @constructor
|
|
21
|
+
*/
|
|
22
|
+
static UnknownContentType(contentType: string): AppServerError;
|
|
23
|
+
/**
|
|
24
|
+
* @description Ошибка используется, когда запрос завершился с ошибкой.
|
|
25
|
+
* @constructor
|
|
26
|
+
*/
|
|
27
|
+
static FailedRequest(appServerError: unknown, details?: unknown): AppServerError;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=app-server-error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-server-error.d.ts","sourceRoot":"","sources":["../../src/errors/app-server-error.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,SAAS;IAEpD;;;OAGG;IACH,MAAM,CAAC,eAAe;IAItB;;;;OAIG;IACH,MAAM,CAAC,kBAAkB;IAIzB;;;;OAIG;IACH,MAAM,CAAC,kBAAkB,CAAC,WAAW,EAAE,MAAM;IAI7C;;;OAGG;IACH,MAAM,CAAC,aAAa,CAAC,cAAc,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO;CAI/D"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const core_error_1 = __importDefault(require("./core-error"));
|
|
7
|
+
/**
|
|
8
|
+
* @description Используется только для обработки ошибок при запросе на AppServer.
|
|
9
|
+
*/
|
|
10
|
+
class AppServerError extends core_error_1.default {
|
|
11
|
+
/**
|
|
12
|
+
* @description Ошибка для случая, когда response не является валидным при обработке ответа с AppServer.
|
|
13
|
+
* @constructor
|
|
14
|
+
*/
|
|
15
|
+
static InvalidResponse() {
|
|
16
|
+
return new AppServerError("The response was not received in a valid format, or the web server did not learn to process it.", []);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* @description Ошибка для случая, когда не удалось получить значение content-type. Вероятно всего, метод на AppServer
|
|
20
|
+
* не правильно сконфигурирован.
|
|
21
|
+
* @constructor
|
|
22
|
+
*/
|
|
23
|
+
static InvalidContentType() {
|
|
24
|
+
return new AppServerError("Failed to retrieve Content-Type information", []);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* @description Ошибка для случая, когда для полученного Content-Type не удалосьн айти обработчика.
|
|
28
|
+
* @param contentType
|
|
29
|
+
* @constructor
|
|
30
|
+
*/
|
|
31
|
+
static UnknownContentType(contentType) {
|
|
32
|
+
return new AppServerError(`Failed to process the received content-type "${contentType}"`, []);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* @description Ошибка используется, когда запрос завершился с ошибкой.
|
|
36
|
+
* @constructor
|
|
37
|
+
*/
|
|
38
|
+
static FailedRequest(appServerError, details) {
|
|
39
|
+
return new AppServerError("AppServer successfully processed the request, but returned an error.", [appServerError, details]);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.default = AppServerError;
|
|
43
|
+
//# sourceMappingURL=app-server-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-server-error.js","sourceRoot":"","sources":["../../src/errors/app-server-error.ts"],"names":[],"mappings":";;;;;AAAA,8DAAqC;AAErC;;GAEG;AACH,MAAqB,cAAe,SAAQ,oBAAS;IAEpD;;;OAGG;IACH,MAAM,CAAC,eAAe;QACrB,OAAO,IAAI,cAAc,CAAC,iGAAiG,EAAE,EAAE,CAAC,CAAC;IAClI,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,kBAAkB;QACxB,OAAO,IAAI,cAAc,CAAC,6CAA6C,EAAE,EAAE,CAAC,CAAA;IAC7E,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,kBAAkB,CAAC,WAAmB;QAC5C,OAAO,IAAI,cAAc,CAAC,gDAAgD,WAAW,GAAG,EAAE,EAAE,CAAC,CAAA;IAC9F,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,aAAa,CAAC,cAAuB,EAAE,OAAiB;QAC9D,OAAO,IAAI,cAAc,CAAC,sEAAsE,EAAE,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAA;IAC7H,CAAC;CAED;AApCD,iCAoCC"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
import CoreError from "./core-error";
|
|
2
|
+
export default class AuthError extends CoreError {
|
|
3
|
+
constructor(message: string);
|
|
2
4
|
/**
|
|
3
5
|
* @description WebServer Client Auth is not initialize.
|
|
4
6
|
*/
|
|
@@ -9,5 +11,10 @@ export default class AuthError extends Error {
|
|
|
9
11
|
*/
|
|
10
12
|
static UserIsNotAuthorize(): AuthError;
|
|
11
13
|
static RefreshNotAvailableOrSessionOutOfDate(): AuthError;
|
|
14
|
+
/**
|
|
15
|
+
* @description Ошибка связана с получением информации о пользователе по его externalId. Одна из причин является
|
|
16
|
+
* отсутствие пользователя: он не был добавлен в таблицу User.
|
|
17
|
+
*/
|
|
18
|
+
static UserNotFound(externalId: string): AuthError;
|
|
12
19
|
}
|
|
13
20
|
//# sourceMappingURL=auth-error.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-error.d.ts","sourceRoot":"","sources":["../../src/errors/auth-error.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,
|
|
1
|
+
{"version":3,"file":"auth-error.d.ts","sourceRoot":"","sources":["../../src/errors/auth-error.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,SAAS;gBAEnC,OAAO,EAAE,MAAM;IAI3B;;OAEG;IACH,MAAM,CAAC,4BAA4B;IAInC;;;OAGG;IACH,MAAM,CAAC,kBAAkB;IAIzB,MAAM,CAAC,qCAAqC;IAI5C;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM;CAGtC"}
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
6
|
+
const core_error_1 = __importDefault(require("./core-error"));
|
|
7
|
+
class AuthError extends core_error_1.default {
|
|
8
|
+
constructor(message) {
|
|
9
|
+
super(message, ["auth type of error."]);
|
|
10
|
+
}
|
|
4
11
|
/**
|
|
5
12
|
* @description WebServer Client Auth is not initialize.
|
|
6
13
|
*/
|
|
@@ -17,6 +24,13 @@ class AuthError extends Error {
|
|
|
17
24
|
static RefreshNotAvailableOrSessionOutOfDate() {
|
|
18
25
|
return new AuthError('The refresh token is out of date or it not provided.');
|
|
19
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* @description Ошибка связана с получением информации о пользователе по его externalId. Одна из причин является
|
|
29
|
+
* отсутствие пользователя: он не был добавлен в таблицу User.
|
|
30
|
+
*/
|
|
31
|
+
static UserNotFound(externalId) {
|
|
32
|
+
return new AuthError(`Can't read user information. External id ${externalId}`);
|
|
33
|
+
}
|
|
20
34
|
}
|
|
21
35
|
exports.default = AuthError;
|
|
22
36
|
//# sourceMappingURL=auth-error.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-error.js","sourceRoot":"","sources":["../../src/errors/auth-error.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth-error.js","sourceRoot":"","sources":["../../src/errors/auth-error.ts"],"names":[],"mappings":";;;;;AAAA,8DAAqC;AAErC,MAAqB,SAAU,SAAQ,oBAAS;IAE/C,YAAY,OAAe;QAC1B,KAAK,CAAC,OAAO,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,4BAA4B;QAClC,OAAO,IAAI,SAAS,CAAC,wEAAwE,CAAC,CAAA;IAC/F,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,kBAAkB;QACxB,OAAO,IAAI,SAAS,CAAC,6GAA6G,CAAC,CAAC;IACrI,CAAC;IAED,MAAM,CAAC,qCAAqC;QAC3C,OAAO,IAAI,SAAS,CAAC,sDAAsD,CAAC,CAAC;IAC9E,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,UAAkB;QACrC,OAAO,IAAI,SAAS,CAAC,4CAA4C,UAAU,EAAE,CAAC,CAAC;IAChF,CAAC;CACD;AAhCD,4BAgCC"}
|
|
@@ -1,51 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Базовая ошибка для всего ядра приложения. Используется для скрытия генерации уникального идентификатора
|
|
3
|
+
* ошибки и скрытия лишней информации о пользователе.
|
|
4
|
+
*/
|
|
1
5
|
export default class CoreError extends Error {
|
|
6
|
+
traceId: string;
|
|
2
7
|
details: any;
|
|
3
|
-
/**
|
|
4
|
-
* @description Используется, если ошибка связана с http запросами.
|
|
5
|
-
*/
|
|
6
|
-
httpStatus?: number;
|
|
7
8
|
/**
|
|
8
9
|
* @description Класс используется для более удобной работы с ошибками. Добавляет полей displayMessage, которое в
|
|
9
10
|
* конечном итоге (в middleware) будет использоваться в качестве message;
|
|
10
|
-
* @param
|
|
11
|
-
* @param insideError {any} Внутренняя ошибка
|
|
11
|
+
* @param message {String} Текстовое сообщение ошибки
|
|
12
12
|
* @param details {any} Любая дополнительная информация
|
|
13
13
|
*/
|
|
14
|
-
constructor(
|
|
14
|
+
constructor(message: string, details: any);
|
|
15
15
|
toString(): string;
|
|
16
|
-
displayMessage: string;
|
|
17
|
-
/**
|
|
18
|
-
* @description Ошибка связана с получением информации о пользователе по его externalId. Одна из причин является
|
|
19
|
-
* отсутствие пользователя: он не был добавлен в таблицу User.
|
|
20
|
-
*/
|
|
21
|
-
static UserNotFound(externalId: string): CoreError;
|
|
22
|
-
/**
|
|
23
|
-
* @description Ошибка связана со случаем, когда мы используем usage-context(при чтении его, изменении данных и т.д.),
|
|
24
|
-
* но usage-context связка не была определена в конфигурации.
|
|
25
|
-
* @param url {String} путь, который передаётся в качестве текущего.
|
|
26
|
-
*/
|
|
27
|
-
static UsageContextBindingIsNotRegistered(url?: string): CoreError;
|
|
28
|
-
/**
|
|
29
|
-
* @description Ошибка используется в случае, когда с AppServer пришла не обработанное исключение. В таком случае
|
|
30
|
-
* сообщения имеет значение по умолчанию. Однако в деталях хранится информация переданная с AppServer.
|
|
31
|
-
* @param {string[]} details Любая возможная информация, которая будет добавлена в ошибку.
|
|
32
|
-
* @param {number} statusCode Код ответа от AppServer
|
|
33
|
-
* @constructor
|
|
34
|
-
*/
|
|
35
|
-
static AppServerError(details?: string[] | string, statusCode?: number): CoreError;
|
|
36
|
-
/**
|
|
37
|
-
* @description Обработка обычных http ошибок
|
|
38
|
-
* @param status {number} httpStatus code
|
|
39
|
-
* @param message
|
|
40
|
-
* @param details
|
|
41
|
-
* @constructor
|
|
42
|
-
*/
|
|
43
|
-
static HTTPError(status: number, message: string, details?: any): CoreError;
|
|
44
|
-
/**
|
|
45
|
-
* @description Самая ленивая ошибка. Т.к. функция сама определяет, что ей делать с данными.
|
|
46
|
-
* @param data
|
|
47
|
-
* @constructor
|
|
48
|
-
*/
|
|
49
|
-
static Any(data: unknown): CoreError;
|
|
50
16
|
}
|
|
51
17
|
//# sourceMappingURL=core-error.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-error.d.ts","sourceRoot":"","sources":["../../src/errors/core-error.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,KAAK;
|
|
1
|
+
{"version":3,"file":"core-error.d.ts","sourceRoot":"","sources":["../../src/errors/core-error.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,KAAK;IAE3C,OAAO,SAAW;IAClB,OAAO,EAAE,GAAG,CAAA;IAEZ;;;;;OAKG;gBACS,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;IAMzC,QAAQ;CAIR"}
|
|
@@ -1,103 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const
|
|
4
|
-
|
|
3
|
+
const uuid_1 = require("uuid");
|
|
4
|
+
/**
|
|
5
|
+
* @description Базовая ошибка для всего ядра приложения. Используется для скрытия генерации уникального идентификатора
|
|
6
|
+
* ошибки и скрытия лишней информации о пользователе.
|
|
7
|
+
*/
|
|
5
8
|
class CoreError extends Error {
|
|
6
9
|
/**
|
|
7
10
|
* @description Класс используется для более удобной работы с ошибками. Добавляет полей displayMessage, которое в
|
|
8
11
|
* конечном итоге (в middleware) будет использоваться в качестве message;
|
|
9
|
-
* @param
|
|
10
|
-
* @param insideError {any} Внутренняя ошибка
|
|
12
|
+
* @param message {String} Текстовое сообщение ошибки
|
|
11
13
|
* @param details {any} Любая дополнительная информация
|
|
12
14
|
*/
|
|
13
|
-
constructor(
|
|
14
|
-
super();
|
|
15
|
-
this.
|
|
16
|
-
if (insideError instanceof Error) {
|
|
17
|
-
this.stack = insideError.stack;
|
|
18
|
-
this.message = insideError.message;
|
|
19
|
-
}
|
|
20
|
-
if (typeof insideError === 'string') {
|
|
21
|
-
this.message = insideError;
|
|
22
|
-
}
|
|
23
|
-
if (!this.message)
|
|
24
|
-
this.message = this.displayMessage;
|
|
15
|
+
constructor(message, details) {
|
|
16
|
+
super(message);
|
|
17
|
+
this.traceId = (0, uuid_1.v4)();
|
|
25
18
|
this.details = details || [];
|
|
26
19
|
}
|
|
27
20
|
toString() {
|
|
28
|
-
|
|
29
|
-
if (this.message !== this.displayMessage)
|
|
30
|
-
answerArray.push(this.message);
|
|
31
|
-
if (this.httpStatus)
|
|
32
|
-
answerArray.push(this.httpStatus.toString());
|
|
33
|
-
answerArray.push(this.details.toString());
|
|
34
|
-
return answerArray.join(' ');
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* @description Ошибка связана с получением информации о пользователе по его externalId. Одна из причин является
|
|
38
|
-
* отсутствие пользователя: он не был добавлен в таблицу User.
|
|
39
|
-
*/
|
|
40
|
-
static UserNotFound(externalId) {
|
|
41
|
-
return new CoreError(`Can't read user information. External id ${externalId}`);
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* @description Ошибка связана со случаем, когда мы используем usage-context(при чтении его, изменении данных и т.д.),
|
|
45
|
-
* но usage-context связка не была определена в конфигурации.
|
|
46
|
-
* @param url {String} путь, который передаётся в качестве текущего.
|
|
47
|
-
*/
|
|
48
|
-
static UsageContextBindingIsNotRegistered(url) {
|
|
49
|
-
return new CoreError(`Usage-Context not binding with URL/Path ${url} inside website configurations.`);
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* @description Ошибка используется в случае, когда с AppServer пришла не обработанное исключение. В таком случае
|
|
53
|
-
* сообщения имеет значение по умолчанию. Однако в деталях хранится информация переданная с AppServer.
|
|
54
|
-
* @param {string[]} details Любая возможная информация, которая будет добавлена в ошибку.
|
|
55
|
-
* @param {number} statusCode Код ответа от AppServer
|
|
56
|
-
* @constructor
|
|
57
|
-
*/
|
|
58
|
-
static AppServerError(details = [], statusCode = 500) {
|
|
59
|
-
if (typeof details === 'string')
|
|
60
|
-
details = [details];
|
|
61
|
-
const error = new CoreError(constants_1.DEFAULT_ERROR_MESSAGE, 'AppServer Error', details);
|
|
62
|
-
error.httpStatus = statusCode;
|
|
63
|
-
return error;
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* @description Обработка обычных http ошибок
|
|
67
|
-
* @param status {number} httpStatus code
|
|
68
|
-
* @param message
|
|
69
|
-
* @param details
|
|
70
|
-
* @constructor
|
|
71
|
-
*/
|
|
72
|
-
static HTTPError(status, message, details) {
|
|
73
|
-
const error = new CoreError(message, message, details);
|
|
74
|
-
error.httpStatus = status;
|
|
75
|
-
return error;
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* @description Самая ленивая ошибка. Т.к. функция сама определяет, что ей делать с данными.
|
|
79
|
-
* @param data
|
|
80
|
-
* @constructor
|
|
81
|
-
*/
|
|
82
|
-
static Any(data) {
|
|
83
|
-
if (data instanceof CoreError)
|
|
84
|
-
return data;
|
|
85
|
-
if (typeof data === 'string')
|
|
86
|
-
return new CoreError(constants_1.DEFAULT_ERROR_MESSAGE, data);
|
|
87
|
-
try {
|
|
88
|
-
// @ts-ignore
|
|
89
|
-
const error = new CoreError(constants_1.DEFAULT_ERROR_MESSAGE, data === null || data === void 0 ? void 0 : data.message);
|
|
90
|
-
// @ts-ignore
|
|
91
|
-
if (data === null || data === void 0 ? void 0 : data.status)
|
|
92
|
-
error.httpStatus = data.status;
|
|
93
|
-
error.details = [JSON.stringify(data)];
|
|
94
|
-
return error;
|
|
95
|
-
}
|
|
96
|
-
catch (e) {
|
|
97
|
-
use_logger_1.Logger.error('Error occurred while trying to parse error by CoreError.Any.');
|
|
98
|
-
use_logger_1.Logger.error(e);
|
|
99
|
-
}
|
|
100
|
-
return new CoreError(constants_1.DEFAULT_ERROR_MESSAGE, "Unknown error occurred. Check logs.");
|
|
21
|
+
return [this.traceId, this.message, this.details].join(" ");
|
|
101
22
|
}
|
|
102
23
|
}
|
|
103
24
|
exports.default = CoreError;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-error.js","sourceRoot":"","sources":["../../src/errors/core-error.ts"],"names":[],"mappings":";;AAAA
|
|
1
|
+
{"version":3,"file":"core-error.js","sourceRoot":"","sources":["../../src/errors/core-error.ts"],"names":[],"mappings":";;AAAA,+BAAkC;AAGlC;;;GAGG;AACH,MAAqB,SAAU,SAAQ,KAAK;IAK3C;;;;;OAKG;IACH,YAAY,OAAe,EAAE,OAAY;QACxC,KAAK,CAAC,OAAO,CAAC,CAAC;QAVhB,YAAO,GAAG,IAAA,SAAM,GAAE,CAAA;QAWjB,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;IAC9B,CAAC;IAGD,QAAQ;QACP,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC5D,CAAC;CAED;AArBD,4BAqBC"}
|