Skip to content

Commit c4698d4

Browse files
committed
fix: message type
1 parent 2eace24 commit c4698d4

File tree

4 files changed

+63
-43
lines changed

4 files changed

+63
-43
lines changed

src/frameworks/shared/decorators/logged-message-pattern.decorator.ts

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,42 @@
11
import { MessagePattern } from '@nestjs/microservices';
22
import { log } from '../utils';
33
import { CollectMethod } from './method-collector.decorator';
4+
import { SubjectFactory } from '@/modules/messaging/domain/usecases/factories/subject.factory';
45

56
/**
67
* Decorator that combines MessagePattern with logging and method collection.
78
* This allows a method to be both a message handler and a collected control.
89
*
9-
* @param subject The message subject pattern
10+
* @param messageType The message subject pattern
11+
* @param action The action of the message
1012
* @param description Optional description for the control registration
1113
*/
12-
export function LoggedMessagePattern(subject: string, description?: string) {
14+
export function LoggedMessagePattern(
15+
messageType: string,
16+
action: string,
17+
description?: string,
18+
) {
1319
return function (
1420
target: any,
1521
propertyKey: string,
1622
descriptor: PropertyDescriptor,
1723
) {
1824
const className = target.constructor.name;
1925

26+
const subject = SubjectFactory.buildSubject(messageType, action);
27+
2028
// Log registration
2129
log.info(
22-
`Registering message pattern for subject: ${subject} in class: ${className}`,
30+
`Registering message pattern for messageType: ${messageType} in class: ${className}`,
2331
);
2432

2533
// Apply the CollectMethod decorator if description is provided
2634
if (description) {
27-
CollectMethod(subject, description)(target, propertyKey, descriptor);
35+
CollectMethod(messageType, description)(target, propertyKey, descriptor);
2836
} else {
2937
// Use a default description if none provided
30-
const defaultDescription = `Handles ${subject} messages`;
31-
CollectMethod(subject, defaultDescription)(
38+
const defaultDescription = `Handles ${messageType} messages`;
39+
CollectMethod(messageType, defaultDescription)(
3240
target,
3341
propertyKey,
3442
descriptor,

src/infrastructure/factory-messaging.controller.ts

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { Body, Type } from '@nestjs/common';
2-
import { SubjectFactory } from '../modules/messaging/domain/usecases/factories/subject.factory';
32
import { BaseUseCase } from '../domain/usecase/base.usecase';
43
import { SuccessResponse } from '../frameworks/shared/responses/success.response';
54
import { IContext } from '../frameworks/shared/interceptors/context.interceptor';
@@ -54,7 +53,11 @@ export function MessagingControllerFactory<
5453
class BaseMessagingController {
5554
public _usecase: BaseUseCase;
5655

57-
@LoggedMessagePattern(SubjectFactory.buildSubject(messageType, 'getAudit'))
56+
@LoggedMessagePattern(
57+
messageType,
58+
'getAudit',
59+
`Get audit of ${messageType} by id`,
60+
)
5861
@ExtendedSerializer(getSerializer)
5962
@RpcAuth(`audit:read@auth`)
6063
@OtelMethodCounter()
@@ -67,7 +70,11 @@ export function MessagingControllerFactory<
6770
);
6871
}
6972

70-
@LoggedMessagePattern(SubjectFactory.buildSubject(messageType, 'getAudits'))
73+
@LoggedMessagePattern(
74+
messageType,
75+
'getAudits',
76+
`Get audits of ${messageType} using pagination`,
77+
)
7178
@RpcUseList(FilterPaginationAuditQueryValidator)
7279
@ExtendedSerializer(ListAuditSerializer)
7380
@RpcAuth(`audit:read@auth`)
@@ -79,7 +86,9 @@ export function MessagingControllerFactory<
7986
}
8087

8188
@LoggedMessagePattern(
82-
SubjectFactory.buildSubject(messageType, 'listDropdown'),
89+
messageType,
90+
'listDropdown',
91+
`Get dropdown list of ${messageType}`,
8392
)
8493
@RpcAuth(`${rolePrefix}:read@auth`)
8594
@OtelMethodCounter()
@@ -90,7 +99,9 @@ export function MessagingControllerFactory<
9099
}
91100

92101
@LoggedMessagePattern(
93-
SubjectFactory.buildSubject(messageType, 'listPagination'),
102+
messageType,
103+
'listPagination',
104+
`Get pagination list of ${messageType}`,
94105
)
95106
@RpcUseList(filterPagination)
96107
@ExtendedSerializer(listSerializer)
@@ -103,7 +114,9 @@ export function MessagingControllerFactory<
103114
}
104115

105116
@LoggedMessagePattern(
106-
SubjectFactory.buildSubject(messageType, 'listCursor'),
117+
messageType,
118+
'listCursor',
119+
`Get cursor list of ${messageType}`,
107120
)
108121
@RpcUseList(filterCursor)
109122
@ExtendedSerializer(listSerializer)
@@ -115,7 +128,7 @@ export function MessagingControllerFactory<
115128
return new SuccessResponse(`${name} fetched successfully`, result, meta);
116129
}
117130

118-
@LoggedMessagePattern(SubjectFactory.buildSubject(messageType, 'upsert'))
131+
@LoggedMessagePattern(messageType, 'upsert', `Upsert ${messageType}`)
119132
@ExtendedSerializer(upsertSerializer)
120133
@RpcAuth(`${rolePrefix}:create@auth`, `${rolePrefix}:update@auth`)
121134
@OtelMethodCounter()
@@ -128,7 +141,7 @@ export function MessagingControllerFactory<
128141
return new SuccessResponse(`${name} save successfully`, result);
129142
}
130143

131-
@LoggedMessagePattern(SubjectFactory.buildSubject(messageType, 'create'))
144+
@LoggedMessagePattern(messageType, 'create', `Create ${messageType}`)
132145
@ExtendedSerializer(createSerializer)
133146
@RpcAuth(`${rolePrefix}:create@auth`)
134147
@OtelMethodCounter()
@@ -141,7 +154,7 @@ export function MessagingControllerFactory<
141154
return new SuccessResponse(`${name} created successfully`, result);
142155
}
143156

144-
@LoggedMessagePattern(SubjectFactory.buildSubject(messageType, 'get'))
157+
@LoggedMessagePattern(messageType, 'get', `Get ${messageType} by id`)
145158
@ExtendedSerializer(getSerializer)
146159
@RpcAuth(`${rolePrefix}:read@auth`)
147160
@OtelMethodCounter()
@@ -154,7 +167,7 @@ export function MessagingControllerFactory<
154167
return new SuccessResponse(`${name} fetched successfully`, result);
155168
}
156169

157-
@LoggedMessagePattern(SubjectFactory.buildSubject(messageType, 'update'))
170+
@LoggedMessagePattern(messageType, 'update', `Update ${messageType} by id`)
158171
@ExtendedSerializer(updateSerializer)
159172
@RpcAuth(`${rolePrefix}:update@auth`)
160173
@OtelMethodCounter()
@@ -168,7 +181,7 @@ export function MessagingControllerFactory<
168181
return new SuccessResponse(`${name} updated successfully`, result);
169182
}
170183

171-
@LoggedMessagePattern(SubjectFactory.buildSubject(messageType, 'delete'))
184+
@LoggedMessagePattern(messageType, 'delete', `Delete ${messageType} by id`)
172185
@ExtendedSerializer(deleteSerializer)
173186
@RpcAuth(`${rolePrefix}:delete@auth`)
174187
@OtelMethodCounter()
@@ -182,7 +195,9 @@ export function MessagingControllerFactory<
182195
}
183196

184197
@LoggedMessagePattern(
185-
SubjectFactory.buildSubject(messageType, 'deleteBatch'),
198+
messageType,
199+
'deleteBatch',
200+
`Delete ${messageType} batch`,
186201
)
187202
@ExtendedSerializer(deleteSerializer)
188203
@RpcAuth(`${rolePrefix}:delete@auth`)

src/modules/messaging/infrastructure/system-control.controller.ts

Lines changed: 20 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { Body, Controller } from '@nestjs/common';
22
import { SystemControlHandler } from '../domain/usecases/handlers/system-control.handler';
3-
import { SubjectFactory } from '../domain/usecases/factories/subject.factory';
43
import { SYSTEM_CONTROL_MESSAGE_TYPE } from '../domain';
54
import {
65
LoggedMessagePattern,
@@ -22,7 +21,8 @@ export class SystemControlController {
2221
constructor(private readonly systemControlHandler: SystemControlHandler) {}
2322

2423
@LoggedMessagePattern(
25-
SubjectFactory.buildSubject(SYSTEM_CONTROL_MESSAGE_TYPE, 'exit'),
24+
SYSTEM_CONTROL_MESSAGE_TYPE,
25+
'exit',
2626
'Shutdown the application',
2727
)
2828
@RpcAuth(`system-control:write@auth`)
@@ -32,10 +32,8 @@ export class SystemControlController {
3232
}
3333

3434
@LoggedMessagePattern(
35-
SubjectFactory.buildSubject(
36-
SYSTEM_CONTROL_MESSAGE_TYPE,
37-
'getConfiguration',
38-
),
35+
SYSTEM_CONTROL_MESSAGE_TYPE,
36+
'getConfiguration',
3937
'Get configuration',
4038
)
4139
@RpcAuth(`system-control:read@auth`)
@@ -47,10 +45,8 @@ export class SystemControlController {
4745
}
4846

4947
@LoggedMessagePattern(
50-
SubjectFactory.buildSubject(
51-
SYSTEM_CONTROL_MESSAGE_TYPE,
52-
'getConfigurationNames',
53-
),
48+
SYSTEM_CONTROL_MESSAGE_TYPE,
49+
'getConfigurationNames',
5450
'Get configuration names',
5551
)
5652
@RpcAuth(`system-control:read@auth`)
@@ -60,10 +56,8 @@ export class SystemControlController {
6056
}
6157

6258
@LoggedMessagePattern(
63-
SubjectFactory.buildSubject(
64-
SYSTEM_CONTROL_MESSAGE_TYPE,
65-
'getConfigurationParameter',
66-
),
59+
SYSTEM_CONTROL_MESSAGE_TYPE,
60+
'getConfigurationParameter',
6761
'Get configuration parameter',
6862
)
6963
@RpcAuth(`system-control:read@auth`)
@@ -75,7 +69,8 @@ export class SystemControlController {
7569
}
7670

7771
@LoggedMessagePattern(
78-
SubjectFactory.buildSubject(SYSTEM_CONTROL_MESSAGE_TYPE, 'getControlList'),
72+
SYSTEM_CONTROL_MESSAGE_TYPE,
73+
'getControlList',
7974
'Get control list',
8075
)
8176
@RpcAuth(`system-control:read@auth`)
@@ -87,7 +82,8 @@ export class SystemControlController {
8782
}
8883

8984
@LoggedMessagePattern(
90-
SubjectFactory.buildSubject(SYSTEM_CONTROL_MESSAGE_TYPE, 'getManifestData'),
85+
SYSTEM_CONTROL_MESSAGE_TYPE,
86+
'getManifestData',
9187
'Get manifest data',
9288
)
9389
@RpcAuth(`system-control:read@auth`)
@@ -97,7 +93,8 @@ export class SystemControlController {
9793
}
9894

9995
@LoggedMessagePattern(
100-
SubjectFactory.buildSubject(SYSTEM_CONTROL_MESSAGE_TYPE, 'getMemoryInfo'),
96+
SYSTEM_CONTROL_MESSAGE_TYPE,
97+
'getMemoryInfo',
10198
'Get memory info',
10299
)
103100
@RpcAuth(`system-control:read@auth`)
@@ -107,7 +104,8 @@ export class SystemControlController {
107104
}
108105

109106
@LoggedMessagePattern(
110-
SubjectFactory.buildSubject(SYSTEM_CONTROL_MESSAGE_TYPE, 'getStatus'),
107+
SYSTEM_CONTROL_MESSAGE_TYPE,
108+
'getStatus',
111109
'Get service status',
112110
)
113111
@RpcAuth(`system-control:read@auth`)
@@ -117,10 +115,8 @@ export class SystemControlController {
117115
}
118116

119117
@LoggedMessagePattern(
120-
SubjectFactory.buildSubject(
121-
SYSTEM_CONTROL_MESSAGE_TYPE,
122-
'getSystemProperties',
123-
),
118+
SYSTEM_CONTROL_MESSAGE_TYPE,
119+
'getSystemProperties',
124120
'Get detailed system info',
125121
)
126122
@RpcAuth(`system-control:read@auth`)
@@ -130,7 +126,8 @@ export class SystemControlController {
130126
}
131127

132128
@LoggedMessagePattern(
133-
SubjectFactory.buildSubject(SYSTEM_CONTROL_MESSAGE_TYPE, 'restart'),
129+
SYSTEM_CONTROL_MESSAGE_TYPE,
130+
'restart',
134131
'Restart the application',
135132
)
136133
@RpcAuth(`system-control:write@auth`)

src/modules/messaging/infrastructure/system-monitor.controller.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { Controller } from '@nestjs/common';
22
import { SystemMonitorHandler } from '../domain/usecases/handlers/system-monitor.handler';
3-
import { SubjectFactory } from '../domain/usecases/factories/subject.factory';
43
import { SYSTEM_MONITOR_MESSAGE_TYPE } from '../domain/usecases/handlers/constant.handler';
54
import { LoggedMessagePattern, RpcExtendedController } from '@/frameworks';
65
import { OtelInstanceCounter, OtelMethodCounter } from 'nestjs-otel';
@@ -12,7 +11,8 @@ export class SystemMonitorController {
1211
constructor(private readonly systemMonitorHandler: SystemMonitorHandler) {}
1312

1413
@LoggedMessagePattern(
15-
SubjectFactory.buildSubject(SYSTEM_MONITOR_MESSAGE_TYPE, 'health'),
14+
SYSTEM_MONITOR_MESSAGE_TYPE,
15+
'health',
1616
'Check the health status of the service',
1717
)
1818
@OtelMethodCounter()

0 commit comments

Comments
 (0)