@alacard-project/shared 1.1.1 → 1.1.4
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/constants/microservices.constants.d.ts +4 -0
- package/dist/constants/microservices.constants.js +4 -0
- package/dist/constants/microservices.constants.js.map +1 -1
- package/dist/contracts/card.contract.d.ts +98 -0
- package/dist/contracts/card.contract.js +3 -0
- package/dist/contracts/card.contract.js.map +1 -0
- package/dist/contracts/index.d.ts +3 -1
- package/dist/contracts/index.js +3 -0
- package/dist/contracts/index.js.map +1 -1
- package/dist/contracts/transaction.contract.d.ts +63 -0
- package/dist/contracts/transaction.contract.js +3 -0
- package/dist/contracts/transaction.contract.js.map +1 -0
- package/dist/dto/auth.dto.d.ts +3 -1
- package/dist/dto/auth.dto.js +11 -0
- package/dist/dto/auth.dto.js.map +1 -1
- package/dist/dto/index.d.ts +1 -0
- package/dist/dto/index.js +1 -0
- package/dist/dto/index.js.map +1 -1
- package/dist/dto/invoice.dto.d.ts +12 -0
- package/dist/dto/invoice.dto.js +62 -0
- package/dist/dto/invoice.dto.js.map +1 -0
- package/dist/enums/auth.enum.d.ts +2 -3
- package/dist/enums/auth.enum.js +2 -3
- package/dist/enums/auth.enum.js.map +1 -1
- package/dist/filters/global-exception.filter.d.ts +12 -0
- package/dist/filters/global-exception.filter.js +152 -0
- package/dist/filters/global-exception.filter.js.map +1 -0
- package/dist/filters/index.d.ts +1 -1
- package/dist/filters/index.js +1 -1
- package/dist/filters/index.js.map +1 -1
- package/dist/index.d.ts +14 -4
- package/dist/index.js +14 -4
- package/dist/index.js.map +1 -1
- package/dist/middleware/index.d.ts +2 -0
- package/dist/{interceptors → middleware}/index.js +2 -2
- package/dist/middleware/index.js.map +1 -0
- package/dist/middleware/prisma-logging.middleware.d.ts +3 -0
- package/dist/middleware/prisma-logging.middleware.js +52 -0
- package/dist/middleware/prisma-logging.middleware.js.map +1 -0
- package/dist/middleware/tracing.middleware.d.ts +8 -0
- package/dist/middleware/tracing.middleware.js +33 -0
- package/dist/middleware/tracing.middleware.js.map +1 -0
- package/dist/resilience/circuit-breaker.service.d.ts +2 -3
- package/dist/resilience/circuit-breaker.service.js +10 -16
- package/dist/resilience/circuit-breaker.service.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types/logger.interface.d.ts +6 -0
- package/dist/types/logger.interface.js +3 -0
- package/dist/types/logger.interface.js.map +1 -0
- package/dist/utils/app-logger.d.ts +11 -0
- package/dist/utils/app-logger.js +65 -0
- package/dist/utils/app-logger.js.map +1 -0
- package/dist/utils/app.utils.d.ts +4 -0
- package/dist/utils/app.utils.js +8 -1
- package/dist/utils/app.utils.js.map +1 -1
- package/dist/{filters/http-exception.filter.js → utils/filters.js} +3 -12
- package/dist/utils/filters.js.map +1 -0
- package/dist/utils/grpc-tracing-server.interceptor.d.ts +8 -0
- package/dist/utils/grpc-tracing-server.interceptor.js +48 -0
- package/dist/utils/grpc-tracing-server.interceptor.js.map +1 -0
- package/dist/utils/grpc-tracing.interceptor.d.ts +8 -0
- package/dist/utils/grpc-tracing.interceptor.js +35 -0
- package/dist/utils/grpc-tracing.interceptor.js.map +1 -0
- package/dist/utils/http-tracing.interceptor.d.ts +8 -0
- package/dist/utils/http-tracing.interceptor.js +35 -0
- package/dist/utils/http-tracing.interceptor.js.map +1 -0
- package/dist/{interceptors/transform.interceptor.d.ts → utils/interceptors.d.ts} +0 -1
- package/dist/{interceptors/transform.interceptor.js → utils/interceptors.js} +3 -3
- package/dist/utils/interceptors.js.map +1 -0
- package/dist/utils/proto-path.js +1 -1
- package/dist/utils/proto-path.js.map +1 -1
- package/dist/utils/tracing.module.d.ts +2 -0
- package/dist/{observability/metrics/metrics.module.js → utils/tracing.module.js} +10 -16
- package/dist/utils/tracing.module.js.map +1 -0
- package/dist/utils/tracing.service.d.ts +10 -0
- package/dist/utils/tracing.service.js +43 -0
- package/dist/utils/tracing.service.js.map +1 -0
- package/dist/utils/tracing.utils.js +7 -0
- package/dist/utils/tracing.utils.js.map +1 -0
- package/package.json +48 -46
- package/dist/config/base-config.service.d.ts +0 -25
- package/dist/config/base-config.service.js +0 -87
- package/dist/config/base-config.service.js.map +0 -1
- package/dist/constants/logging.constants.d.ts +0 -24
- package/dist/constants/logging.constants.js +0 -28
- package/dist/constants/logging.constants.js.map +0 -1
- package/dist/constants/monitoring.constants.d.ts +0 -51
- package/dist/constants/monitoring.constants.js +0 -55
- package/dist/constants/monitoring.constants.js.map +0 -1
- package/dist/constants/tokens.constants.d.ts +0 -6
- package/dist/constants/tokens.constants.js +0 -10
- package/dist/constants/tokens.constants.js.map +0 -1
- package/dist/filters/http-exception.filter.js.map +0 -1
- package/dist/interceptors/http-logging.interceptor.d.ts +0 -10
- package/dist/interceptors/http-logging.interceptor.js +0 -74
- package/dist/interceptors/http-logging.interceptor.js.map +0 -1
- package/dist/interceptors/index.d.ts +0 -2
- package/dist/interceptors/index.js.map +0 -1
- package/dist/interceptors/logging.interceptor.d.ts +0 -6
- package/dist/interceptors/logging.interceptor.js +0 -41
- package/dist/interceptors/logging.interceptor.js.map +0 -1
- package/dist/interceptors/transform.interceptor.js.map +0 -1
- package/dist/observability/index.d.ts +0 -2
- package/dist/observability/index.js +0 -19
- package/dist/observability/index.js.map +0 -1
- package/dist/observability/metrics/metrics.module.d.ts +0 -2
- package/dist/observability/metrics/metrics.module.js.map +0 -1
- package/dist/observability/tracing.js +0 -28
- package/dist/observability/tracing.js.map +0 -1
- package/dist/utils/logging-client.d.ts +0 -9
- package/dist/utils/logging-client.js +0 -58
- package/dist/utils/logging-client.js.map +0 -1
- package/dist/utils/prometheus.utils.d.ts +0 -9
- package/dist/utils/prometheus.utils.js +0 -66
- package/dist/utils/prometheus.utils.js.map +0 -1
- package/proto/auth.proto +0 -123
- package/proto/card.proto +0 -43
- package/proto/client.proto +0 -45
- package/proto/config.proto +0 -39
- package/proto/dbf.proto +0 -183
- package/proto/logging.proto +0 -143
- package/proto/partner.proto +0 -18
- package/proto/terminal.proto +0 -18
- package/proto/transaction.proto +0 -45
- package/proto/user.proto +0 -122
- package/src/constants/auth-config.constants.ts +0 -16
- package/src/constants/auth.constants.ts +0 -50
- package/src/constants/common.constants.ts +0 -16
- package/src/constants/env.constants.ts +0 -49
- package/src/constants/error-messages.ts +0 -10
- package/src/constants/grpc.constants.ts +0 -43
- package/src/constants/http.constants.ts +0 -11
- package/src/constants/index.ts +0 -11
- package/src/constants/logging-messages.constants.ts +0 -60
- package/src/constants/microservices.constants.ts +0 -62
- package/src/constants/queue.constants.ts +0 -8
- package/src/constants/routes.constants.ts +0 -21
- package/src/contracts/auth.contract.ts +0 -146
- package/src/contracts/config.contract.ts +0 -14
- package/src/contracts/index.ts +0 -14
- package/src/contracts/logging.contract.ts +0 -115
- package/src/contracts/token.contract.ts +0 -47
- package/src/decorators/index.ts +0 -3
- package/src/decorators/permissions.decorator.ts +0 -5
- package/src/decorators/roles.decorator.ts +0 -5
- package/src/decorators/scopes.decorator.ts +0 -4
- package/src/dto/account.dto.ts +0 -28
- package/src/dto/auth.dto.ts +0 -233
- package/src/dto/card.dto.ts +0 -64
- package/src/dto/client.dto.ts +0 -137
- package/src/dto/index.ts +0 -8
- package/src/dto/logging.dto.ts +0 -101
- package/src/dto/partner.dto.ts +0 -18
- package/src/dto/transaction.dto.ts +0 -52
- package/src/dto/user.dto.ts +0 -28
- package/src/enums/auth.enum.ts +0 -13
- package/src/enums/env.enum.ts +0 -7
- package/src/enums/error.enum.ts +0 -28
- package/src/enums/events.enum.ts +0 -22
- package/src/enums/health.enum.ts +0 -7
- package/src/enums/iam.enum.ts +0 -28
- package/src/enums/index.ts +0 -10
- package/src/enums/logging.enum.ts +0 -7
- package/src/enums/notification.enum.ts +0 -5
- package/src/enums/permission.enum.ts +0 -31
- package/src/enums/user.enum.ts +0 -27
- package/src/errors/app.error.ts +0 -33
- package/src/errors/error-map.ts +0 -105
- package/src/filters/http-exception.filter.ts +0 -49
- package/src/filters/index.ts +0 -2
- package/src/index.ts +0 -17
- package/src/interceptors/index.ts +0 -3
- package/src/interceptors/logging.interceptor.ts +0 -37
- package/src/interceptors/transform.interceptor.ts +0 -21
- package/src/observability/index.ts +0 -3
- package/src/observability/metrics/metrics.module.ts +0 -16
- package/src/observability/tracing.ts +0 -33
- package/src/resilience/circuit-breaker.service.ts +0 -46
- package/src/resilience/resilience.module.ts +0 -9
- package/src/types/auth.types.ts +0 -38
- package/src/types/common.types.ts +0 -18
- package/src/types/config.types.ts +0 -32
- package/src/types/iam.types.ts +0 -78
- package/src/types/index.ts +0 -6
- package/src/types/monitoring.types.ts +0 -77
- package/src/types/user.types.ts +0 -11
- package/src/utils/app.utils.ts +0 -52
- package/src/utils/health.utils.ts +0 -24
- package/src/utils/proto-path.ts +0 -21
- package/src/utils/user.utils.ts +0 -3
- package/tsconfig.json +0 -28
- /package/dist/{filters/http-exception.filter.d.ts → utils/filters.d.ts} +0 -0
- /package/dist/{observability/tracing.d.ts → utils/tracing.utils.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"microservices.constants.js","sourceRoot":"","sources":["../../src/constants/microservices.constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,aAAa,GAAG;IACzB,MAAM,EAAE;QACJ,YAAY,EAAE,eAAe;QAC7B,OAAO,EAAE,QAAQ;KACpB;IACD,OAAO,EAAE;QACL,YAAY,EAAE,gBAAgB;QAC9B,OAAO,EAAE,SAAS;KACrB;IACD,KAAK,EAAE;QACH,YAAY,EAAE,cAAc;QAC5B,OAAO,EAAE,OAAO;KACnB;IACD,IAAI,EAAE;QACF,YAAY,EAAE,aAAa;QAC3B,OAAO,EAAE,MAAM;KAClB;IACD,IAAI,EAAE;QACF,YAAY,EAAE,aAAa;QAC3B,OAAO,EAAE,MAAM;KAClB;IACD,MAAM,EAAE;QACJ,YAAY,EAAE,eAAe;QAC7B,OAAO,EAAE,QAAQ;KACpB;IACD,IAAI,EAAE;QACF,YAAY,EAAE,aAAa;QAC3B,OAAO,EAAE,MAAM;KAClB;IACD,WAAW,EAAE;QACT,YAAY,EAAE,oBAAoB;QAClC,OAAO,EAAE,aAAa;KACzB;IACD,OAAO,EAAE;QACL,YAAY,EAAE,gBAAgB;QAC9B,OAAO,EAAE,SAAS;KACrB;IACD,OAAO,EAAE;QACL,YAAY,EAAE,gBAAgB;QAC9B,OAAO,EAAE,SAAS;KACrB;IACD,YAAY,EAAE;QACV,YAAY,EAAE,qBAAqB;QACnC,OAAO,EAAE,cAAc;KAC1B;IACD,UAAU,EAAE;QACR,YAAY,EAAE,mBAAmB;QACjC,OAAO,EAAE,YAAY;KACxB;IACD,QAAQ,EAAE;QACN,YAAY,EAAE,iBAAiB;QAC/B,OAAO,EAAE,UAAU;KACtB;IACD,OAAO,EAAE;QACL,YAAY,EAAE,gBAAgB;QAC9B,OAAO,EAAE,SAAS;KACrB;IACD,KAAK,EAAE;QACH,YAAY,EAAE,cAAc;QAC5B,OAAO,EAAE,OAAO;KACnB;CACK,CAAC"}
|
|
1
|
+
{"version":3,"file":"microservices.constants.js","sourceRoot":"","sources":["../../src/constants/microservices.constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,aAAa,GAAG;IACzB,MAAM,EAAE;QACJ,YAAY,EAAE,eAAe;QAC7B,OAAO,EAAE,QAAQ;KACpB;IACD,OAAO,EAAE;QACL,YAAY,EAAE,gBAAgB;QAC9B,OAAO,EAAE,SAAS;KACrB;IACD,KAAK,EAAE;QACH,YAAY,EAAE,cAAc;QAC5B,OAAO,EAAE,OAAO;KACnB;IACD,IAAI,EAAE;QACF,YAAY,EAAE,aAAa;QAC3B,OAAO,EAAE,MAAM;KAClB;IACD,IAAI,EAAE;QACF,YAAY,EAAE,aAAa;QAC3B,OAAO,EAAE,MAAM;KAClB;IACD,MAAM,EAAE;QACJ,YAAY,EAAE,eAAe;QAC7B,OAAO,EAAE,QAAQ;KACpB;IACD,IAAI,EAAE;QACF,YAAY,EAAE,aAAa;QAC3B,OAAO,EAAE,MAAM;KAClB;IACD,WAAW,EAAE;QACT,YAAY,EAAE,oBAAoB;QAClC,OAAO,EAAE,aAAa;KACzB;IACD,OAAO,EAAE;QACL,YAAY,EAAE,gBAAgB;QAC9B,OAAO,EAAE,SAAS;KACrB;IACD,OAAO,EAAE;QACL,YAAY,EAAE,gBAAgB;QAC9B,OAAO,EAAE,SAAS;KACrB;IACD,YAAY,EAAE;QACV,YAAY,EAAE,qBAAqB;QACnC,OAAO,EAAE,cAAc;KAC1B;IACD,UAAU,EAAE;QACR,YAAY,EAAE,mBAAmB;QACjC,OAAO,EAAE,YAAY;KACxB;IACD,QAAQ,EAAE;QACN,YAAY,EAAE,iBAAiB;QAC/B,OAAO,EAAE,UAAU;KACtB;IACD,OAAO,EAAE;QACL,YAAY,EAAE,gBAAgB;QAC9B,OAAO,EAAE,SAAS;KACrB;IACD,KAAK,EAAE;QACH,YAAY,EAAE,cAAc;QAC5B,OAAO,EAAE,OAAO;KACnB;IACD,MAAM,EAAE;QACJ,YAAY,EAAE,eAAe;QAC7B,OAAO,EAAE,QAAQ;KACpB;CACK,CAAC"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
import { CreateCardDto, UpdateCardDto } from '../dto/card.dto';
|
|
3
|
+
export interface Card {
|
|
4
|
+
id: string;
|
|
5
|
+
cardNumber: string;
|
|
6
|
+
cardType: string;
|
|
7
|
+
cardStatus: string;
|
|
8
|
+
clientId: string;
|
|
9
|
+
accountId: string;
|
|
10
|
+
balance: number;
|
|
11
|
+
issuedAt: string;
|
|
12
|
+
expiresAt: string;
|
|
13
|
+
createdAt: string;
|
|
14
|
+
updatedAt: string;
|
|
15
|
+
}
|
|
16
|
+
export interface FindCardsDto {
|
|
17
|
+
skip?: number;
|
|
18
|
+
take?: number;
|
|
19
|
+
page?: number;
|
|
20
|
+
limit?: number;
|
|
21
|
+
clientId?: string;
|
|
22
|
+
status?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface FindByClientDto {
|
|
25
|
+
clientId: string;
|
|
26
|
+
clientNumber?: string;
|
|
27
|
+
}
|
|
28
|
+
export interface CardsResponse {
|
|
29
|
+
cards: Card[];
|
|
30
|
+
total: number;
|
|
31
|
+
}
|
|
32
|
+
export interface BalanceResponse {
|
|
33
|
+
cardId: string;
|
|
34
|
+
balance: number;
|
|
35
|
+
currency: string;
|
|
36
|
+
}
|
|
37
|
+
export interface SyncHistoryItem {
|
|
38
|
+
id: string;
|
|
39
|
+
cardId: string;
|
|
40
|
+
terminalId: string;
|
|
41
|
+
amount: number;
|
|
42
|
+
syncDate: string;
|
|
43
|
+
}
|
|
44
|
+
export interface SyncHistoryResponse {
|
|
45
|
+
items: SyncHistoryItem[];
|
|
46
|
+
total: number;
|
|
47
|
+
}
|
|
48
|
+
export interface CardStatsResponse {
|
|
49
|
+
totalCards: number;
|
|
50
|
+
activeCards: number;
|
|
51
|
+
blockedCards: number;
|
|
52
|
+
totalBalance: number;
|
|
53
|
+
}
|
|
54
|
+
export interface UpdatePhysicalBalanceDto {
|
|
55
|
+
id: string;
|
|
56
|
+
amountAdded: number;
|
|
57
|
+
terminalId?: string;
|
|
58
|
+
allocationId?: string;
|
|
59
|
+
rawData?: any;
|
|
60
|
+
}
|
|
61
|
+
export interface UpdateVirtualBalanceDto {
|
|
62
|
+
id: string;
|
|
63
|
+
amount: number;
|
|
64
|
+
reason?: string;
|
|
65
|
+
}
|
|
66
|
+
export interface UpdateBalanceModeDto {
|
|
67
|
+
id: string;
|
|
68
|
+
mode: 'OFFLINE' | 'ONLINE' | 'HYBRID';
|
|
69
|
+
}
|
|
70
|
+
export interface GetSyncHistoryDto {
|
|
71
|
+
id: string;
|
|
72
|
+
page?: number;
|
|
73
|
+
limit?: number;
|
|
74
|
+
}
|
|
75
|
+
export interface ICardService {
|
|
76
|
+
create(data: CreateCardDto): Observable<Card>;
|
|
77
|
+
findAll(data: FindCardsDto): Observable<CardsResponse>;
|
|
78
|
+
findByClient(data: FindByClientDto): Observable<CardsResponse>;
|
|
79
|
+
findOne(data: {
|
|
80
|
+
id: string;
|
|
81
|
+
}): Observable<Card>;
|
|
82
|
+
getStats(data: {}): Observable<CardStatsResponse>;
|
|
83
|
+
getSyncHistory(data: GetSyncHistoryDto): Observable<SyncHistoryResponse>;
|
|
84
|
+
getEffectiveBalance(data: {
|
|
85
|
+
id: string;
|
|
86
|
+
}): Observable<BalanceResponse>;
|
|
87
|
+
update(data: {
|
|
88
|
+
id: string;
|
|
89
|
+
} & UpdateCardDto): Observable<Card>;
|
|
90
|
+
updatePhysicalBalance(data: UpdatePhysicalBalanceDto): Observable<Card>;
|
|
91
|
+
updateVirtualBalance(data: UpdateVirtualBalanceDto): Observable<Card>;
|
|
92
|
+
updateBalanceMode(data: UpdateBalanceModeDto): Observable<Card>;
|
|
93
|
+
remove(data: {
|
|
94
|
+
id: string;
|
|
95
|
+
}): Observable<{
|
|
96
|
+
success: boolean;
|
|
97
|
+
}>;
|
|
98
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card.contract.js","sourceRoot":"","sources":["../../src/contracts/card.contract.ts"],"names":[],"mappings":""}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export * from './config.contract';
|
|
2
2
|
export * from './logging.contract';
|
|
3
3
|
export * from './auth.contract';
|
|
4
|
-
export
|
|
4
|
+
export * from './token.contract';
|
|
5
|
+
export * from './card.contract';
|
|
6
|
+
export * from './transaction.contract';
|
package/dist/contracts/index.js
CHANGED
|
@@ -17,4 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./config.contract"), exports);
|
|
18
18
|
__exportStar(require("./logging.contract"), exports);
|
|
19
19
|
__exportStar(require("./auth.contract"), exports);
|
|
20
|
+
__exportStar(require("./token.contract"), exports);
|
|
21
|
+
__exportStar(require("./card.contract"), exports);
|
|
22
|
+
__exportStar(require("./transaction.contract"), exports);
|
|
20
23
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,qDAAmC;AACnC,kDAAgC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,qDAAmC;AACnC,kDAAgC;AAChC,mDAAiC;AACjC,kDAAgC;AAChC,yDAAuC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
import { CreateTransactionDto, UpdateTransactionDto } from '../dto/transaction.dto';
|
|
3
|
+
export interface Transaction {
|
|
4
|
+
id: string;
|
|
5
|
+
externalId?: string;
|
|
6
|
+
cardId: string;
|
|
7
|
+
amount: number;
|
|
8
|
+
currency: string;
|
|
9
|
+
type: string;
|
|
10
|
+
status: string;
|
|
11
|
+
description?: string;
|
|
12
|
+
transactionDate: string;
|
|
13
|
+
createdAt: string;
|
|
14
|
+
metadata?: any;
|
|
15
|
+
}
|
|
16
|
+
export interface FindTransactionsDto {
|
|
17
|
+
cardId?: string;
|
|
18
|
+
skip?: number;
|
|
19
|
+
take?: number;
|
|
20
|
+
page?: number;
|
|
21
|
+
limit?: number;
|
|
22
|
+
year?: number;
|
|
23
|
+
month?: number;
|
|
24
|
+
}
|
|
25
|
+
export interface SearchTransactionsDto {
|
|
26
|
+
cardIds: string[];
|
|
27
|
+
clientId?: string;
|
|
28
|
+
skip?: number;
|
|
29
|
+
take?: number;
|
|
30
|
+
orderBy?: string;
|
|
31
|
+
}
|
|
32
|
+
export interface TransactionsResponse {
|
|
33
|
+
transactions: Transaction[];
|
|
34
|
+
total: number;
|
|
35
|
+
}
|
|
36
|
+
export interface TransactionsResult {
|
|
37
|
+
items: Transaction[];
|
|
38
|
+
count: number;
|
|
39
|
+
}
|
|
40
|
+
export interface StatsResponse {
|
|
41
|
+
totalSpent: number;
|
|
42
|
+
transactionCount: number;
|
|
43
|
+
lastTransactionDate?: string;
|
|
44
|
+
}
|
|
45
|
+
export interface ITransactionService {
|
|
46
|
+
create(data: CreateTransactionDto): Observable<Transaction>;
|
|
47
|
+
findAll(data: FindTransactionsDto): Observable<TransactionsResponse>;
|
|
48
|
+
search(data: SearchTransactionsDto): Observable<TransactionsResult>;
|
|
49
|
+
findOne(data: {
|
|
50
|
+
id: string;
|
|
51
|
+
}): Observable<Transaction>;
|
|
52
|
+
getStats(data: {
|
|
53
|
+
cardId?: string;
|
|
54
|
+
}): Observable<StatsResponse>;
|
|
55
|
+
update(data: {
|
|
56
|
+
id: string;
|
|
57
|
+
} & UpdateTransactionDto): Observable<Transaction>;
|
|
58
|
+
remove(data: {
|
|
59
|
+
id: string;
|
|
60
|
+
}): Observable<{
|
|
61
|
+
success: boolean;
|
|
62
|
+
}>;
|
|
63
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction.contract.js","sourceRoot":"","sources":["../../src/contracts/transaction.contract.ts"],"names":[],"mappings":""}
|
package/dist/dto/auth.dto.d.ts
CHANGED
|
@@ -17,8 +17,10 @@ export declare class EmployeeLoginDto {
|
|
|
17
17
|
password: string;
|
|
18
18
|
}
|
|
19
19
|
export declare class PublicLoginDto {
|
|
20
|
-
username
|
|
20
|
+
username?: string;
|
|
21
|
+
email?: string;
|
|
21
22
|
password: string;
|
|
23
|
+
role?: string;
|
|
22
24
|
}
|
|
23
25
|
export interface UserResponse {
|
|
24
26
|
id: string;
|
package/dist/dto/auth.dto.js
CHANGED
|
@@ -73,13 +73,24 @@ class PublicLoginDto {
|
|
|
73
73
|
exports.PublicLoginDto = PublicLoginDto;
|
|
74
74
|
__decorate([
|
|
75
75
|
(0, class_validator_1.IsString)(),
|
|
76
|
+
(0, class_validator_1.IsOptional)(),
|
|
76
77
|
__metadata("design:type", String)
|
|
77
78
|
], PublicLoginDto.prototype, "username", void 0);
|
|
79
|
+
__decorate([
|
|
80
|
+
(0, class_validator_1.IsEmail)(),
|
|
81
|
+
(0, class_validator_1.IsOptional)(),
|
|
82
|
+
__metadata("design:type", String)
|
|
83
|
+
], PublicLoginDto.prototype, "email", void 0);
|
|
78
84
|
__decorate([
|
|
79
85
|
(0, class_validator_1.IsString)(),
|
|
80
86
|
(0, class_validator_1.MinLength)(8),
|
|
81
87
|
__metadata("design:type", String)
|
|
82
88
|
], PublicLoginDto.prototype, "password", void 0);
|
|
89
|
+
__decorate([
|
|
90
|
+
(0, class_validator_1.IsString)(),
|
|
91
|
+
(0, class_validator_1.IsOptional)(),
|
|
92
|
+
__metadata("design:type", String)
|
|
93
|
+
], PublicLoginDto.prototype, "role", void 0);
|
|
83
94
|
class InviteRequestBody {
|
|
84
95
|
}
|
|
85
96
|
exports.InviteRequestBody = InviteRequestBody;
|
package/dist/dto/auth.dto.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.dto.js","sourceRoot":"","sources":["../../src/dto/auth.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAmF;AACnF,kDAA8C;AAC9C,oCAA4D;AAE5D,MAAa,WAAW;CAuBvB;AAvBD,kCAuBC;AArBG;IADC,IAAA,yBAAO,GAAE;;0CACK;AAIf;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,2BAAS,EAAC,CAAC,CAAC;;6CACK;AAIlB;IAFC,IAAA,wBAAM,EAAC,oBAAQ,CAAC;IAChB,IAAA,4BAAU,GAAE;;yCACG;AAIhB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;8CACM;AAInB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;6CACK;AAIlB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;2CACG;AAGpB,MAAa,QAAQ;CAMpB;AAND,4BAMC;AAJG;IADC,IAAA,yBAAO,GAAE;;uCACK;AAGf;IADC,IAAA,0BAAQ,GAAE;;0CACO;AAOtB,MAAa,gBAAgB;CAO5B;AAPD,4CAOC;AALG;IADC,IAAA,yBAAO,GAAE;;+CACK;AAIf;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,2BAAS,EAAC,CAAC,CAAC;;kDACK;
|
|
1
|
+
{"version":3,"file":"auth.dto.js","sourceRoot":"","sources":["../../src/dto/auth.dto.ts"],"names":[],"mappings":"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"}
|
package/dist/dto/index.d.ts
CHANGED
package/dist/dto/index.js
CHANGED
|
@@ -22,4 +22,5 @@ __exportStar(require("./card.dto"), exports);
|
|
|
22
22
|
__exportStar(require("./partner.dto"), exports);
|
|
23
23
|
__exportStar(require("./user.dto"), exports);
|
|
24
24
|
__exportStar(require("./account.dto"), exports);
|
|
25
|
+
__exportStar(require("./invoice.dto"), exports);
|
|
25
26
|
//# sourceMappingURL=index.js.map
|
package/dist/dto/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dto/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,6CAA2B;AAC3B,+CAA6B;AAC7B,oDAAkC;AAClC,6CAA2B;AAC3B,gDAA8B;AAC9B,6CAA2B;AAC3B,gDAA8B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dto/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,6CAA2B;AAC3B,+CAA6B;AAC7B,oDAAkC;AAClC,6CAA2B;AAC3B,gDAA8B;AAC9B,6CAA2B;AAC3B,gDAA8B;AAC9B,gDAA8B"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.UpdateInvoiceDto = exports.CreateInvoiceDto = void 0;
|
|
13
|
+
const class_validator_1 = require("class-validator");
|
|
14
|
+
class CreateInvoiceDto {
|
|
15
|
+
}
|
|
16
|
+
exports.CreateInvoiceDto = CreateInvoiceDto;
|
|
17
|
+
__decorate([
|
|
18
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
19
|
+
(0, class_validator_1.IsString)(),
|
|
20
|
+
__metadata("design:type", String)
|
|
21
|
+
], CreateInvoiceDto.prototype, "clientId", void 0);
|
|
22
|
+
__decorate([
|
|
23
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
24
|
+
(0, class_validator_1.IsString)(),
|
|
25
|
+
__metadata("design:type", String)
|
|
26
|
+
], CreateInvoiceDto.prototype, "invoiceNumber", void 0);
|
|
27
|
+
__decorate([
|
|
28
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
29
|
+
(0, class_validator_1.IsNumber)(),
|
|
30
|
+
(0, class_validator_1.Min)(0),
|
|
31
|
+
__metadata("design:type", Number)
|
|
32
|
+
], CreateInvoiceDto.prototype, "amount", void 0);
|
|
33
|
+
__decorate([
|
|
34
|
+
(0, class_validator_1.IsOptional)(),
|
|
35
|
+
(0, class_validator_1.IsString)(),
|
|
36
|
+
__metadata("design:type", String)
|
|
37
|
+
], CreateInvoiceDto.prototype, "currency", void 0);
|
|
38
|
+
__decorate([
|
|
39
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
40
|
+
(0, class_validator_1.IsDateString)(),
|
|
41
|
+
__metadata("design:type", String)
|
|
42
|
+
], CreateInvoiceDto.prototype, "dueDate", void 0);
|
|
43
|
+
class UpdateInvoiceDto {
|
|
44
|
+
}
|
|
45
|
+
exports.UpdateInvoiceDto = UpdateInvoiceDto;
|
|
46
|
+
__decorate([
|
|
47
|
+
(0, class_validator_1.IsOptional)(),
|
|
48
|
+
(0, class_validator_1.IsNumber)(),
|
|
49
|
+
(0, class_validator_1.Min)(0),
|
|
50
|
+
__metadata("design:type", Number)
|
|
51
|
+
], UpdateInvoiceDto.prototype, "amount", void 0);
|
|
52
|
+
__decorate([
|
|
53
|
+
(0, class_validator_1.IsOptional)(),
|
|
54
|
+
(0, class_validator_1.IsString)(),
|
|
55
|
+
__metadata("design:type", String)
|
|
56
|
+
], UpdateInvoiceDto.prototype, "status", void 0);
|
|
57
|
+
__decorate([
|
|
58
|
+
(0, class_validator_1.IsOptional)(),
|
|
59
|
+
(0, class_validator_1.IsDateString)(),
|
|
60
|
+
__metadata("design:type", String)
|
|
61
|
+
], UpdateInvoiceDto.prototype, "dueDate", void 0);
|
|
62
|
+
//# sourceMappingURL=invoice.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invoice.dto.js","sourceRoot":"","sources":["../../src/dto/invoice.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAgG;AAGhG,MAAa,gBAAgB;CAqB5B;AArBD,4CAqBC;AAlBG;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;kDACO;AAIlB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;uDACY;AAKvB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAG,EAAC,CAAC,CAAC;;gDACS;AAIhB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;kDACO;AAIlB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,8BAAY,GAAE;;iDACE;AAGrB,MAAa,gBAAgB;CAa5B;AAbD,4CAaC;AATG;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAG,EAAC,CAAC,CAAC;;gDACS;AAIhB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;gDACK;AAIhB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,8BAAY,GAAE;;iDACE"}
|
package/dist/enums/auth.enum.js
CHANGED
|
@@ -11,8 +11,7 @@ var CredentialStatus;
|
|
|
11
11
|
})(CredentialStatus || (exports.CredentialStatus = CredentialStatus = {}));
|
|
12
12
|
var ServiceTokenType;
|
|
13
13
|
(function (ServiceTokenType) {
|
|
14
|
-
ServiceTokenType["
|
|
15
|
-
ServiceTokenType["
|
|
16
|
-
ServiceTokenType["WEBHOOK"] = "WEBHOOK";
|
|
14
|
+
ServiceTokenType["API_KEY"] = "API_KEY";
|
|
15
|
+
ServiceTokenType["SERVICE_TOKEN"] = "SERVICE_TOKEN";
|
|
17
16
|
})(ServiceTokenType || (exports.ServiceTokenType = ServiceTokenType = {}));
|
|
18
17
|
//# sourceMappingURL=auth.enum.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.enum.js","sourceRoot":"","sources":["../../src/enums/auth.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,gBAMX;AAND,WAAY,gBAAgB;IACxB,qCAAiB,CAAA;IACjB,yCAAqB,CAAA;IACrB,qCAAiB,CAAA;IACjB,2CAAuB,CAAA;IACvB,uCAAmB,CAAA;AACvB,CAAC,EANW,gBAAgB,gCAAhB,gBAAgB,QAM3B;AAED,IAAY,
|
|
1
|
+
{"version":3,"file":"auth.enum.js","sourceRoot":"","sources":["../../src/enums/auth.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,gBAMX;AAND,WAAY,gBAAgB;IACxB,qCAAiB,CAAA;IACjB,yCAAqB,CAAA;IACrB,qCAAiB,CAAA;IACjB,2CAAuB,CAAA;IACvB,uCAAmB,CAAA;AACvB,CAAC,EANW,gBAAgB,gCAAhB,gBAAgB,QAM3B;AAED,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IACxB,uCAAmB,CAAA;IACnB,mDAA+B,CAAA;AACnC,CAAC,EAHW,gBAAgB,gCAAhB,gBAAgB,QAG3B"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ExceptionFilter, ArgumentsHost } from '@nestjs/common';
|
|
2
|
+
import type { IRemoteLogger } from '../types/logger.interface';
|
|
3
|
+
export declare class GlobalExceptionFilter implements ExceptionFilter {
|
|
4
|
+
private readonly logger;
|
|
5
|
+
private remoteLogger?;
|
|
6
|
+
constructor(remoteLogger?: IRemoteLogger);
|
|
7
|
+
catch(exception: any, host: ArgumentsHost): any;
|
|
8
|
+
private handleHttpException;
|
|
9
|
+
private handleRpcException;
|
|
10
|
+
private mapGrpcStatusToHttp;
|
|
11
|
+
private mapHttpStatusToGrpc;
|
|
12
|
+
}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var GlobalExceptionFilter_1;
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.GlobalExceptionFilter = void 0;
|
|
14
|
+
const common_1 = require("@nestjs/common");
|
|
15
|
+
const microservices_1 = require("@nestjs/microservices");
|
|
16
|
+
const rxjs_1 = require("rxjs");
|
|
17
|
+
let GlobalExceptionFilter = GlobalExceptionFilter_1 = class GlobalExceptionFilter {
|
|
18
|
+
constructor(remoteLogger) {
|
|
19
|
+
this.logger = new common_1.Logger(GlobalExceptionFilter_1.name);
|
|
20
|
+
this.remoteLogger = remoteLogger;
|
|
21
|
+
}
|
|
22
|
+
catch(exception, host) {
|
|
23
|
+
const type = host.getType();
|
|
24
|
+
if (type === 'http') {
|
|
25
|
+
return this.handleHttpException(exception, host);
|
|
26
|
+
}
|
|
27
|
+
else if (type === 'rpc') {
|
|
28
|
+
return this.handleRpcException(exception, host);
|
|
29
|
+
}
|
|
30
|
+
this.logger.error(`Unhandled exception of type ${type}`, exception instanceof Error ? exception.stack : '');
|
|
31
|
+
return exception;
|
|
32
|
+
}
|
|
33
|
+
handleHttpException(exception, host) {
|
|
34
|
+
const ctx = host.switchToHttp();
|
|
35
|
+
const response = ctx.getResponse();
|
|
36
|
+
const request = ctx.getRequest();
|
|
37
|
+
let status = common_1.HttpStatus.INTERNAL_SERVER_ERROR;
|
|
38
|
+
let message = 'Internal server error';
|
|
39
|
+
let stack = '';
|
|
40
|
+
let errorDetails = null;
|
|
41
|
+
if (exception instanceof common_1.HttpException) {
|
|
42
|
+
status = exception.getStatus();
|
|
43
|
+
const res = exception.getResponse();
|
|
44
|
+
message = typeof res === 'string' ? res : res.message || exception.message;
|
|
45
|
+
errorDetails = typeof res === 'object' ? res : null;
|
|
46
|
+
stack = exception.stack || '';
|
|
47
|
+
}
|
|
48
|
+
else if (exception.code !== undefined && typeof exception.code === 'number') {
|
|
49
|
+
status = this.mapGrpcStatusToHttp(exception.code);
|
|
50
|
+
message = exception.details || exception.message || 'Microservice Error';
|
|
51
|
+
errorDetails = { grpcCode: exception.code, details: exception.details };
|
|
52
|
+
stack = exception.stack || '';
|
|
53
|
+
}
|
|
54
|
+
else if (exception instanceof Error) {
|
|
55
|
+
message = exception.message;
|
|
56
|
+
stack = exception.stack || '';
|
|
57
|
+
}
|
|
58
|
+
const logMetadata = {
|
|
59
|
+
method: request.method,
|
|
60
|
+
url: request.url,
|
|
61
|
+
body: request.body,
|
|
62
|
+
query: request.query,
|
|
63
|
+
params: request.params,
|
|
64
|
+
clientIp: request.ip,
|
|
65
|
+
status,
|
|
66
|
+
errorDetails,
|
|
67
|
+
stack,
|
|
68
|
+
};
|
|
69
|
+
const logPrefix = `[${request.method}] ${request.url} - ${status}`;
|
|
70
|
+
if (status >= 500) {
|
|
71
|
+
this.logger.error(`${logPrefix} : ${message}`, stack);
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
this.logger.warn(`${logPrefix} : ${message}`);
|
|
75
|
+
}
|
|
76
|
+
if (this.remoteLogger) {
|
|
77
|
+
if (status >= 500) {
|
|
78
|
+
this.remoteLogger.error(`${logPrefix} (Unhandled)`, 'GlobalExceptionFilter', logMetadata);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
this.remoteLogger.warn(`${logPrefix} (Handled)`, 'GlobalExceptionFilter', logMetadata);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return response.status(status).json({
|
|
85
|
+
statusCode: status,
|
|
86
|
+
timestamp: new Date().toISOString(),
|
|
87
|
+
path: request.url,
|
|
88
|
+
message: message,
|
|
89
|
+
errorDetails,
|
|
90
|
+
...(process.env.NODE_ENV === 'development' && { stack }),
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
handleRpcException(exception, host) {
|
|
94
|
+
let message = 'Internal RPC error';
|
|
95
|
+
let code = 13;
|
|
96
|
+
if (exception instanceof microservices_1.RpcException) {
|
|
97
|
+
const error = exception.getError();
|
|
98
|
+
message = typeof error === 'string' ? error : error.message || JSON.stringify(error);
|
|
99
|
+
code = error.code || 13;
|
|
100
|
+
}
|
|
101
|
+
else if (exception instanceof common_1.HttpException) {
|
|
102
|
+
message = exception.message;
|
|
103
|
+
code = this.mapHttpStatusToGrpc(exception.getStatus());
|
|
104
|
+
}
|
|
105
|
+
else if (exception instanceof Error) {
|
|
106
|
+
message = exception.message;
|
|
107
|
+
}
|
|
108
|
+
this.logger.error(`RPC Exception [${code}]: ${message}`, exception.stack);
|
|
109
|
+
if (this.remoteLogger) {
|
|
110
|
+
this.remoteLogger.error(`RPC Exception [${code}]`, 'GlobalExceptionFilter', {
|
|
111
|
+
message,
|
|
112
|
+
code,
|
|
113
|
+
stack: exception.stack
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
return (0, rxjs_1.throwError)(() => ({
|
|
117
|
+
code,
|
|
118
|
+
message,
|
|
119
|
+
timestamp: new Date().toISOString(),
|
|
120
|
+
}));
|
|
121
|
+
}
|
|
122
|
+
mapGrpcStatusToHttp(code) {
|
|
123
|
+
switch (code) {
|
|
124
|
+
case 5: return common_1.HttpStatus.NOT_FOUND;
|
|
125
|
+
case 3: return common_1.HttpStatus.BAD_REQUEST;
|
|
126
|
+
case 16: return common_1.HttpStatus.UNAUTHORIZED;
|
|
127
|
+
case 7: return common_1.HttpStatus.FORBIDDEN;
|
|
128
|
+
case 6: return common_1.HttpStatus.CONFLICT;
|
|
129
|
+
case 8: return common_1.HttpStatus.TOO_MANY_REQUESTS;
|
|
130
|
+
case 1: return common_1.HttpStatus.REQUEST_TIMEOUT;
|
|
131
|
+
case 14: return common_1.HttpStatus.SERVICE_UNAVAILABLE;
|
|
132
|
+
default: return common_1.HttpStatus.INTERNAL_SERVER_ERROR;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
mapHttpStatusToGrpc(status) {
|
|
136
|
+
switch (status) {
|
|
137
|
+
case common_1.HttpStatus.NOT_FOUND: return 5;
|
|
138
|
+
case common_1.HttpStatus.BAD_REQUEST: return 3;
|
|
139
|
+
case common_1.HttpStatus.UNAUTHORIZED: return 16;
|
|
140
|
+
case common_1.HttpStatus.FORBIDDEN: return 7;
|
|
141
|
+
case common_1.HttpStatus.CONFLICT: return 6;
|
|
142
|
+
case common_1.HttpStatus.TOO_MANY_REQUESTS: return 8;
|
|
143
|
+
default: return 13;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
exports.GlobalExceptionFilter = GlobalExceptionFilter;
|
|
148
|
+
exports.GlobalExceptionFilter = GlobalExceptionFilter = GlobalExceptionFilter_1 = __decorate([
|
|
149
|
+
(0, common_1.Catch)(),
|
|
150
|
+
__metadata("design:paramtypes", [Object])
|
|
151
|
+
], GlobalExceptionFilter);
|
|
152
|
+
//# sourceMappingURL=global-exception.filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"global-exception.filter.js","sourceRoot":"","sources":["../../src/filters/global-exception.filter.ts"],"names":[],"mappings":"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"}
|
package/dist/filters/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './
|
|
1
|
+
export * from './global-exception.filter';
|
package/dist/filters/index.js
CHANGED
|
@@ -14,5 +14,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./
|
|
17
|
+
__exportStar(require("./global-exception.filter"), exports);
|
|
18
18
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/filters/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/filters/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4DAA0C"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
1
2
|
export * from './enums';
|
|
2
3
|
export * from './constants';
|
|
3
4
|
export * from './types';
|
|
@@ -10,8 +11,17 @@ export * from './utils/proto-path';
|
|
|
10
11
|
export * from './utils/user.utils';
|
|
11
12
|
export * from './utils/app.utils';
|
|
12
13
|
export * from './utils/health.utils';
|
|
13
|
-
export * from './
|
|
14
|
-
export * from './
|
|
15
|
-
export * from './
|
|
16
|
-
export * from './
|
|
14
|
+
export * from './utils/tracing.utils';
|
|
15
|
+
export * from './utils/tracing.service';
|
|
16
|
+
export * from './utils/tracing.module';
|
|
17
|
+
export * from './utils/grpc-tracing.interceptor';
|
|
18
|
+
export * from './utils/http-tracing.interceptor';
|
|
19
|
+
export * from './utils/grpc-tracing-server.interceptor';
|
|
17
20
|
export * from './resilience/circuit-breaker.service';
|
|
21
|
+
export * from './resilience/resilience.module';
|
|
22
|
+
export * from './utils/filters';
|
|
23
|
+
export * from './utils/interceptors';
|
|
24
|
+
export * from './utils/app-logger';
|
|
25
|
+
export * from './filters';
|
|
26
|
+
export * from './middleware';
|
|
27
|
+
export * from './types/logger.interface';
|