@fabx.vn/core 1.0.0
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/README.md +270 -0
- package/dist/config/cookie.config.d.ts +3 -0
- package/dist/config/cookie.config.js +7 -0
- package/dist/config/cookie.config.js.map +1 -0
- package/dist/config/cors.config.d.ts +6 -0
- package/dist/config/cors.config.js +15 -0
- package/dist/config/cors.config.js.map +1 -0
- package/dist/config/database.config.d.ts +13 -0
- package/dist/config/database.config.js +17 -0
- package/dist/config/database.config.js.map +1 -0
- package/dist/config/google-oauth.config.d.ts +6 -0
- package/dist/config/google-oauth.config.js +10 -0
- package/dist/config/google-oauth.config.js.map +1 -0
- package/dist/config/internal.config.d.ts +8 -0
- package/dist/config/internal.config.js +15 -0
- package/dist/config/internal.config.js.map +1 -0
- package/dist/config/jwt.config.d.ts +5 -0
- package/dist/config/jwt.config.js +9 -0
- package/dist/config/jwt.config.js.map +1 -0
- package/dist/config/rabbitmq.config.d.ts +19 -0
- package/dist/config/rabbitmq.config.js +25 -0
- package/dist/config/rabbitmq.config.js.map +1 -0
- package/dist/config/redis.config.d.ts +9 -0
- package/dist/config/redis.config.js +13 -0
- package/dist/config/redis.config.js.map +1 -0
- package/dist/constants/http-status.constants.d.ts +106 -0
- package/dist/constants/http-status.constants.js +110 -0
- package/dist/constants/http-status.constants.js.map +1 -0
- package/dist/constants/messages.constants.d.ts +112 -0
- package/dist/constants/messages.constants.js +116 -0
- package/dist/constants/messages.constants.js.map +1 -0
- package/dist/core/core.module.d.ts +2 -0
- package/dist/core/core.module.js +72 -0
- package/dist/core/core.module.js.map +1 -0
- package/dist/core/decorators/current-user.decorator.d.ts +1 -0
- package/dist/core/decorators/current-user.decorator.js +9 -0
- package/dist/core/decorators/current-user.decorator.js.map +1 -0
- package/dist/core/decorators/public.decorator.d.ts +2 -0
- package/dist/core/decorators/public.decorator.js +8 -0
- package/dist/core/decorators/public.decorator.js.map +1 -0
- package/dist/core/decorators/require-permissions.decorator.d.ts +4 -0
- package/dist/core/decorators/require-permissions.decorator.js +11 -0
- package/dist/core/decorators/require-permissions.decorator.js.map +1 -0
- package/dist/core/dtos/api-response.dto.d.ts +10 -0
- package/dist/core/dtos/api-response.dto.js +22 -0
- package/dist/core/dtos/api-response.dto.js.map +1 -0
- package/dist/core/dtos/pagination.dto.d.ts +17 -0
- package/dist/core/dtos/pagination.dto.js +61 -0
- package/dist/core/dtos/pagination.dto.js.map +1 -0
- package/dist/core/filters/http-exception.filter.d.ts +5 -0
- package/dist/core/filters/http-exception.filter.js +47 -0
- package/dist/core/filters/http-exception.filter.js.map +1 -0
- package/dist/core/guards/internal-auth.guard.d.ts +7 -0
- package/dist/core/guards/internal-auth.guard.js +42 -0
- package/dist/core/guards/internal-auth.guard.js.map +1 -0
- package/dist/core/guards/jwt-auth.guard.d.ts +12 -0
- package/dist/core/guards/jwt-auth.guard.js +56 -0
- package/dist/core/guards/jwt-auth.guard.js.map +1 -0
- package/dist/core/guards/permission.guard.d.ts +9 -0
- package/dist/core/guards/permission.guard.js +71 -0
- package/dist/core/guards/permission.guard.js.map +1 -0
- package/dist/core/interceptors/request-context.interceptor.d.ts +8 -0
- package/dist/core/interceptors/request-context.interceptor.js +39 -0
- package/dist/core/interceptors/request-context.interceptor.js.map +1 -0
- package/dist/core/services/cache.service.d.ts +13 -0
- package/dist/core/services/cache.service.js +51 -0
- package/dist/core/services/cache.service.js.map +1 -0
- package/dist/core/services/cookie.service.d.ts +13 -0
- package/dist/core/services/cookie.service.js +50 -0
- package/dist/core/services/cookie.service.js.map +1 -0
- package/dist/core/services/jwt.service.d.ts +37 -0
- package/dist/core/services/jwt.service.js +187 -0
- package/dist/core/services/jwt.service.js.map +1 -0
- package/dist/core/services/permission.service.d.ts +23 -0
- package/dist/core/services/permission.service.js +83 -0
- package/dist/core/services/permission.service.js.map +1 -0
- package/dist/core/services/rabbitmq-publisher.service.d.ts +9 -0
- package/dist/core/services/rabbitmq-publisher.service.js +57 -0
- package/dist/core/services/rabbitmq-publisher.service.js.map +1 -0
- package/dist/core/services/redis.service.d.ts +18 -0
- package/dist/core/services/redis.service.js +66 -0
- package/dist/core/services/redis.service.js.map +1 -0
- package/dist/core/services/request-context.service.d.ts +18 -0
- package/dist/core/services/request-context.service.js +40 -0
- package/dist/core/services/request-context.service.js.map +1 -0
- package/dist/core/services/request-info.service.d.ts +8 -0
- package/dist/core/services/request-info.service.js +32 -0
- package/dist/core/services/request-info.service.js.map +1 -0
- package/dist/core/services/session.service.d.ts +21 -0
- package/dist/core/services/session.service.js +70 -0
- package/dist/core/services/session.service.js.map +1 -0
- package/dist/core/strategies/jwt.strategy.d.ts +7 -0
- package/dist/core/strategies/jwt.strategy.js +38 -0
- package/dist/core/strategies/jwt.strategy.js.map +1 -0
- package/dist/core/subscribers/audit.subscriber.d.ts +8 -0
- package/dist/core/subscribers/audit.subscriber.js +40 -0
- package/dist/core/subscribers/audit.subscriber.js.map +1 -0
- package/dist/core.module.d.ts +2 -0
- package/dist/core.module.js +72 -0
- package/dist/core.module.js.map +1 -0
- package/dist/decorators/current-user.decorator.d.ts +1 -0
- package/dist/decorators/current-user.decorator.js +9 -0
- package/dist/decorators/current-user.decorator.js.map +1 -0
- package/dist/decorators/public.decorator.d.ts +2 -0
- package/dist/decorators/public.decorator.js +8 -0
- package/dist/decorators/public.decorator.js.map +1 -0
- package/dist/decorators/require-permissions.decorator.d.ts +4 -0
- package/dist/decorators/require-permissions.decorator.js +11 -0
- package/dist/decorators/require-permissions.decorator.js.map +1 -0
- package/dist/dtos/api-response.dto.d.ts +10 -0
- package/dist/dtos/api-response.dto.js +22 -0
- package/dist/dtos/api-response.dto.js.map +1 -0
- package/dist/dtos/pagination.dto.d.ts +17 -0
- package/dist/dtos/pagination.dto.js +61 -0
- package/dist/dtos/pagination.dto.js.map +1 -0
- package/dist/filters/http-exception.filter.d.ts +5 -0
- package/dist/filters/http-exception.filter.js +47 -0
- package/dist/filters/http-exception.filter.js.map +1 -0
- package/dist/guards/internal-auth.guard.d.ts +7 -0
- package/dist/guards/internal-auth.guard.js +42 -0
- package/dist/guards/internal-auth.guard.js.map +1 -0
- package/dist/guards/jwt-auth.guard.d.ts +12 -0
- package/dist/guards/jwt-auth.guard.js +56 -0
- package/dist/guards/jwt-auth.guard.js.map +1 -0
- package/dist/guards/permission.guard.d.ts +9 -0
- package/dist/guards/permission.guard.js +71 -0
- package/dist/guards/permission.guard.js.map +1 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.js +80 -0
- package/dist/index.js.map +1 -0
- package/dist/interceptors/request-context.interceptor.d.ts +8 -0
- package/dist/interceptors/request-context.interceptor.js +39 -0
- package/dist/interceptors/request-context.interceptor.js.map +1 -0
- package/dist/libs/axios/axios-client.d.ts +8 -0
- package/dist/libs/axios/axios-client.js +61 -0
- package/dist/libs/axios/axios-client.js.map +1 -0
- package/dist/libs/axios/index.d.ts +1 -0
- package/dist/libs/axios/index.js +8 -0
- package/dist/libs/axios/index.js.map +1 -0
- package/dist/services/cookie.service.d.ts +13 -0
- package/dist/services/cookie.service.js +50 -0
- package/dist/services/cookie.service.js.map +1 -0
- package/dist/services/jwt.service.d.ts +37 -0
- package/dist/services/jwt.service.js +187 -0
- package/dist/services/jwt.service.js.map +1 -0
- package/dist/services/rabbitmq-publisher.service.d.ts +9 -0
- package/dist/services/rabbitmq-publisher.service.js +57 -0
- package/dist/services/rabbitmq-publisher.service.js.map +1 -0
- package/dist/services/redis.service.d.ts +18 -0
- package/dist/services/redis.service.js +66 -0
- package/dist/services/redis.service.js.map +1 -0
- package/dist/services/request-context.service.d.ts +18 -0
- package/dist/services/request-context.service.js +40 -0
- package/dist/services/request-context.service.js.map +1 -0
- package/dist/services/request-info.service.d.ts +8 -0
- package/dist/services/request-info.service.js +32 -0
- package/dist/services/request-info.service.js.map +1 -0
- package/dist/services/session.service.d.ts +21 -0
- package/dist/services/session.service.js +70 -0
- package/dist/services/session.service.js.map +1 -0
- package/dist/strategies/jwt.strategy.d.ts +7 -0
- package/dist/strategies/jwt.strategy.js +38 -0
- package/dist/strategies/jwt.strategy.js.map +1 -0
- package/dist/subscribers/audit.subscriber.d.ts +8 -0
- package/dist/subscribers/audit.subscriber.js +40 -0
- package/dist/subscribers/audit.subscriber.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/utils/date.utils.d.ts +4 -0
- package/dist/utils/date.utils.js +52 -0
- package/dist/utils/date.utils.js.map +1 -0
- package/package.json +52 -0
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SUCCESS_RESPONSES = exports.SUCCESS_MESSAGES = exports.ERROR_RESPONSES = exports.ERROR_MESSAGES = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
exports.ERROR_MESSAGES = {
|
|
6
|
+
EMAIL_ALREADY_EXISTS: "Email đã tồn tại",
|
|
7
|
+
USER_NOT_FOUND: "Không tìm thấy người dùng",
|
|
8
|
+
INVALID_CREDENTIALS: "Thông tin đăng nhập không hợp lệ",
|
|
9
|
+
USER_ALREADY_ACTIVE: "Người dùng đã được kích hoạt",
|
|
10
|
+
USER_ALREADY_INACTIVE: "Người dùng đã bị vô hiệu hóa",
|
|
11
|
+
VALIDATION_ERROR: "Xác thực thất bại",
|
|
12
|
+
UNAUTHORIZED_ACCESS: "Không có quyền truy cập",
|
|
13
|
+
FORBIDDEN_ACCESS: "Truy cập bị cấm",
|
|
14
|
+
RESOURCE_NOT_FOUND: "Không tìm thấy tài nguyên",
|
|
15
|
+
INTERNAL_ERROR: "Lỗi máy chủ nội bộ",
|
|
16
|
+
DUPLICATE_ENTRY: "Bản ghi đã tồn tại",
|
|
17
|
+
};
|
|
18
|
+
exports.ERROR_RESPONSES = {
|
|
19
|
+
EMAIL_CONFLICT: {
|
|
20
|
+
status: common_1.HttpStatus.CONFLICT,
|
|
21
|
+
description: exports.ERROR_MESSAGES.EMAIL_ALREADY_EXISTS,
|
|
22
|
+
},
|
|
23
|
+
USER_NOT_FOUND: {
|
|
24
|
+
status: common_1.HttpStatus.NOT_FOUND,
|
|
25
|
+
description: exports.ERROR_MESSAGES.USER_NOT_FOUND,
|
|
26
|
+
},
|
|
27
|
+
INVALID_CREDENTIALS: {
|
|
28
|
+
status: common_1.HttpStatus.UNAUTHORIZED,
|
|
29
|
+
description: exports.ERROR_MESSAGES.INVALID_CREDENTIALS,
|
|
30
|
+
},
|
|
31
|
+
VALIDATION_ERROR: {
|
|
32
|
+
status: common_1.HttpStatus.BAD_REQUEST,
|
|
33
|
+
description: exports.ERROR_MESSAGES.VALIDATION_ERROR,
|
|
34
|
+
},
|
|
35
|
+
UNAUTHORIZED: {
|
|
36
|
+
status: common_1.HttpStatus.UNAUTHORIZED,
|
|
37
|
+
description: exports.ERROR_MESSAGES.UNAUTHORIZED_ACCESS,
|
|
38
|
+
},
|
|
39
|
+
FORBIDDEN: {
|
|
40
|
+
status: common_1.HttpStatus.FORBIDDEN,
|
|
41
|
+
description: exports.ERROR_MESSAGES.FORBIDDEN_ACCESS,
|
|
42
|
+
},
|
|
43
|
+
NOT_FOUND: {
|
|
44
|
+
status: common_1.HttpStatus.NOT_FOUND,
|
|
45
|
+
description: exports.ERROR_MESSAGES.RESOURCE_NOT_FOUND,
|
|
46
|
+
},
|
|
47
|
+
INTERNAL_ERROR: {
|
|
48
|
+
status: common_1.HttpStatus.INTERNAL_SERVER_ERROR,
|
|
49
|
+
description: exports.ERROR_MESSAGES.INTERNAL_ERROR,
|
|
50
|
+
},
|
|
51
|
+
DUPLICATE_ENTRY: {
|
|
52
|
+
status: common_1.HttpStatus.CONFLICT,
|
|
53
|
+
description: exports.ERROR_MESSAGES.DUPLICATE_ENTRY,
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
exports.SUCCESS_MESSAGES = {
|
|
57
|
+
CREATED_SUCCESSFULLY: "Tạo bản ghi thành công",
|
|
58
|
+
RETRIEVED_SUCCESSFULLY: "Lấy danh sách bản ghi thành công",
|
|
59
|
+
UPDATED_SUCCESSFULLY: "Cập nhật bản ghi thành công",
|
|
60
|
+
DELETED_SUCCESSFULLY: "Xóa bản ghi thành công",
|
|
61
|
+
LOGIN_SUCCESSFUL: "Đăng nhập thành công",
|
|
62
|
+
REGISTERED_SUCCESSFULLY: "Đăng ký người dùng thành công",
|
|
63
|
+
PROFILE_RETRIEVED: "Lấy thông tin người dùng thành công",
|
|
64
|
+
TOKEN_REFRESHED: "Làm mới token thành công",
|
|
65
|
+
EXISTENCE_CHECK: "Kết quả kiểm tra sự tồn tại",
|
|
66
|
+
TOTAL_COUNT: "Tổng số lượng",
|
|
67
|
+
};
|
|
68
|
+
exports.SUCCESS_RESPONSES = {
|
|
69
|
+
CREATED: {
|
|
70
|
+
status: common_1.HttpStatus.CREATED,
|
|
71
|
+
description: exports.SUCCESS_MESSAGES.CREATED_SUCCESSFULLY,
|
|
72
|
+
},
|
|
73
|
+
OK: {
|
|
74
|
+
status: common_1.HttpStatus.OK,
|
|
75
|
+
description: exports.SUCCESS_MESSAGES.RETRIEVED_SUCCESSFULLY,
|
|
76
|
+
},
|
|
77
|
+
UPDATED: {
|
|
78
|
+
status: common_1.HttpStatus.OK,
|
|
79
|
+
description: exports.SUCCESS_MESSAGES.UPDATED_SUCCESSFULLY,
|
|
80
|
+
},
|
|
81
|
+
DELETED: {
|
|
82
|
+
status: common_1.HttpStatus.NO_CONTENT,
|
|
83
|
+
description: exports.SUCCESS_MESSAGES.DELETED_SUCCESSFULLY,
|
|
84
|
+
},
|
|
85
|
+
LOGIN_SUCCESS: {
|
|
86
|
+
status: common_1.HttpStatus.OK,
|
|
87
|
+
description: exports.SUCCESS_MESSAGES.LOGIN_SUCCESSFUL,
|
|
88
|
+
},
|
|
89
|
+
REGISTER_SUCCESS: {
|
|
90
|
+
status: common_1.HttpStatus.CREATED,
|
|
91
|
+
description: exports.SUCCESS_MESSAGES.REGISTERED_SUCCESSFULLY,
|
|
92
|
+
},
|
|
93
|
+
PROFILE_SUCCESS: {
|
|
94
|
+
status: common_1.HttpStatus.OK,
|
|
95
|
+
description: exports.SUCCESS_MESSAGES.PROFILE_RETRIEVED,
|
|
96
|
+
},
|
|
97
|
+
TOKEN_SUCCESS: {
|
|
98
|
+
status: common_1.HttpStatus.OK,
|
|
99
|
+
description: exports.SUCCESS_MESSAGES.TOKEN_REFRESHED,
|
|
100
|
+
},
|
|
101
|
+
EXISTS_CHECK: {
|
|
102
|
+
status: common_1.HttpStatus.OK,
|
|
103
|
+
description: exports.SUCCESS_MESSAGES.EXISTENCE_CHECK,
|
|
104
|
+
},
|
|
105
|
+
COUNT_SUCCESS: {
|
|
106
|
+
status: common_1.HttpStatus.OK,
|
|
107
|
+
description: exports.SUCCESS_MESSAGES.TOTAL_COUNT,
|
|
108
|
+
},
|
|
109
|
+
};
|
|
110
|
+
//# sourceMappingURL=http-status.constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-status.constants.js","sourceRoot":"","sources":["../../src/constants/http-status.constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
export declare const MESSAGES: {
|
|
2
|
+
readonly SUCCESS: "Thành công";
|
|
3
|
+
readonly ERROR: "Lỗi";
|
|
4
|
+
readonly NOT_FOUND: "Không tìm thấy";
|
|
5
|
+
readonly CONFLICT: "Xung đột dữ liệu";
|
|
6
|
+
readonly VALIDATION_ERROR: "Lỗi xác thực";
|
|
7
|
+
readonly VALIDATION: {
|
|
8
|
+
readonly REQUIRED: "Trường này là bắt buộc";
|
|
9
|
+
readonly STRING: "Phải là chuỗi ký tự";
|
|
10
|
+
readonly NUMBER: "Phải là số";
|
|
11
|
+
readonly EMAIL: "Email không hợp lệ";
|
|
12
|
+
readonly EMAIL_REQUIRED: "Email là bắt buộc";
|
|
13
|
+
readonly EMAIL_INVALID: "Vui lòng cung cấp địa chỉ email hợp lệ";
|
|
14
|
+
readonly PASSWORD_REQUIRED: "Mật khẩu là bắt buộc";
|
|
15
|
+
readonly PASSWORD_STRING: "Mật khẩu phải là chuỗi ký tự";
|
|
16
|
+
readonly PASSWORD_MIN_LENGTH: "Mật khẩu phải có ít nhất 6 ký tự";
|
|
17
|
+
readonly MIN_LENGTH: "Tối thiểu {0} ký tự";
|
|
18
|
+
readonly MAX_LENGTH: "Tối đa {0} ký tự";
|
|
19
|
+
readonly MATCHES: "Không đúng định dạng";
|
|
20
|
+
readonly ARRAY: "Phải là mảng";
|
|
21
|
+
readonly OBJECT: "Phải là object";
|
|
22
|
+
readonly ENUM: "Giá trị không hợp lệ";
|
|
23
|
+
readonly BOOLEAN: "Phải là true hoặc false";
|
|
24
|
+
readonly DATE: "Phải là ngày hợp lệ";
|
|
25
|
+
readonly CODE_FORMAT: "Mã phải chứa chữ hoa, số và dấu gạch dưới";
|
|
26
|
+
readonly PAGE_NUMBER: "Trang phải là số";
|
|
27
|
+
readonly PAGE_MIN: "Trang phải ít nhất là 1";
|
|
28
|
+
readonly LIMIT_NUMBER: "Giới hạn phải là số";
|
|
29
|
+
readonly LIMIT_MIN: "Giới hạn phải ít nhất là 1";
|
|
30
|
+
readonly LIMIT_MAX: "Giới hạn không được vượt quá 100";
|
|
31
|
+
readonly ORDER_BY_STRING: "Trường sắp xếp phải là chuỗi ký tự";
|
|
32
|
+
readonly ORDER_STRING: "Thứ tự sắp xếp phải là chuỗi ký tự";
|
|
33
|
+
readonly ORDER_INVALID: "Thứ tự sắp xếp phải là ASC hoặc DESC";
|
|
34
|
+
readonly WORK_STATUS_INVALID: "Trạng thái làm việc không hợp lệ";
|
|
35
|
+
};
|
|
36
|
+
readonly AUTH: {
|
|
37
|
+
readonly LOGIN_SUCCESS: "Đăng nhập thành công";
|
|
38
|
+
readonly LOGOUT_SUCCESS: "Đăng xuất thành công";
|
|
39
|
+
readonly REFRESH_SUCCESS: "Làm mới token thành công";
|
|
40
|
+
readonly REGISTRATION_SUCCESS: "Đăng ký thành công";
|
|
41
|
+
readonly USER_RETRIEVED_SUCCESS: "Lấy thông tin người dùng thành công";
|
|
42
|
+
readonly PASSWORD_CHANGED: "Mật khẩu đã được thay đổi";
|
|
43
|
+
readonly INVALID_CREDENTIALS: "Email hoặc mật khẩu không đúng";
|
|
44
|
+
readonly INVALID_REFRESH_TOKEN: "Refresh token không hợp lệ";
|
|
45
|
+
readonly USER_NOT_FOUND: "Không tìm thấy người dùng";
|
|
46
|
+
readonly CURRENT_PASSWORD_INCORRECT: "Mật khẩu hiện tại không đúng";
|
|
47
|
+
readonly LOGIN_FAILED: "Đăng nhập thất bại";
|
|
48
|
+
readonly LOGOUT_FAILED: "Đăng xuất thất bại";
|
|
49
|
+
readonly REFRESH_FAILED: "Làm mới token thất bại";
|
|
50
|
+
readonly PASSWORD_CHANGE_SUCCESS: "Thay đổi mật khẩu thành công";
|
|
51
|
+
readonly PASSWORD_CHANGE_FAILED: "Thay đổi mật khẩu thất bại";
|
|
52
|
+
readonly ACCOUNT_INACTIVE: "Tài khoản không được phép đăng nhập. Vui lòng liên hệ quản trị viên.";
|
|
53
|
+
readonly NO_TOKEN: "Không có token xác thực";
|
|
54
|
+
readonly INVALID_TOKEN: "Token không hợp lệ hoặc đã hết hạn";
|
|
55
|
+
readonly TOKEN_REVOKED: "Token đã bị thu hồi";
|
|
56
|
+
readonly INSUFFICIENT_PERMISSIONS: "Không có quyền truy cập";
|
|
57
|
+
readonly EMAIL_NOT_VERIFIED: "Email chưa được xác thực. Vui lòng xác thực email trước khi đăng nhập";
|
|
58
|
+
readonly EMAIL_ALREADY_EXISTS: "Email đã tồn tại";
|
|
59
|
+
readonly AUTHENTICATION_FAILED: "Xác thực thất bại";
|
|
60
|
+
readonly INTERNAL_SERVER_ERROR: "Lỗi hệ thống";
|
|
61
|
+
readonly USER_NOT_FOUND_IN_GOOGLE_OAUTH: "Không tìm thấy người dùng trong dữ liệu Google OAuth";
|
|
62
|
+
};
|
|
63
|
+
readonly EMAIL_VERIFICATION: {
|
|
64
|
+
readonly INVALID_OR_EXPIRED_TOKEN: "Token xác thực email không hợp lệ hoặc đã hết hạn";
|
|
65
|
+
readonly EMAIL_ALREADY_VERIFIED: "Email đã được xác thực";
|
|
66
|
+
readonly EMAIL_VERIFIED_SUCCESS: "Xác thực email thành công";
|
|
67
|
+
};
|
|
68
|
+
readonly PASSWORD_RESET: {
|
|
69
|
+
readonly INVALID_OR_EXPIRED_TOKEN: "Token đặt lại mật khẩu không hợp lệ hoặc đã hết hạn";
|
|
70
|
+
readonly TOKEN_EXPIRED: "Token đặt lại mật khẩu đã hết hạn";
|
|
71
|
+
readonly REQUEST_SENT_SUCCESS: "Yêu cầu đặt lại mật khẩu đã được gửi thành công";
|
|
72
|
+
readonly TOKEN_VALID: "Token hợp lệ";
|
|
73
|
+
readonly RESET_SUCCESS: "Đặt lại mật khẩu thành công";
|
|
74
|
+
};
|
|
75
|
+
readonly USER: {
|
|
76
|
+
readonly EMAIL_ALREADY_EXISTS: "Email đã tồn tại";
|
|
77
|
+
readonly USER_WITH_EMAIL_EXISTS: "Người dùng với email này đã tồn tại";
|
|
78
|
+
readonly CREATED_SUCCESS: "Tạo người dùng thành công";
|
|
79
|
+
};
|
|
80
|
+
readonly TWO_FACTOR_AUTH: {
|
|
81
|
+
readonly ALREADY_SETUP: "Xác thực 2 bước đã được thiết lập cho phương thức này";
|
|
82
|
+
readonly METHOD_NOT_FOUND: "Phương thức xác thực 2 bước không tìm thấy hoặc chưa được thiết lập";
|
|
83
|
+
readonly METHOD_NOT_FOUND_FOR_USER: "Phương thức xác thực 2 bước không tìm thấy cho người dùng";
|
|
84
|
+
readonly INVALID_CODE: "Mã xác thực 2 bước không hợp lệ";
|
|
85
|
+
readonly SETUP_INITIATED_SUCCESS: "Khởi tạo thiết lập xác thực 2 bước thành công";
|
|
86
|
+
readonly VERIFICATION_SUCCESS: "Xác thực 2 bước thành công";
|
|
87
|
+
readonly METHODS_RETRIEVED_SUCCESS: "Lấy danh sách phương thức xác thực 2 bước thành công";
|
|
88
|
+
readonly METHOD_REMOVED_SUCCESS: "Xóa phương thức xác thực 2 bước thành công";
|
|
89
|
+
};
|
|
90
|
+
readonly GOOGLE_OAUTH: {
|
|
91
|
+
readonly REDIRECT_TO_LINK_ACCOUNT: "Chuyển hướng đến Google OAuth để liên kết tài khoản";
|
|
92
|
+
readonly NO_EMAIL_IN_PROFILE: "Không tìm thấy email trong hồ sơ Google";
|
|
93
|
+
};
|
|
94
|
+
readonly JWT: {
|
|
95
|
+
readonly INVALID_TOKEN_SIGNATURE: "Chữ ký token không hợp lệ";
|
|
96
|
+
readonly TOKEN_VALIDATION_FAILED: "Xác thực token thất bại";
|
|
97
|
+
};
|
|
98
|
+
readonly INTERNAL_AUTH: {
|
|
99
|
+
readonly MISSING_OR_INVALID_HEADER: "Thiếu hoặc không hợp lệ header xác thực";
|
|
100
|
+
readonly MISSING_INTERNAL_TOKEN: "Thiếu token nội bộ";
|
|
101
|
+
readonly INVALID_OR_EXPIRED_INTERNAL_TOKEN: "Token nội bộ không hợp lệ hoặc đã hết hạn";
|
|
102
|
+
};
|
|
103
|
+
readonly USER_MANAGEMENT: {
|
|
104
|
+
readonly FAILED_TO_GET_USER: "Không thể lấy thông tin người dùng từ User Management Service";
|
|
105
|
+
};
|
|
106
|
+
readonly API: {
|
|
107
|
+
readonly SUCCESS: "Thành công";
|
|
108
|
+
readonly ERROR: "Lỗi";
|
|
109
|
+
readonly INTERNAL_SERVER_ERROR: "Lỗi hệ thống nội bộ";
|
|
110
|
+
readonly UNEXPECTED_ERROR: "Đã xảy ra lỗi không mong muốn";
|
|
111
|
+
};
|
|
112
|
+
};
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MESSAGES = void 0;
|
|
4
|
+
exports.MESSAGES = {
|
|
5
|
+
SUCCESS: "Thành công",
|
|
6
|
+
ERROR: "Lỗi",
|
|
7
|
+
NOT_FOUND: "Không tìm thấy",
|
|
8
|
+
CONFLICT: "Xung đột dữ liệu",
|
|
9
|
+
VALIDATION_ERROR: "Lỗi xác thực",
|
|
10
|
+
VALIDATION: {
|
|
11
|
+
REQUIRED: "Trường này là bắt buộc",
|
|
12
|
+
STRING: "Phải là chuỗi ký tự",
|
|
13
|
+
NUMBER: "Phải là số",
|
|
14
|
+
EMAIL: "Email không hợp lệ",
|
|
15
|
+
EMAIL_REQUIRED: "Email là bắt buộc",
|
|
16
|
+
EMAIL_INVALID: "Vui lòng cung cấp địa chỉ email hợp lệ",
|
|
17
|
+
PASSWORD_REQUIRED: "Mật khẩu là bắt buộc",
|
|
18
|
+
PASSWORD_STRING: "Mật khẩu phải là chuỗi ký tự",
|
|
19
|
+
PASSWORD_MIN_LENGTH: "Mật khẩu phải có ít nhất 6 ký tự",
|
|
20
|
+
MIN_LENGTH: "Tối thiểu {0} ký tự",
|
|
21
|
+
MAX_LENGTH: "Tối đa {0} ký tự",
|
|
22
|
+
MATCHES: "Không đúng định dạng",
|
|
23
|
+
ARRAY: "Phải là mảng",
|
|
24
|
+
OBJECT: "Phải là object",
|
|
25
|
+
ENUM: "Giá trị không hợp lệ",
|
|
26
|
+
BOOLEAN: "Phải là true hoặc false",
|
|
27
|
+
DATE: "Phải là ngày hợp lệ",
|
|
28
|
+
CODE_FORMAT: "Mã phải chứa chữ hoa, số và dấu gạch dưới",
|
|
29
|
+
PAGE_NUMBER: "Trang phải là số",
|
|
30
|
+
PAGE_MIN: "Trang phải ít nhất là 1",
|
|
31
|
+
LIMIT_NUMBER: "Giới hạn phải là số",
|
|
32
|
+
LIMIT_MIN: "Giới hạn phải ít nhất là 1",
|
|
33
|
+
LIMIT_MAX: "Giới hạn không được vượt quá 100",
|
|
34
|
+
ORDER_BY_STRING: "Trường sắp xếp phải là chuỗi ký tự",
|
|
35
|
+
ORDER_STRING: "Thứ tự sắp xếp phải là chuỗi ký tự",
|
|
36
|
+
ORDER_INVALID: "Thứ tự sắp xếp phải là ASC hoặc DESC",
|
|
37
|
+
WORK_STATUS_INVALID: "Trạng thái làm việc không hợp lệ",
|
|
38
|
+
},
|
|
39
|
+
AUTH: {
|
|
40
|
+
LOGIN_SUCCESS: "Đăng nhập thành công",
|
|
41
|
+
LOGOUT_SUCCESS: "Đăng xuất thành công",
|
|
42
|
+
REFRESH_SUCCESS: "Làm mới token thành công",
|
|
43
|
+
REGISTRATION_SUCCESS: "Đăng ký thành công",
|
|
44
|
+
USER_RETRIEVED_SUCCESS: "Lấy thông tin người dùng thành công",
|
|
45
|
+
PASSWORD_CHANGED: "Mật khẩu đã được thay đổi",
|
|
46
|
+
INVALID_CREDENTIALS: "Email hoặc mật khẩu không đúng",
|
|
47
|
+
INVALID_REFRESH_TOKEN: "Refresh token không hợp lệ",
|
|
48
|
+
USER_NOT_FOUND: "Không tìm thấy người dùng",
|
|
49
|
+
CURRENT_PASSWORD_INCORRECT: "Mật khẩu hiện tại không đúng",
|
|
50
|
+
LOGIN_FAILED: "Đăng nhập thất bại",
|
|
51
|
+
LOGOUT_FAILED: "Đăng xuất thất bại",
|
|
52
|
+
REFRESH_FAILED: "Làm mới token thất bại",
|
|
53
|
+
PASSWORD_CHANGE_SUCCESS: "Thay đổi mật khẩu thành công",
|
|
54
|
+
PASSWORD_CHANGE_FAILED: "Thay đổi mật khẩu thất bại",
|
|
55
|
+
ACCOUNT_INACTIVE: "Tài khoản không được phép đăng nhập. Vui lòng liên hệ quản trị viên.",
|
|
56
|
+
NO_TOKEN: "Không có token xác thực",
|
|
57
|
+
INVALID_TOKEN: "Token không hợp lệ hoặc đã hết hạn",
|
|
58
|
+
TOKEN_REVOKED: "Token đã bị thu hồi",
|
|
59
|
+
INSUFFICIENT_PERMISSIONS: "Không có quyền truy cập",
|
|
60
|
+
EMAIL_NOT_VERIFIED: "Email chưa được xác thực. Vui lòng xác thực email trước khi đăng nhập",
|
|
61
|
+
EMAIL_ALREADY_EXISTS: "Email đã tồn tại",
|
|
62
|
+
AUTHENTICATION_FAILED: "Xác thực thất bại",
|
|
63
|
+
INTERNAL_SERVER_ERROR: "Lỗi hệ thống",
|
|
64
|
+
USER_NOT_FOUND_IN_GOOGLE_OAUTH: "Không tìm thấy người dùng trong dữ liệu Google OAuth",
|
|
65
|
+
},
|
|
66
|
+
EMAIL_VERIFICATION: {
|
|
67
|
+
INVALID_OR_EXPIRED_TOKEN: "Token xác thực email không hợp lệ hoặc đã hết hạn",
|
|
68
|
+
EMAIL_ALREADY_VERIFIED: "Email đã được xác thực",
|
|
69
|
+
EMAIL_VERIFIED_SUCCESS: "Xác thực email thành công",
|
|
70
|
+
},
|
|
71
|
+
PASSWORD_RESET: {
|
|
72
|
+
INVALID_OR_EXPIRED_TOKEN: "Token đặt lại mật khẩu không hợp lệ hoặc đã hết hạn",
|
|
73
|
+
TOKEN_EXPIRED: "Token đặt lại mật khẩu đã hết hạn",
|
|
74
|
+
REQUEST_SENT_SUCCESS: "Yêu cầu đặt lại mật khẩu đã được gửi thành công",
|
|
75
|
+
TOKEN_VALID: "Token hợp lệ",
|
|
76
|
+
RESET_SUCCESS: "Đặt lại mật khẩu thành công",
|
|
77
|
+
},
|
|
78
|
+
USER: {
|
|
79
|
+
EMAIL_ALREADY_EXISTS: "Email đã tồn tại",
|
|
80
|
+
USER_WITH_EMAIL_EXISTS: "Người dùng với email này đã tồn tại",
|
|
81
|
+
CREATED_SUCCESS: "Tạo người dùng thành công",
|
|
82
|
+
},
|
|
83
|
+
TWO_FACTOR_AUTH: {
|
|
84
|
+
ALREADY_SETUP: "Xác thực 2 bước đã được thiết lập cho phương thức này",
|
|
85
|
+
METHOD_NOT_FOUND: "Phương thức xác thực 2 bước không tìm thấy hoặc chưa được thiết lập",
|
|
86
|
+
METHOD_NOT_FOUND_FOR_USER: "Phương thức xác thực 2 bước không tìm thấy cho người dùng",
|
|
87
|
+
INVALID_CODE: "Mã xác thực 2 bước không hợp lệ",
|
|
88
|
+
SETUP_INITIATED_SUCCESS: "Khởi tạo thiết lập xác thực 2 bước thành công",
|
|
89
|
+
VERIFICATION_SUCCESS: "Xác thực 2 bước thành công",
|
|
90
|
+
METHODS_RETRIEVED_SUCCESS: "Lấy danh sách phương thức xác thực 2 bước thành công",
|
|
91
|
+
METHOD_REMOVED_SUCCESS: "Xóa phương thức xác thực 2 bước thành công",
|
|
92
|
+
},
|
|
93
|
+
GOOGLE_OAUTH: {
|
|
94
|
+
REDIRECT_TO_LINK_ACCOUNT: "Chuyển hướng đến Google OAuth để liên kết tài khoản",
|
|
95
|
+
NO_EMAIL_IN_PROFILE: "Không tìm thấy email trong hồ sơ Google",
|
|
96
|
+
},
|
|
97
|
+
JWT: {
|
|
98
|
+
INVALID_TOKEN_SIGNATURE: "Chữ ký token không hợp lệ",
|
|
99
|
+
TOKEN_VALIDATION_FAILED: "Xác thực token thất bại",
|
|
100
|
+
},
|
|
101
|
+
INTERNAL_AUTH: {
|
|
102
|
+
MISSING_OR_INVALID_HEADER: "Thiếu hoặc không hợp lệ header xác thực",
|
|
103
|
+
MISSING_INTERNAL_TOKEN: "Thiếu token nội bộ",
|
|
104
|
+
INVALID_OR_EXPIRED_INTERNAL_TOKEN: "Token nội bộ không hợp lệ hoặc đã hết hạn",
|
|
105
|
+
},
|
|
106
|
+
USER_MANAGEMENT: {
|
|
107
|
+
FAILED_TO_GET_USER: "Không thể lấy thông tin người dùng từ User Management Service",
|
|
108
|
+
},
|
|
109
|
+
API: {
|
|
110
|
+
SUCCESS: "Thành công",
|
|
111
|
+
ERROR: "Lỗi",
|
|
112
|
+
INTERNAL_SERVER_ERROR: "Lỗi hệ thống nội bộ",
|
|
113
|
+
UNEXPECTED_ERROR: "Đã xảy ra lỗi không mong muốn",
|
|
114
|
+
},
|
|
115
|
+
};
|
|
116
|
+
//# sourceMappingURL=messages.constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.constants.js","sourceRoot":"","sources":["../../src/constants/messages.constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.CoreModule = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const passport_1 = require("@nestjs/passport");
|
|
12
|
+
const jwt_1 = require("@nestjs/jwt");
|
|
13
|
+
const core_1 = require("@nestjs/core");
|
|
14
|
+
const jwt_config_1 = require("@config/jwt.config");
|
|
15
|
+
const request_info_service_1 = require("@core/services/request-info.service");
|
|
16
|
+
const jwt_service_1 = require("@core/services/jwt.service");
|
|
17
|
+
const session_service_1 = require("@core/services/session.service");
|
|
18
|
+
const redis_service_1 = require("@core/services/redis.service");
|
|
19
|
+
const rabbitmq_publisher_service_1 = require("@core/services/rabbitmq-publisher.service");
|
|
20
|
+
const jwt_strategy_1 = require("@core/strategies/jwt.strategy");
|
|
21
|
+
const jwt_auth_guard_1 = require("@core/guards/jwt-auth.guard");
|
|
22
|
+
const internal_auth_guard_1 = require("@core/guards/internal-auth.guard");
|
|
23
|
+
const request_context_interceptor_1 = require("@core/interceptors/request-context.interceptor");
|
|
24
|
+
const audit_subscriber_1 = require("@core/subscribers/audit.subscriber");
|
|
25
|
+
let CoreModule = class CoreModule {
|
|
26
|
+
};
|
|
27
|
+
exports.CoreModule = CoreModule;
|
|
28
|
+
exports.CoreModule = CoreModule = __decorate([
|
|
29
|
+
(0, common_1.Global)(),
|
|
30
|
+
(0, common_1.Module)({
|
|
31
|
+
imports: [
|
|
32
|
+
passport_1.PassportModule,
|
|
33
|
+
jwt_1.JwtModule.registerAsync({
|
|
34
|
+
global: true,
|
|
35
|
+
useFactory: () => ({
|
|
36
|
+
secret: jwt_config_1.jwtConfig.secret,
|
|
37
|
+
signOptions: {
|
|
38
|
+
expiresIn: jwt_config_1.jwtConfig.expiresIn,
|
|
39
|
+
},
|
|
40
|
+
}),
|
|
41
|
+
}),
|
|
42
|
+
],
|
|
43
|
+
providers: [
|
|
44
|
+
request_info_service_1.RequestInfoService,
|
|
45
|
+
jwt_service_1.CoreJwtService,
|
|
46
|
+
session_service_1.SessionService,
|
|
47
|
+
redis_service_1.RedisService,
|
|
48
|
+
rabbitmq_publisher_service_1.RabbitMQPublisher,
|
|
49
|
+
jwt_strategy_1.JwtStrategy,
|
|
50
|
+
jwt_auth_guard_1.JwtAuthGuard,
|
|
51
|
+
internal_auth_guard_1.InternalAuthGuard,
|
|
52
|
+
request_context_interceptor_1.RequestContextInterceptor,
|
|
53
|
+
{
|
|
54
|
+
provide: core_1.APP_INTERCEPTOR,
|
|
55
|
+
useClass: request_context_interceptor_1.RequestContextInterceptor,
|
|
56
|
+
},
|
|
57
|
+
audit_subscriber_1.AuditSubscriber,
|
|
58
|
+
],
|
|
59
|
+
exports: [
|
|
60
|
+
request_info_service_1.RequestInfoService,
|
|
61
|
+
jwt_service_1.CoreJwtService,
|
|
62
|
+
session_service_1.SessionService,
|
|
63
|
+
redis_service_1.RedisService,
|
|
64
|
+
rabbitmq_publisher_service_1.RabbitMQPublisher,
|
|
65
|
+
jwt_strategy_1.JwtStrategy,
|
|
66
|
+
jwt_auth_guard_1.JwtAuthGuard,
|
|
67
|
+
internal_auth_guard_1.InternalAuthGuard,
|
|
68
|
+
request_context_interceptor_1.RequestContextInterceptor,
|
|
69
|
+
],
|
|
70
|
+
})
|
|
71
|
+
], CoreModule);
|
|
72
|
+
//# sourceMappingURL=core.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.module.js","sourceRoot":"","sources":["../../src/core/core.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAgD;AAChD,+CAAkD;AAClD,qCAAwC;AACxC,uCAA+C;AAC/C,mDAA+C;AAG/C,8EAAyE;AACzE,4DAA4D;AAC5D,oEAAgE;AAChE,gEAA4D;AAC5D,0FAA8E;AAG9E,gEAA4D;AAG5D,gEAA2D;AAC3D,0EAAqE;AAGrE,gGAA2F;AAG3F,yEAAqE;AAqD9D,IAAM,UAAU,GAAhB,MAAM,UAAU;CAAG,CAAA;AAAb,gCAAU;qBAAV,UAAU;IAnDtB,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,yBAAc;YACd,eAAS,CAAC,aAAa,CAAC;gBACtB,MAAM,EAAE,IAAI;gBACZ,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;oBACjB,MAAM,EAAE,sBAAS,CAAC,MAAM;oBACxB,WAAW,EAAE;wBACX,SAAS,EAAE,sBAAS,CAAC,SAAS;qBAC/B;iBACF,CAAC;aACH,CAAC;SACH;QACD,SAAS,EAAE;YAET,yCAAkB;YAClB,4BAAc;YACd,gCAAc;YACd,4BAAY;YACZ,8CAAiB;YAEjB,0BAAW;YAEX,6BAAY;YACZ,uCAAiB;YAEjB,uDAAyB;YACzB;gBACE,OAAO,EAAE,sBAAe;gBACxB,QAAQ,EAAE,uDAAyB;aACpC;YAED,kCAAe;SAChB;QACD,OAAO,EAAE;YAEP,yCAAkB;YAClB,4BAAc;YACd,gCAAc;YACd,4BAAY;YACZ,8CAAiB;YAEjB,0BAAW;YAEX,6BAAY;YACZ,uCAAiB;YAEjB,uDAAyB;SAC1B;KACF,CAAC;GACW,UAAU,CAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const CurrentUser: (...dataOrPipes: unknown[]) => ParameterDecorator;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CurrentUser = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
exports.CurrentUser = (0, common_1.createParamDecorator)((data, ctx) => {
|
|
6
|
+
const request = ctx.switchToHttp().getRequest();
|
|
7
|
+
return request.user;
|
|
8
|
+
});
|
|
9
|
+
//# sourceMappingURL=current-user.decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"current-user.decorator.js","sourceRoot":"","sources":["../../../src/core/decorators/current-user.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAAwE;AAE3D,QAAA,WAAW,GAAG,IAAA,6BAAoB,EAC7C,CAAC,IAAa,EAAE,GAAqB,EAAE,EAAE;IACvC,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;IAChD,OAAO,OAAO,CAAC,IAAI,CAAC;AACtB,CAAC,CACF,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Public = exports.IS_PUBLIC_KEY = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
exports.IS_PUBLIC_KEY = 'isPublic';
|
|
6
|
+
const Public = () => (0, common_1.SetMetadata)(exports.IS_PUBLIC_KEY, true);
|
|
7
|
+
exports.Public = Public;
|
|
8
|
+
//# sourceMappingURL=public.decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public.decorator.js","sourceRoot":"","sources":["../../../src/core/decorators/public.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAA6C;AAEhC,QAAA,aAAa,GAAG,UAAU,CAAC;AACjC,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,IAAA,oBAAW,EAAC,qBAAa,EAAE,IAAI,CAAC,CAAC;AAAhD,QAAA,MAAM,UAA0C"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const PERMISSIONS_KEY = "permissions";
|
|
2
|
+
export declare const ANY_PERMISSIONS_KEY = "any_permissions";
|
|
3
|
+
export declare const RequirePermissions: (permissions: string[]) => import("@nestjs/common").CustomDecorator<string>;
|
|
4
|
+
export declare const RequireAnyPermission: (permissions: string[]) => import("@nestjs/common").CustomDecorator<string>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RequireAnyPermission = exports.RequirePermissions = exports.ANY_PERMISSIONS_KEY = exports.PERMISSIONS_KEY = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
exports.PERMISSIONS_KEY = "permissions";
|
|
6
|
+
exports.ANY_PERMISSIONS_KEY = "any_permissions";
|
|
7
|
+
const RequirePermissions = (permissions) => (0, common_1.SetMetadata)(exports.PERMISSIONS_KEY, permissions);
|
|
8
|
+
exports.RequirePermissions = RequirePermissions;
|
|
9
|
+
const RequireAnyPermission = (permissions) => (0, common_1.SetMetadata)(exports.ANY_PERMISSIONS_KEY, permissions);
|
|
10
|
+
exports.RequireAnyPermission = RequireAnyPermission;
|
|
11
|
+
//# sourceMappingURL=require-permissions.decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"require-permissions.decorator.js","sourceRoot":"","sources":["../../../src/core/decorators/require-permissions.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAA6C;AAEhC,QAAA,eAAe,GAAG,aAAa,CAAC;AAChC,QAAA,mBAAmB,GAAG,iBAAiB,CAAC;AAQ9C,MAAM,kBAAkB,GAAG,CAAC,WAAqB,EAAE,EAAE,CAC1D,IAAA,oBAAW,EAAC,uBAAe,EAAE,WAAW,CAAC,CAAC;AAD/B,QAAA,kBAAkB,sBACa;AAQrC,MAAM,oBAAoB,GAAG,CAAC,WAAqB,EAAE,EAAE,CAC5D,IAAA,oBAAW,EAAC,2BAAmB,EAAE,WAAW,CAAC,CAAC;AADnC,QAAA,oBAAoB,wBACe"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare class ApiResponseDto<T = any> {
|
|
2
|
+
success: boolean;
|
|
3
|
+
message: string;
|
|
4
|
+
data?: T;
|
|
5
|
+
timestamp: string;
|
|
6
|
+
statusCode: number;
|
|
7
|
+
constructor(success: boolean, message: string, data?: T, statusCode?: number);
|
|
8
|
+
static success<T>(data?: T, message?: string): ApiResponseDto<T>;
|
|
9
|
+
static error(message?: string, statusCode?: number): ApiResponseDto;
|
|
10
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ApiResponseDto = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const messages_constants_1 = require("@constants/messages.constants");
|
|
6
|
+
class ApiResponseDto {
|
|
7
|
+
constructor(success, message, data, statusCode = common_1.HttpStatus.OK) {
|
|
8
|
+
this.success = success;
|
|
9
|
+
this.message = message;
|
|
10
|
+
this.data = data;
|
|
11
|
+
this.statusCode = statusCode;
|
|
12
|
+
this.timestamp = new Date().toISOString();
|
|
13
|
+
}
|
|
14
|
+
static success(data, message = messages_constants_1.MESSAGES.API.SUCCESS) {
|
|
15
|
+
return new ApiResponseDto(true, message, data, common_1.HttpStatus.OK);
|
|
16
|
+
}
|
|
17
|
+
static error(message = messages_constants_1.MESSAGES.API.ERROR, statusCode = common_1.HttpStatus.BAD_REQUEST) {
|
|
18
|
+
return new ApiResponseDto(false, message, null, statusCode);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.ApiResponseDto = ApiResponseDto;
|
|
22
|
+
//# sourceMappingURL=api-response.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-response.dto.js","sourceRoot":"","sources":["../../../src/core/dtos/api-response.dto.ts"],"names":[],"mappings":";;;AAAA,2CAA4C;AAC5C,sEAAyD;AAEzD,MAAa,cAAc;IAOzB,YACE,OAAgB,EAChB,OAAe,EACf,IAAQ,EACR,aAAqB,mBAAU,CAAC,EAAE;QAElC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC5C,CAAC;IAED,MAAM,CAAC,OAAO,CACZ,IAAQ,EACR,UAAkB,6BAAQ,CAAC,GAAG,CAAC,OAAO;QAEtC,OAAO,IAAI,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,mBAAU,CAAC,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,CAAC,KAAK,CACV,UAAkB,6BAAQ,CAAC,GAAG,CAAC,KAAK,EACpC,aAAqB,mBAAU,CAAC,WAAW;QAE3C,OAAO,IAAI,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAC9D,CAAC;CACF;AAjCD,wCAiCC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare class PaginationDto {
|
|
2
|
+
page?: number;
|
|
3
|
+
limit?: number;
|
|
4
|
+
search?: string;
|
|
5
|
+
sortBy?: string;
|
|
6
|
+
sortType?: "ASC" | "DESC";
|
|
7
|
+
}
|
|
8
|
+
export declare class PaginationMetaDto {
|
|
9
|
+
page: number;
|
|
10
|
+
limit: number;
|
|
11
|
+
total: number;
|
|
12
|
+
totalPages: number;
|
|
13
|
+
}
|
|
14
|
+
export declare class PaginationResponseDto<T> {
|
|
15
|
+
data: T[];
|
|
16
|
+
meta: PaginationMetaDto;
|
|
17
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
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.PaginationResponseDto = exports.PaginationMetaDto = exports.PaginationDto = void 0;
|
|
13
|
+
const class_validator_1 = require("class-validator");
|
|
14
|
+
const class_transformer_1 = require("class-transformer");
|
|
15
|
+
const messages_constants_1 = require("@constants/messages.constants");
|
|
16
|
+
class PaginationDto {
|
|
17
|
+
constructor() {
|
|
18
|
+
this.page = 1;
|
|
19
|
+
this.limit = 10;
|
|
20
|
+
this.sortType = "DESC";
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.PaginationDto = PaginationDto;
|
|
24
|
+
__decorate([
|
|
25
|
+
(0, class_validator_1.IsOptional)(),
|
|
26
|
+
(0, class_transformer_1.Type)(() => Number),
|
|
27
|
+
(0, class_validator_1.IsNumber)({}, { message: messages_constants_1.MESSAGES.VALIDATION.PAGE_NUMBER }),
|
|
28
|
+
(0, class_validator_1.Min)(1, { message: messages_constants_1.MESSAGES.VALIDATION.PAGE_MIN }),
|
|
29
|
+
__metadata("design:type", Number)
|
|
30
|
+
], PaginationDto.prototype, "page", void 0);
|
|
31
|
+
__decorate([
|
|
32
|
+
(0, class_validator_1.IsOptional)(),
|
|
33
|
+
(0, class_transformer_1.Type)(() => Number),
|
|
34
|
+
(0, class_validator_1.IsNumber)({}, { message: messages_constants_1.MESSAGES.VALIDATION.LIMIT_NUMBER }),
|
|
35
|
+
(0, class_validator_1.Min)(1, { message: messages_constants_1.MESSAGES.VALIDATION.LIMIT_MIN }),
|
|
36
|
+
(0, class_validator_1.Max)(100, { message: messages_constants_1.MESSAGES.VALIDATION.LIMIT_MAX }),
|
|
37
|
+
__metadata("design:type", Number)
|
|
38
|
+
], PaginationDto.prototype, "limit", void 0);
|
|
39
|
+
__decorate([
|
|
40
|
+
(0, class_validator_1.IsOptional)(),
|
|
41
|
+
(0, class_transformer_1.Transform)(({ value }) => value?.trim()),
|
|
42
|
+
__metadata("design:type", String)
|
|
43
|
+
], PaginationDto.prototype, "search", void 0);
|
|
44
|
+
__decorate([
|
|
45
|
+
(0, class_validator_1.IsOptional)(),
|
|
46
|
+
(0, class_validator_1.IsString)({ message: messages_constants_1.MESSAGES.VALIDATION.ORDER_BY_STRING }),
|
|
47
|
+
__metadata("design:type", String)
|
|
48
|
+
], PaginationDto.prototype, "sortBy", void 0);
|
|
49
|
+
__decorate([
|
|
50
|
+
(0, class_validator_1.IsOptional)(),
|
|
51
|
+
(0, class_validator_1.IsString)({ message: messages_constants_1.MESSAGES.VALIDATION.ORDER_STRING }),
|
|
52
|
+
(0, class_validator_1.IsIn)(["ASC", "DESC"], { message: messages_constants_1.MESSAGES.VALIDATION.ORDER_INVALID }),
|
|
53
|
+
__metadata("design:type", String)
|
|
54
|
+
], PaginationDto.prototype, "sortType", void 0);
|
|
55
|
+
class PaginationMetaDto {
|
|
56
|
+
}
|
|
57
|
+
exports.PaginationMetaDto = PaginationMetaDto;
|
|
58
|
+
class PaginationResponseDto {
|
|
59
|
+
}
|
|
60
|
+
exports.PaginationResponseDto = PaginationResponseDto;
|
|
61
|
+
//# sourceMappingURL=pagination.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination.dto.js","sourceRoot":"","sources":["../../../src/core/dtos/pagination.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAOyB;AACzB,yDAAoD;AACpD,sEAAyD;AAEzD,MAAa,aAAa;IAA1B;QAKE,SAAI,GAAY,CAAC,CAAC;QAOlB,UAAK,GAAY,EAAE,CAAC;QAapB,aAAQ,GAAoB,MAAM,CAAC;IACrC,CAAC;CAAA;AA1BD,sCA0BC;AArBC;IAJC,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC;IAClB,IAAA,0BAAQ,EAAC,EAAE,EAAE,EAAE,OAAO,EAAE,6BAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;IAC1D,IAAA,qBAAG,EAAC,CAAC,EAAE,EAAE,OAAO,EAAE,6BAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;;2CAChC;AAOlB;IALC,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC;IAClB,IAAA,0BAAQ,EAAC,EAAE,EAAE,EAAE,OAAO,EAAE,6BAAQ,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;IAC3D,IAAA,qBAAG,EAAC,CAAC,EAAE,EAAE,OAAO,EAAE,6BAAQ,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;IAClD,IAAA,qBAAG,EAAC,GAAG,EAAE,EAAE,OAAO,EAAE,6BAAQ,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;;4CACjC;AAIpB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;;6CACxB;AAIhB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,6BAAQ,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;;6CAC3C;AAKhB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,6BAAQ,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;IACvD,IAAA,sBAAI,EAAC,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,6BAAQ,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;;+CACnC;AAGrC,MAAa,iBAAiB;CAK7B;AALD,8CAKC;AAED,MAAa,qBAAqB;CAGjC;AAHD,sDAGC"}
|