tiryaq-shared 1.0.0 → 1.1.1
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/error-codes.d.ts +286 -0
- package/dist/error-codes.d.ts.map +1 -0
- package/dist/error-codes.js +235 -0
- package/dist/error-codes.js.map +1 -0
- package/dist/filters/global-exception.filter.d.ts +23 -0
- package/dist/filters/global-exception.filter.d.ts.map +1 -0
- package/dist/filters/global-exception.filter.js +157 -0
- package/dist/filters/global-exception.filter.js.map +1 -0
- package/dist/filters/microservice-exception.filter.d.ts +11 -0
- package/dist/filters/microservice-exception.filter.d.ts.map +1 -0
- package/dist/filters/microservice-exception.filter.js +106 -0
- package/dist/filters/microservice-exception.filter.js.map +1 -0
- package/dist/filters/validation-exception.filter.d.ts +9 -0
- package/dist/filters/validation-exception.filter.d.ts.map +1 -0
- package/dist/filters/validation-exception.filter.js +97 -0
- package/dist/filters/validation-exception.filter.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +101 -4
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/interfaces.js +32 -0
- package/dist/interfaces.js.map +1 -1
- package/dist/message-patterns.d.ts +11 -0
- package/dist/message-patterns.d.ts.map +1 -1
- package/dist/message-patterns.js +14 -0
- package/dist/message-patterns.js.map +1 -1
- package/dist/response-utils.d.ts +52 -0
- package/dist/response-utils.d.ts.map +1 -0
- package/dist/response-utils.js +114 -0
- package/dist/response-utils.js.map +1 -0
- package/package.json +10 -1
package/dist/interfaces.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";AAAA,0CAA0C"}
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";AAAA,0CAA0C;;;AA4C1C,kBAAkB;AAClB,IAAY,QAMX;AAND,WAAY,QAAQ;IAClB,+BAAmB,CAAA;IACnB,6BAAiB,CAAA;IACjB,qCAAyB,CAAA;IACzB,6CAAiC,CAAA;IACjC,2BAAe,CAAA;AACjB,CAAC,EANW,QAAQ,wBAAR,QAAQ,QAMnB;AAED,eAAe;AACf,IAAY,WAmBX;AAnBD,WAAY,WAAW;IACrB,kCAAmB,CAAA;IACnB,8BAAe,CAAA;IACf,8BAAe,CAAA;IACf,4CAA6B,CAAA;IAC7B,8BAAe,CAAA;IACf,kCAAmB,CAAA;IACnB,kCAAmB,CAAA;IACnB,8BAAe,CAAA;IACf,gCAAiB,CAAA;IACjB,8BAAe,CAAA;IACf,gCAAiB,CAAA;IACjB,kCAAmB,CAAA;IACnB,oCAAqB,CAAA;IACrB,wCAAyB,CAAA;IACzB,gCAAiB,CAAA;IACjB,kCAAmB,CAAA;IACnB,kCAAmB,CAAA;IACnB,8BAAe,CAAA;AACjB,CAAC,EAnBW,WAAW,2BAAX,WAAW,QAmBtB"}
|
|
@@ -10,6 +10,17 @@ export declare const AUTH_PATTERNS: {
|
|
|
10
10
|
readonly GET_USER_PROFILE: "user.profile.get";
|
|
11
11
|
readonly GET_USER_ADDRESSES: "user.addresses.get";
|
|
12
12
|
readonly VALIDATE_TOKEN: "auth.token.validate";
|
|
13
|
+
readonly PATIENT_SEND_OTP: "patient.otp.send";
|
|
14
|
+
readonly PATIENT_VERIFY_OTP: "patient.otp.verify";
|
|
15
|
+
readonly PATIENT_RESEND_OTP: "patient.otp.resend";
|
|
16
|
+
readonly PATIENT_CREATE_MPIN: "patient.mpin.create";
|
|
17
|
+
readonly PATIENT_COMPLETE_REGISTRATION: "patient.registration.complete";
|
|
18
|
+
readonly PATIENT_LOGIN_WITH_MPIN: "patient.login.mpin";
|
|
19
|
+
readonly CREATE_SESSION: "auth.session.create";
|
|
20
|
+
readonly GET_SESSION: "auth.session.get";
|
|
21
|
+
readonly UPDATE_SESSION: "auth.session.update";
|
|
22
|
+
readonly INVALIDATE_SESSION: "auth.session.invalidate";
|
|
23
|
+
readonly VALIDATE_SESSION: "auth.session.validate";
|
|
13
24
|
};
|
|
14
25
|
export declare const SETTINGS_PATTERNS: {
|
|
15
26
|
readonly GET_USER_SETTINGS: "settings.user.get";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-patterns.d.ts","sourceRoot":"","sources":["../src/message-patterns.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,aAAa
|
|
1
|
+
{"version":3,"file":"message-patterns.d.ts","sourceRoot":"","sources":["../src/message-patterns.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;CA4BhB,CAAC;AAGX,eAAO,MAAM,iBAAiB;;;;;;CAMpB,CAAC;AAGX,eAAO,MAAM,eAAe;;;;;;;CAOlB,CAAC;AAGX,eAAO,MAAM,iBAAiB;;;;;;;;;;;CAWpB,CAAC;AAGX,eAAO,MAAM,qBAAqB;;;;;;;;;;CAUxB,CAAC;AAGX,eAAO,MAAM,qBAAqB;;;;;;;;;CASxB,CAAC;AAGX,eAAO,MAAM,YAAY;;;;;;;;;;CAUf,CAAC;AAGX,eAAO,MAAM,gBAAgB;;;;;;;;;;CAUnB,CAAC;AAGX,eAAO,MAAM,qBAAqB;;;;;;;;;;CAUxB,CAAC;AAGX,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;CA8BjB,CAAC;AAGX,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;IACjC,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,aAAa,GAAG,OAAO,GAAG,cAAc,GAAG,SAAS,CAAC;IAC3D,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpC,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB,SAAS,EAAE,IAAI,CAAC;CACjB;AAGD,eAAO,MAAM,YAAY;;;;CAIf,CAAC;AAGX,eAAO,MAAM,aAAa;;;;;;;;;;;CAWhB,CAAC"}
|
package/dist/message-patterns.js
CHANGED
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
4
4
|
exports.SERVICE_PORTS = exports.KAFKA_CONFIG = exports.EVENT_PATTERNS = exports.NOTIFICATION_PATTERNS = exports.PAYMENT_PATTERNS = exports.LAB_PATTERNS = exports.TELEMEDICINE_PATTERNS = exports.CONSULTATION_PATTERNS = exports.PHARMACY_PATTERNS = exports.SEARCH_PATTERNS = exports.SETTINGS_PATTERNS = exports.AUTH_PATTERNS = void 0;
|
|
5
5
|
// Auth Service Message Patterns
|
|
6
6
|
exports.AUTH_PATTERNS = {
|
|
7
|
+
// Existing patterns
|
|
7
8
|
USER_REGISTER: 'user.register',
|
|
8
9
|
USER_LOGIN: 'user.login',
|
|
9
10
|
USER_LOGOUT: 'user.logout',
|
|
@@ -15,6 +16,19 @@ exports.AUTH_PATTERNS = {
|
|
|
15
16
|
GET_USER_PROFILE: 'user.profile.get',
|
|
16
17
|
GET_USER_ADDRESSES: 'user.addresses.get',
|
|
17
18
|
VALIDATE_TOKEN: 'auth.token.validate',
|
|
19
|
+
// Patient Registration Flow Patterns
|
|
20
|
+
PATIENT_SEND_OTP: 'patient.otp.send',
|
|
21
|
+
PATIENT_VERIFY_OTP: 'patient.otp.verify',
|
|
22
|
+
PATIENT_RESEND_OTP: 'patient.otp.resend',
|
|
23
|
+
PATIENT_CREATE_MPIN: 'patient.mpin.create',
|
|
24
|
+
PATIENT_COMPLETE_REGISTRATION: 'patient.registration.complete',
|
|
25
|
+
PATIENT_LOGIN_WITH_MPIN: 'patient.login.mpin',
|
|
26
|
+
// Session Management
|
|
27
|
+
CREATE_SESSION: 'auth.session.create',
|
|
28
|
+
GET_SESSION: 'auth.session.get',
|
|
29
|
+
UPDATE_SESSION: 'auth.session.update',
|
|
30
|
+
INVALIDATE_SESSION: 'auth.session.invalidate',
|
|
31
|
+
VALIDATE_SESSION: 'auth.session.validate',
|
|
18
32
|
};
|
|
19
33
|
// Settings Service Message Patterns
|
|
20
34
|
exports.SETTINGS_PATTERNS = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-patterns.js","sourceRoot":"","sources":["../src/message-patterns.ts"],"names":[],"mappings":";AAAA,uDAAuD;;;AAEvD,gCAAgC;AACnB,QAAA,aAAa,GAAG;IAC3B,aAAa,EAAE,eAAe;IAC9B,UAAU,EAAE,YAAY;IACxB,WAAW,EAAE,aAAa;IAC1B,mBAAmB,EAAE,qBAAqB;IAC1C,gBAAgB,EAAE,kBAAkB;IACpC,mBAAmB,EAAE,qBAAqB;IAC1C,mBAAmB,EAAE,qBAAqB;IAC1C,0BAA0B,EAAE,4BAA4B;IACxD,gBAAgB,EAAE,kBAAkB;IACpC,kBAAkB,EAAE,oBAAoB;IACxC,cAAc,EAAE,qBAAqB;
|
|
1
|
+
{"version":3,"file":"message-patterns.js","sourceRoot":"","sources":["../src/message-patterns.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { HttpStatus } from '@nestjs/common';
|
|
2
|
+
import { ApiSuccessResponse, ApiErrorResponse } from './interfaces';
|
|
3
|
+
import { ErrorCode, SuccessCode } from './error-codes';
|
|
4
|
+
/**
|
|
5
|
+
* Utility class for creating standardized API responses
|
|
6
|
+
* Follows DRY and SOLID principles
|
|
7
|
+
*/
|
|
8
|
+
export declare class ResponseUtils {
|
|
9
|
+
/**
|
|
10
|
+
* Create a success response
|
|
11
|
+
*/
|
|
12
|
+
static success<T = any>(data: T, message?: string, statusCode?: HttpStatus, successCode?: SuccessCode): ApiSuccessResponse<T>;
|
|
13
|
+
/**
|
|
14
|
+
* Create an error response
|
|
15
|
+
*/
|
|
16
|
+
static error(message: string, statusCode?: HttpStatus, errorCode?: ErrorCode): ApiErrorResponse;
|
|
17
|
+
/**
|
|
18
|
+
* Create a paginated success response
|
|
19
|
+
*/
|
|
20
|
+
static paginated<T>(data: T[], total: number, page: number, limit: number, message?: string, successCode?: SuccessCode): ApiSuccessResponse<{
|
|
21
|
+
items: T[];
|
|
22
|
+
pagination: {
|
|
23
|
+
total: number;
|
|
24
|
+
page: number;
|
|
25
|
+
limit: number;
|
|
26
|
+
totalPages: number;
|
|
27
|
+
hasNext: boolean;
|
|
28
|
+
hasPrev: boolean;
|
|
29
|
+
};
|
|
30
|
+
}>;
|
|
31
|
+
/**
|
|
32
|
+
* Common success responses
|
|
33
|
+
*/
|
|
34
|
+
static created<T>(data: T, message?: string, successCode?: SuccessCode): ApiSuccessResponse<T>;
|
|
35
|
+
static updated<T>(data: T, message?: string, successCode?: SuccessCode): ApiSuccessResponse<T>;
|
|
36
|
+
static deleted(message?: string, successCode?: SuccessCode): ApiSuccessResponse<null>;
|
|
37
|
+
/**
|
|
38
|
+
* Common error responses
|
|
39
|
+
*/
|
|
40
|
+
static notFound(message?: string, errorCode?: ErrorCode): ApiErrorResponse;
|
|
41
|
+
static unauthorized(message?: string, errorCode?: ErrorCode): ApiErrorResponse;
|
|
42
|
+
static forbidden(message?: string, errorCode?: ErrorCode): ApiErrorResponse;
|
|
43
|
+
static validationError(message?: string, errorCode?: ErrorCode): ApiErrorResponse;
|
|
44
|
+
static internalServerError(message?: string, errorCode?: ErrorCode): ApiErrorResponse;
|
|
45
|
+
static conflict(message?: string, errorCode?: ErrorCode): ApiErrorResponse;
|
|
46
|
+
static tooManyRequests(message?: string, errorCode?: ErrorCode): ApiErrorResponse;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Decorator for wrapping controller methods with standardized responses
|
|
50
|
+
*/
|
|
51
|
+
export declare function StandardResponse(successMessage?: string, successCode?: SuccessCode): (target: any, propertyName: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
52
|
+
//# sourceMappingURL=response-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response-utils.d.ts","sourceRoot":"","sources":["../src/response-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEvD;;;GAGG;AACH,qBAAa,aAAa;IACxB;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,GAAG,EACpB,IAAI,EAAE,CAAC,EACP,OAAO,GAAE,MAA+B,EACxC,UAAU,GAAE,UAA0B,EACtC,WAAW,GAAE,WAAuB,GACnC,kBAAkB,CAAC,CAAC,CAAC;IAUxB;;OAEG;IACH,MAAM,CAAC,KAAK,CACV,OAAO,EAAE,MAAM,EACf,UAAU,GAAE,UAAmC,EAC/C,SAAS,GAAE,SAAqB,GAC/B,gBAAgB;IAUnB;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,CAAC,EAChB,IAAI,EAAE,CAAC,EAAE,EACT,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,MAAsC,EAC/C,WAAW,GAAE,WAAuB,GACnC,kBAAkB,CAAC;QACpB,KAAK,EAAE,CAAC,EAAE,CAAC;QACX,UAAU,EAAE;YACV,KAAK,EAAE,MAAM,CAAC;YACd,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,MAAM,CAAC;YACd,UAAU,EAAE,MAAM,CAAC;YACnB,OAAO,EAAE,OAAO,CAAC;YACjB,OAAO,EAAE,OAAO,CAAC;SAClB,CAAC;KACH,CAAC;IAqBF;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,CAAC,EACd,IAAI,EAAE,CAAC,EACP,OAAO,GAAE,MAAwC,EACjD,WAAW,GAAE,WAAuB,GACnC,kBAAkB,CAAC,CAAC,CAAC;IAIxB,MAAM,CAAC,OAAO,CAAC,CAAC,EACd,IAAI,EAAE,CAAC,EACP,OAAO,GAAE,MAAwC,EACjD,WAAW,GAAE,WAAuB,GACnC,kBAAkB,CAAC,CAAC,CAAC;IAIxB,MAAM,CAAC,OAAO,CACZ,OAAO,GAAE,MAAwC,EACjD,WAAW,GAAE,WAAuB,GACnC,kBAAkB,CAAC,IAAI,CAAC;IAI3B;;OAEG;IACH,MAAM,CAAC,QAAQ,CACb,OAAO,GAAE,MAA6B,EACtC,SAAS,GAAE,SAAqB,GAC/B,gBAAgB;IAInB,MAAM,CAAC,YAAY,CACjB,OAAO,GAAE,MAA8B,EACvC,SAAS,GAAE,SAAqB,GAC/B,gBAAgB;IAInB,MAAM,CAAC,SAAS,CACd,OAAO,GAAE,MAA2B,EACpC,SAAS,GAAE,SAAqB,GAC/B,gBAAgB;IAInB,MAAM,CAAC,eAAe,CACpB,OAAO,GAAE,MAA4B,EACrC,SAAS,GAAE,SAAqB,GAC/B,gBAAgB;IAInB,MAAM,CAAC,mBAAmB,CACxB,OAAO,GAAE,MAAgC,EACzC,SAAS,GAAE,SAAqB,GAC/B,gBAAgB;IAInB,MAAM,CAAC,QAAQ,CACb,OAAO,GAAE,MAA4B,EACrC,SAAS,GAAE,SAAqB,GAC/B,gBAAgB;IAInB,MAAM,CAAC,eAAe,CACpB,OAAO,GAAE,MAA8B,EACvC,SAAS,GAAE,SAAqB,GAC/B,gBAAgB;CAGpB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,cAAc,CAAC,EAAE,MAAM,EACvB,WAAW,CAAC,EAAE,WAAW,IAGvB,QAAQ,GAAG,EACX,cAAc,MAAM,EACpB,YAAY,kBAAkB,wBA4BjC"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ResponseUtils = void 0;
|
|
4
|
+
exports.StandardResponse = StandardResponse;
|
|
5
|
+
const common_1 = require("@nestjs/common");
|
|
6
|
+
/**
|
|
7
|
+
* Utility class for creating standardized API responses
|
|
8
|
+
* Follows DRY and SOLID principles
|
|
9
|
+
*/
|
|
10
|
+
class ResponseUtils {
|
|
11
|
+
/**
|
|
12
|
+
* Create a success response
|
|
13
|
+
*/
|
|
14
|
+
static success(data, message = 'Operation successful', statusCode = common_1.HttpStatus.OK, successCode = 'SUC_001') {
|
|
15
|
+
return {
|
|
16
|
+
status: true,
|
|
17
|
+
status_code: statusCode,
|
|
18
|
+
message,
|
|
19
|
+
success_code: successCode,
|
|
20
|
+
data,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Create an error response
|
|
25
|
+
*/
|
|
26
|
+
static error(message, statusCode = common_1.HttpStatus.BAD_REQUEST, errorCode = 'CMN_003') {
|
|
27
|
+
return {
|
|
28
|
+
status: false,
|
|
29
|
+
status_code: statusCode,
|
|
30
|
+
message,
|
|
31
|
+
error_code: errorCode,
|
|
32
|
+
data: null,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Create a paginated success response
|
|
37
|
+
*/
|
|
38
|
+
static paginated(data, total, page, limit, message = 'Data retrieved successfully', successCode = 'SUC_005') {
|
|
39
|
+
const totalPages = Math.ceil(total / limit);
|
|
40
|
+
return ResponseUtils.success({
|
|
41
|
+
items: data,
|
|
42
|
+
pagination: {
|
|
43
|
+
total,
|
|
44
|
+
page,
|
|
45
|
+
limit,
|
|
46
|
+
totalPages,
|
|
47
|
+
hasNext: page < totalPages,
|
|
48
|
+
hasPrev: page > 1,
|
|
49
|
+
},
|
|
50
|
+
}, message, common_1.HttpStatus.OK, successCode);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Common success responses
|
|
54
|
+
*/
|
|
55
|
+
static created(data, message = 'Resource created successfully', successCode = 'SUC_002') {
|
|
56
|
+
return ResponseUtils.success(data, message, common_1.HttpStatus.CREATED, successCode);
|
|
57
|
+
}
|
|
58
|
+
static updated(data, message = 'Resource updated successfully', successCode = 'SUC_003') {
|
|
59
|
+
return ResponseUtils.success(data, message, common_1.HttpStatus.OK, successCode);
|
|
60
|
+
}
|
|
61
|
+
static deleted(message = 'Resource deleted successfully', successCode = 'SUC_004') {
|
|
62
|
+
return ResponseUtils.success(null, message, common_1.HttpStatus.OK, successCode);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Common error responses
|
|
66
|
+
*/
|
|
67
|
+
static notFound(message = 'Resource not found', errorCode = 'CMN_004') {
|
|
68
|
+
return ResponseUtils.error(message, common_1.HttpStatus.NOT_FOUND, errorCode);
|
|
69
|
+
}
|
|
70
|
+
static unauthorized(message = 'Unauthorized access', errorCode = 'CMN_005') {
|
|
71
|
+
return ResponseUtils.error(message, common_1.HttpStatus.UNAUTHORIZED, errorCode);
|
|
72
|
+
}
|
|
73
|
+
static forbidden(message = 'Access forbidden', errorCode = 'CMN_006') {
|
|
74
|
+
return ResponseUtils.error(message, common_1.HttpStatus.FORBIDDEN, errorCode);
|
|
75
|
+
}
|
|
76
|
+
static validationError(message = 'Validation failed', errorCode = 'CMN_002') {
|
|
77
|
+
return ResponseUtils.error(message, common_1.HttpStatus.BAD_REQUEST, errorCode);
|
|
78
|
+
}
|
|
79
|
+
static internalServerError(message = 'Internal server error', errorCode = 'CMN_001') {
|
|
80
|
+
return ResponseUtils.error(message, common_1.HttpStatus.INTERNAL_SERVER_ERROR, errorCode);
|
|
81
|
+
}
|
|
82
|
+
static conflict(message = 'Resource conflict', errorCode = 'CMN_103') {
|
|
83
|
+
return ResponseUtils.error(message, common_1.HttpStatus.CONFLICT, errorCode);
|
|
84
|
+
}
|
|
85
|
+
static tooManyRequests(message = 'Rate limit exceeded', errorCode = 'CMN_007') {
|
|
86
|
+
return ResponseUtils.error(message, common_1.HttpStatus.TOO_MANY_REQUESTS, errorCode);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
exports.ResponseUtils = ResponseUtils;
|
|
90
|
+
/**
|
|
91
|
+
* Decorator for wrapping controller methods with standardized responses
|
|
92
|
+
*/
|
|
93
|
+
function StandardResponse(successMessage, successCode) {
|
|
94
|
+
return function (target, propertyName, descriptor) {
|
|
95
|
+
const method = descriptor.value;
|
|
96
|
+
descriptor.value = async function (...args) {
|
|
97
|
+
try {
|
|
98
|
+
const result = await method.apply(this, args);
|
|
99
|
+
// If result is already a standardized response, return as is
|
|
100
|
+
if (result && typeof result === 'object' && 'status' in result) {
|
|
101
|
+
return result;
|
|
102
|
+
}
|
|
103
|
+
// Wrap result in standardized response
|
|
104
|
+
return ResponseUtils.success(result, successMessage || 'Operation successful', common_1.HttpStatus.OK, successCode || 'SUC_001');
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
// Let global exception filter handle errors
|
|
108
|
+
throw error;
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
return descriptor;
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=response-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response-utils.js","sourceRoot":"","sources":["../src/response-utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tiryaq-shared",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"description": "Shared types, interfaces, and message patterns for Tiryaq healthcare microservices",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -31,10 +31,19 @@
|
|
|
31
31
|
"url": "https://github.com/tiryaq/shared.git"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
|
+
"@types/express": "^5.0.3",
|
|
34
35
|
"@types/node": "^24.3.0",
|
|
35
36
|
"typescript": "^5.9.2"
|
|
36
37
|
},
|
|
37
38
|
"publishConfig": {
|
|
38
39
|
"access": "public"
|
|
40
|
+
},
|
|
41
|
+
"dependencies": {
|
|
42
|
+
"@nestjs/common": "^11.1.6",
|
|
43
|
+
"@nestjs/core": "^11.1.6",
|
|
44
|
+
"@nestjs/microservices": "^11.1.6",
|
|
45
|
+
"express": "^5.1.0",
|
|
46
|
+
"reflect-metadata": "^0.2.2",
|
|
47
|
+
"rxjs": "^7.8.2"
|
|
39
48
|
}
|
|
40
49
|
}
|