@yolo-croket-dev/core 1.5.1 → 1.5.3

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.
@@ -26,13 +26,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.AmqpManagement = void 0;
27
27
  const msa_logger_1 = __importStar(require("@yolo-croket-dev/msa-logger"));
28
28
  const _1 = require(".");
29
- const { SERVER_NAME } = process.env;
30
29
  const msaLogger = new msa_logger_1.default(msa_logger_1.ServerTypeEnum.SERVICE);
31
30
  class AmqpManagement {
32
31
  constructor(client) {
33
32
  this.client = client;
34
33
  }
35
- paramProcessor({ messagePattern, argParam, options, }) {
34
+ paramProcessor(argParam, options) {
36
35
  const param = { ...argParam };
37
36
  if (!options) {
38
37
  return param;
@@ -43,19 +42,13 @@ class AmqpManagement {
43
42
  if (options.isCreateTraceId) {
44
43
  param.traceId = (0, _1.generateTraceId)();
45
44
  }
46
- /** from 처리 */
47
- param.from = `${SERVER_NAME}: ${messagePattern}`;
48
45
  return param;
49
46
  }
50
47
  async call(funcName, messagePattern, payload, argParam, options) {
51
- const param = this.paramProcessor({
52
- argParam: argParam || {
53
- traceId: (0, _1.generateTraceId)(),
54
- isInternal: true,
55
- },
56
- messagePattern,
57
- options,
58
- });
48
+ const param = this.paramProcessor(argParam || {
49
+ traceId: (0, _1.generateTraceId)(),
50
+ isInternal: true,
51
+ }, options);
59
52
  try {
60
53
  const result = await (0, _1.AmqpHandler)(this.client, messagePattern, {
61
54
  payload,
@@ -72,14 +65,10 @@ class AmqpManagement {
72
65
  return undefined;
73
66
  }
74
67
  onlyPublish(funcName, messagePattern, payload, argParam, options) {
75
- const param = this.paramProcessor({
76
- argParam: argParam || {
77
- traceId: (0, _1.generateTraceId)(),
78
- isInternal: true,
79
- },
80
- options,
81
- messagePattern,
82
- });
68
+ const param = this.paramProcessor(argParam || {
69
+ traceId: (0, _1.generateTraceId)(),
70
+ isInternal: true,
71
+ }, options);
83
72
  this.client.emit(messagePattern, {
84
73
  payload,
85
74
  param,
@@ -5,7 +5,6 @@ const common_1 = require("@nestjs/common");
5
5
  const rxjs_1 = require("rxjs");
6
6
  const msa_logger_1 = require("@yolo-croket-dev/msa-logger");
7
7
  const _1 = require(".");
8
- const { SERVER_NAME } = process.env;
9
8
  const msaLogger = new msa_logger_1.MsaLogger(msa_logger_1.ServerTypeEnum.SERVICE);
10
9
  class HttpExceptionCustom extends common_1.HttpException {
11
10
  constructor(response, status, subMessage, errInfo) {
@@ -17,13 +16,8 @@ class HttpExceptionCustom extends common_1.HttpException {
17
16
  exports.HttpExceptionCustom = HttpExceptionCustom;
18
17
  // eslint-disable-next-line max-len
19
18
  async function AmqpHandler(client, messagePattern, payload) {
20
- var _a, _b, _c, _d;
19
+ var _a, _b, _c;
21
20
  let data;
22
- /** from 처리 */
23
- if (!((_a = payload.param) === null || _a === void 0 ? void 0 : _a.from)) {
24
- // eslint-disable-next-line no-param-reassign
25
- payload.param.from = `${SERVER_NAME}: ${messagePattern}`;
26
- }
27
21
  try {
28
22
  data = await (0, rxjs_1.lastValueFrom)(client.send(messagePattern, payload).pipe());
29
23
  if (data.isError) {
@@ -33,7 +27,7 @@ async function AmqpHandler(client, messagePattern, payload) {
33
27
  * 파일 객체 처리
34
28
  * 다른 서비스에서 이미 처리가 될 수 있음
35
29
  * */
36
- (0, _1.reWriteFileValue)((_b = data === null || data === void 0 ? void 0 : data.arg) === null || _b === void 0 ? void 0 : _b.file);
30
+ (0, _1.reWriteFileValue)((_a = data === null || data === void 0 ? void 0 : data.arg) === null || _a === void 0 ? void 0 : _a.file);
37
31
  const errInfo = data.errInfo ? data.errInfo : {
38
32
  message: data.errMessage,
39
33
  type: data.errType,
@@ -51,14 +45,14 @@ async function AmqpHandler(client, messagePattern, payload) {
51
45
  }
52
46
  catch (err) {
53
47
  if (typeof err === 'string' && err.includes('There is no matching message handler defined in the remote service.')) {
54
- msaLogger.error('NOT_EXISTS_MESSAGE_PATTERN', { traceId: ((_c = payload === null || payload === void 0 ? void 0 : payload.param) === null || _c === void 0 ? void 0 : _c.traceId) || '-' }, { err });
48
+ msaLogger.error('NOT_EXISTS_MESSAGE_PATTERN', { traceId: ((_b = payload === null || payload === void 0 ? void 0 : payload.param) === null || _b === void 0 ? void 0 : _b.traceId) || '-' }, { err });
55
49
  throw new HttpExceptionCustom('해당 메시지 패턴은 존재하지 않습니다.', 404, 'There is no matching message handler defined in the remote service.', {
56
50
  type: 'NOT_EXISTS_MESSAGE_PATTERN',
57
51
  message: '해당 메시지 패턴은 존재하지 않습니다.',
58
52
  });
59
53
  }
60
54
  else {
61
- msaLogger.error('AMQP_HANDLER_ERROR', { traceId: ((_d = payload === null || payload === void 0 ? void 0 : payload.param) === null || _d === void 0 ? void 0 : _d.traceId) || '-' }, { err });
55
+ msaLogger.error('AMQP_HANDLER_ERROR', { traceId: ((_c = payload === null || payload === void 0 ? void 0 : payload.param) === null || _c === void 0 ? void 0 : _c.traceId) || '-' }, { err });
62
56
  throw err;
63
57
  }
64
58
  }
@@ -35,6 +35,7 @@ exports.LoggingServiceInterceptor = void 0;
35
35
  const common_1 = require("@nestjs/common");
36
36
  const msa_logger_1 = __importStar(require("@yolo-croket-dev/msa-logger"));
37
37
  const operators_1 = require("rxjs/operators");
38
+ const { SERVER_NAME } = process.env;
38
39
  const msaLogger = new msa_logger_1.default(msa_logger_1.ServerTypeEnum.SERVICE);
39
40
  const MAX_CUT_LENGTH = 500;
40
41
  let LoggingServiceInterceptor = class LoggingServiceInterceptor {
@@ -69,17 +70,24 @@ let LoggingServiceInterceptor = class LoggingServiceInterceptor {
69
70
  return data;
70
71
  }
71
72
  intercept(context, next) {
72
- var _a;
73
73
  const now = Date.now();
74
74
  // const args = context.getArgs();
75
75
  const rmqContext = context.switchToRpc().getContext();
76
+ const data = context.switchToRpc().getData();
77
+ const pastFrom = data.param.from ? JSON.parse(JSON.stringify(data.param.from)) : '-';
78
+ const pastFroms = data.param.froms ? JSON.parse(JSON.stringify(data.param.froms)) : [pastFrom];
76
79
  const originalMessage = rmqContext.getMessage();
77
80
  const ctx = context.switchToHttp();
78
81
  const request = ctx.getRequest();
79
82
  const originalcontent = originalMessage.content;
80
83
  const content = JSON.parse(originalcontent.toString());
81
84
  const traceId = content.data.param ? content.data.param.traceId : '-';
82
- const from = ((_a = content.data.param) === null || _a === void 0 ? void 0 : _a.from) || '-';
85
+ /** from 변경 */
86
+ const tmpFrom = `${SERVER_NAME}: ${content.pattern}`;
87
+ data.param.from = tmpFrom;
88
+ const tmpFroms = JSON.parse(JSON.stringify(pastFroms));
89
+ tmpFroms.push(tmpFrom);
90
+ data.param.froms = tmpFroms;
83
91
  msaLogger.printInputInterceptorService({
84
92
  traceId,
85
93
  messageBrokerInfo: {
@@ -87,7 +95,10 @@ let LoggingServiceInterceptor = class LoggingServiceInterceptor {
87
95
  payload: JSON.stringify(this.keyCutter(JSON.stringify(request.payload))),
88
96
  },
89
97
  paramInfo: request.param,
90
- traceInfo: { from },
98
+ traceInfo: {
99
+ from: pastFrom,
100
+ froms: pastFroms,
101
+ },
91
102
  });
92
103
  return next.handle()
93
104
  .pipe((0, operators_1.tap)(() => {
@@ -102,7 +113,10 @@ let LoggingServiceInterceptor = class LoggingServiceInterceptor {
102
113
  messagePatten: content.pattern,
103
114
  payload: JSON.stringify(this.keyCutter(JSON.stringify(request.payload))),
104
115
  },
105
- traceInfo: { from },
116
+ traceInfo: {
117
+ from: pastFrom,
118
+ froms: pastFroms,
119
+ },
106
120
  });
107
121
  })).pipe((0, operators_1.catchError)((error) => {
108
122
  msaLogger.printExceptionFliterService({
@@ -117,7 +131,10 @@ let LoggingServiceInterceptor = class LoggingServiceInterceptor {
117
131
  messagePatten: content.pattern,
118
132
  payload: JSON.stringify(this.keyCutter(JSON.stringify(request.payload))),
119
133
  },
120
- traceInfo: { from },
134
+ traceInfo: {
135
+ from: pastFrom,
136
+ froms: pastFroms,
137
+ },
121
138
  });
122
139
  const elapsed = Date.now() - now;
123
140
  msaLogger.printOutService({
@@ -130,7 +147,10 @@ let LoggingServiceInterceptor = class LoggingServiceInterceptor {
130
147
  messagePatten: content.pattern,
131
148
  payload: JSON.stringify(this.keyCutter(JSON.stringify(request.payload))),
132
149
  },
133
- traceInfo: { from },
150
+ traceInfo: {
151
+ from: pastFrom,
152
+ froms: pastFroms,
153
+ },
134
154
  });
135
155
  throw error;
136
156
  }));
@@ -33,6 +33,7 @@ export interface AbstractParam {
33
33
  retryCount?: number;
34
34
  /** 이전 호출자 */
35
35
  from?: string;
36
+ froms?: string[];
36
37
  }
37
38
  export interface File {
38
39
  [key: string]: FileValue | FileValue[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yolo-croket-dev/core",
3
- "version": "1.5.1",
3
+ "version": "1.5.3",
4
4
  "author": "Yolo Co., Ltd.",
5
5
  "description": "Yolo commonization module",
6
6
  "main": "index.js",
@@ -17,7 +17,7 @@
17
17
  "@nestjs/common": "^8.2.3",
18
18
  "@nestjs/microservices": "9.0.8",
19
19
  "@yolo-croket-dev/logger": "^1.0.15",
20
- "@yolo-croket-dev/msa-logger": "^2.1.0",
20
+ "@yolo-croket-dev/msa-logger": "^3.0.1",
21
21
  "@yolo-croket-dev/redis": "^1.0.23",
22
22
  "@yolo-croket-dev/swagger": "^0.0.7",
23
23
  "axios": "^1.1.3",