@fabx.vn/core 1.1.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.
Files changed (138) hide show
  1. package/README.md +2 -6
  2. package/dist/config/cookie.config.d.ts +1 -0
  3. package/dist/config/cookie.config.js +1 -0
  4. package/dist/config/cookie.config.js.map +1 -1
  5. package/dist/config/database.config.d.ts +1 -0
  6. package/dist/config/database.config.js +2 -1
  7. package/dist/config/database.config.js.map +1 -1
  8. package/dist/config/internal.config.d.ts +4 -1
  9. package/dist/config/internal.config.js +4 -2
  10. package/dist/config/internal.config.js.map +1 -1
  11. package/dist/config/rabbitmq.config.d.ts +1 -5
  12. package/dist/config/rabbitmq.config.js +2 -6
  13. package/dist/config/rabbitmq.config.js.map +1 -1
  14. package/dist/config/redis-cache.config.d.ts +9 -0
  15. package/dist/config/redis-cache.config.js +13 -0
  16. package/dist/config/redis-cache.config.js.map +1 -0
  17. package/dist/config/redis.config.js +1 -1
  18. package/dist/config/redis.config.js.map +1 -1
  19. package/dist/constants/messages.constants.d.ts +0 -5
  20. package/dist/constants/messages.constants.js +0 -5
  21. package/dist/constants/messages.constants.js.map +1 -1
  22. package/dist/core/core.module.js +6 -0
  23. package/dist/core/core.module.js.map +1 -1
  24. package/dist/core/decorators/current-user.decorator.js +17 -1
  25. package/dist/core/decorators/current-user.decorator.js.map +1 -1
  26. package/dist/core/dtos/pagination.dto.d.ts +12 -0
  27. package/dist/core/dtos/pagination.dto.js +25 -1
  28. package/dist/core/dtos/pagination.dto.js.map +1 -1
  29. package/dist/core/entities/base.entity.d.ts +1 -0
  30. package/dist/core/entities/base.entity.js +4 -0
  31. package/dist/core/entities/base.entity.js.map +1 -1
  32. package/dist/core/guards/jwt-auth.guard.js +2 -3
  33. package/dist/core/guards/jwt-auth.guard.js.map +1 -1
  34. package/dist/core/modules/typeorm-filter.module.d.ts +5 -0
  35. package/dist/core/modules/typeorm-filter.module.js +41 -0
  36. package/dist/core/modules/typeorm-filter.module.js.map +1 -0
  37. package/dist/core/services/base-pagination.service.d.ts +9 -1
  38. package/dist/core/services/base-pagination.service.js +91 -0
  39. package/dist/core/services/base-pagination.service.js.map +1 -1
  40. package/dist/core/services/cookie.service.d.ts +2 -0
  41. package/dist/core/services/cookie.service.js +17 -18
  42. package/dist/core/services/cookie.service.js.map +1 -1
  43. package/dist/core/services/jwt.service.js +0 -10
  44. package/dist/core/services/jwt.service.js.map +1 -1
  45. package/dist/{services/redis.service.d.ts → core/services/redis-cache.service.d.ts} +6 -1
  46. package/dist/{services/redis.service.js → core/services/redis-cache.service.js} +37 -9
  47. package/dist/core/services/redis-cache.service.js.map +1 -0
  48. package/dist/core/services/redis.service.d.ts +1 -0
  49. package/dist/core/services/redis.service.js +15 -2
  50. package/dist/core/services/redis.service.js.map +1 -1
  51. package/dist/core/services/repository-wrapper.service.d.ts +7 -0
  52. package/dist/core/services/repository-wrapper.service.js +95 -0
  53. package/dist/core/services/repository-wrapper.service.js.map +1 -0
  54. package/dist/core/services/session.service.d.ts +2 -2
  55. package/dist/core/services/session.service.js +3 -10
  56. package/dist/core/services/session.service.js.map +1 -1
  57. package/dist/core/subscribers/audit.subscriber.js +3 -0
  58. package/dist/core/subscribers/audit.subscriber.js.map +1 -1
  59. package/dist/enums/object-type.enum.d.ts +9 -0
  60. package/dist/enums/object-type.enum.js +14 -0
  61. package/dist/enums/object-type.enum.js.map +1 -0
  62. package/dist/index.d.ts +6 -2
  63. package/dist/index.js +13 -3
  64. package/dist/index.js.map +1 -1
  65. package/dist/libs/axios/axios-client.js +2 -2
  66. package/dist/libs/axios/axios-client.js.map +1 -1
  67. package/dist/tsconfig.tsbuildinfo +1 -1
  68. package/dist/utils/date.utils.d.ts +1 -0
  69. package/dist/utils/date.utils.js +10 -0
  70. package/dist/utils/date.utils.js.map +1 -1
  71. package/package.json +1 -1
  72. package/dist/config/google-oauth.config.d.ts +0 -6
  73. package/dist/config/google-oauth.config.js +0 -10
  74. package/dist/config/google-oauth.config.js.map +0 -1
  75. package/dist/core/services/cache.service.d.ts +0 -13
  76. package/dist/core/services/cache.service.js +0 -51
  77. package/dist/core/services/cache.service.js.map +0 -1
  78. package/dist/core/services/permission.service.d.ts +0 -23
  79. package/dist/core/services/permission.service.js +0 -83
  80. package/dist/core/services/permission.service.js.map +0 -1
  81. package/dist/core.module.d.ts +0 -2
  82. package/dist/core.module.js +0 -72
  83. package/dist/core.module.js.map +0 -1
  84. package/dist/decorators/current-user.decorator.d.ts +0 -1
  85. package/dist/decorators/current-user.decorator.js +0 -9
  86. package/dist/decorators/current-user.decorator.js.map +0 -1
  87. package/dist/decorators/public.decorator.d.ts +0 -2
  88. package/dist/decorators/public.decorator.js +0 -8
  89. package/dist/decorators/public.decorator.js.map +0 -1
  90. package/dist/decorators/require-permissions.decorator.d.ts +0 -4
  91. package/dist/decorators/require-permissions.decorator.js +0 -11
  92. package/dist/decorators/require-permissions.decorator.js.map +0 -1
  93. package/dist/dtos/api-response.dto.d.ts +0 -10
  94. package/dist/dtos/api-response.dto.js +0 -22
  95. package/dist/dtos/api-response.dto.js.map +0 -1
  96. package/dist/dtos/pagination.dto.d.ts +0 -17
  97. package/dist/dtos/pagination.dto.js +0 -61
  98. package/dist/dtos/pagination.dto.js.map +0 -1
  99. package/dist/filters/http-exception.filter.d.ts +0 -5
  100. package/dist/filters/http-exception.filter.js +0 -47
  101. package/dist/filters/http-exception.filter.js.map +0 -1
  102. package/dist/guards/internal-auth.guard.d.ts +0 -7
  103. package/dist/guards/internal-auth.guard.js +0 -42
  104. package/dist/guards/internal-auth.guard.js.map +0 -1
  105. package/dist/guards/jwt-auth.guard.d.ts +0 -12
  106. package/dist/guards/jwt-auth.guard.js +0 -56
  107. package/dist/guards/jwt-auth.guard.js.map +0 -1
  108. package/dist/guards/permission.guard.d.ts +0 -9
  109. package/dist/guards/permission.guard.js +0 -71
  110. package/dist/guards/permission.guard.js.map +0 -1
  111. package/dist/interceptors/request-context.interceptor.d.ts +0 -8
  112. package/dist/interceptors/request-context.interceptor.js +0 -39
  113. package/dist/interceptors/request-context.interceptor.js.map +0 -1
  114. package/dist/services/cookie.service.d.ts +0 -13
  115. package/dist/services/cookie.service.js +0 -50
  116. package/dist/services/cookie.service.js.map +0 -1
  117. package/dist/services/jwt.service.d.ts +0 -37
  118. package/dist/services/jwt.service.js +0 -187
  119. package/dist/services/jwt.service.js.map +0 -1
  120. package/dist/services/rabbitmq-publisher.service.d.ts +0 -9
  121. package/dist/services/rabbitmq-publisher.service.js +0 -57
  122. package/dist/services/rabbitmq-publisher.service.js.map +0 -1
  123. package/dist/services/redis.service.js.map +0 -1
  124. package/dist/services/request-context.service.d.ts +0 -18
  125. package/dist/services/request-context.service.js +0 -40
  126. package/dist/services/request-context.service.js.map +0 -1
  127. package/dist/services/request-info.service.d.ts +0 -8
  128. package/dist/services/request-info.service.js +0 -32
  129. package/dist/services/request-info.service.js.map +0 -1
  130. package/dist/services/session.service.d.ts +0 -21
  131. package/dist/services/session.service.js +0 -70
  132. package/dist/services/session.service.js.map +0 -1
  133. package/dist/strategies/jwt.strategy.d.ts +0 -7
  134. package/dist/strategies/jwt.strategy.js +0 -38
  135. package/dist/strategies/jwt.strategy.js.map +0 -1
  136. package/dist/subscribers/audit.subscriber.d.ts +0 -8
  137. package/dist/subscribers/audit.subscriber.js +0 -40
  138. package/dist/subscribers/audit.subscriber.js.map +0 -1
@@ -1,10 +1,23 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BasePaginationService = void 0;
4
+ const common_1 = require("@nestjs/common");
4
5
  class BasePaginationService {
5
6
  constructor(repository) {
6
7
  this.repository = repository;
7
8
  }
9
+ getDateColumns() {
10
+ return [];
11
+ }
12
+ getDuplicateErrorMessage() {
13
+ return "Duplicate entry";
14
+ }
15
+ getQueryAlias() {
16
+ return "entity";
17
+ }
18
+ getDeletedAtField() {
19
+ return "deletedAt";
20
+ }
8
21
  async paginate(queryBuilder, paginationDto) {
9
22
  const { page = 1, limit = 10 } = paginationDto;
10
23
  const skip = (page - 1) * limit;
@@ -40,6 +53,84 @@ class BasePaginationService {
40
53
  }
41
54
  return queryBuilder;
42
55
  }
56
+ isDateColumn(column) {
57
+ return this.getDateColumns().includes(column);
58
+ }
59
+ handleDuplicateError(error, message) {
60
+ if (error.code === "ER_DUP_ENTRY") {
61
+ throw new common_1.ConflictException(message || this.getDuplicateErrorMessage());
62
+ }
63
+ throw error;
64
+ }
65
+ buildColumnFilters(queryBuilder, filters, fieldMapping, alias) {
66
+ const entityAlias = alias || this.getQueryAlias();
67
+ Object.entries(filters).forEach(([column, values]) => {
68
+ if (values?.length > 0) {
69
+ const dbField = fieldMapping[column] || `${entityAlias}.${column}`;
70
+ const condition = this.isDateColumn(column)
71
+ ? `DATE(${dbField}) IN (:...${column}Values)`
72
+ : `${dbField} IN (:...${column}Values)`;
73
+ queryBuilder.andWhere(condition, { [`${column}Values`]: values });
74
+ }
75
+ });
76
+ return queryBuilder;
77
+ }
78
+ async getFilterValuesInternal(dto, columnMapping, fieldMapping) {
79
+ const { column, search, page = 1, limit = 100 } = dto;
80
+ const entityAlias = this.getQueryAlias();
81
+ const entityColumn = columnMapping[column] || column;
82
+ const isDateColumn = this.isDateColumn(column);
83
+ const dbField = fieldMapping?.[column]
84
+ ? fieldMapping[column].replace(`${entityAlias}.`, "")
85
+ : entityColumn;
86
+ const selectExpression = isDateColumn
87
+ ? `DATE(${entityAlias}.${dbField}) AS value`
88
+ : `${entityAlias}.${dbField} AS value`;
89
+ const searchCondition = isDateColumn
90
+ ? `DATE(${entityAlias}.${dbField}) LIKE :search`
91
+ : `${entityAlias}.${dbField} LIKE :search`;
92
+ const baseQuery = this.repository
93
+ .createQueryBuilder(entityAlias)
94
+ .select(selectExpression)
95
+ .groupBy("value");
96
+ const deletedAtField = this.getDeletedAtField();
97
+ if (deletedAtField) {
98
+ baseQuery.where(`${entityAlias}.${deletedAtField} IS NULL`);
99
+ }
100
+ if (search) {
101
+ baseQuery.having(searchCondition, { search: `%${search}%` });
102
+ }
103
+ const total = (await baseQuery.getRawMany()).length;
104
+ const dataQuery = this.repository
105
+ .createQueryBuilder(entityAlias)
106
+ .select(selectExpression)
107
+ .addSelect("COUNT(*) AS count")
108
+ .groupBy("value")
109
+ .orderBy("value", "ASC")
110
+ .skip((page - 1) * limit)
111
+ .take(limit);
112
+ if (deletedAtField) {
113
+ dataQuery.where(`${entityAlias}.${deletedAtField} IS NULL`);
114
+ }
115
+ if (search) {
116
+ dataQuery.having(searchCondition, { search: `%${search}%` });
117
+ }
118
+ const results = await dataQuery.getRawMany();
119
+ const data = results.map((r) => ({
120
+ value: r.value,
121
+ label: String(r.value),
122
+ count: parseInt(String(r.count), 10),
123
+ }));
124
+ return {
125
+ data,
126
+ meta: {
127
+ total,
128
+ page,
129
+ limit,
130
+ totalPages: Math.ceil(total / limit),
131
+ },
132
+ };
133
+ }
43
134
  }
44
135
  exports.BasePaginationService = BasePaginationService;
45
136
  //# sourceMappingURL=base-pagination.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base-pagination.service.js","sourceRoot":"","sources":["../../../src/core/services/base-pagination.service.ts"],"names":[],"mappings":";;;AAOA,MAAsB,qBAAqB;IACzC,YAAgC,UAAyB;QAAzB,eAAU,GAAV,UAAU,CAAe;IAAG,CAAC;IAEnD,KAAK,CAAC,QAAQ,CACtB,YAAyC,EACzC,aAA4B;QAE5B,MAAM,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,aAAa,CAAC;QAC/C,MAAM,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;QAGhC,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,QAAQ,EAAE,CAAC;QAG5C,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;QAGjE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAsB;YAC9B,IAAI;YACJ,KAAK;YACL,KAAK;YACL,UAAU;SACX,CAAC;QAEF,OAAO;YACL,IAAI;YACJ,IAAI;SACL,CAAC;IACJ,CAAC;IAES,gBAAgB,CACxB,YAAmC,EACnC,YAAsB,EACtB,MAAe;QAEf,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YAC9B,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC;QACxC,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CACjC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,gBAAgB,KAAK,EAAE,CAClD,CAAC;QAEF,OAAO,YAAY,CAAC,QAAQ,CAC1B,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAC9B,YAAY,CAAC,MAAM,CACjB,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACvB,MAAM,CAAC,SAAS,KAAK,EAAE,CAAC,GAAG,UAAU,CAAC;YACtC,OAAO,MAAM,CAAC;QAChB,CAAC,EACD,EAA4B,CAC7B,CACF,CAAC;IACJ,CAAC;IAES,eAAe,CACvB,YAAmC,EACnC,MAAe,EACf,WAA2B,MAAM,EACjC,YAAqC;QAErC,IAAI,MAAM,IAAI,YAAY,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;YAErC,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACrC,OAAO,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AAtED,sDAsEC"}
1
+ {"version":3,"file":"base-pagination.service.js","sourceRoot":"","sources":["../../../src/core/services/base-pagination.service.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,9 @@ export interface ExtractedTokensDto {
4
4
  refreshToken?: string;
5
5
  }
6
6
  export declare class CookieService {
7
+ private static readonly logger;
7
8
  private static readonly COOKIE_NAME;
9
+ private static readonly COOKIE_DOMAIN;
8
10
  private static readonly COOKIE_OPTIONS;
9
11
  static setAuthCookies(res: Response, accessToken: string, refreshToken: string, refreshTokenExpiresAt: Date): void;
10
12
  static clearAuthCookies(res: Response): void;
@@ -1,9 +1,12 @@
1
1
  "use strict";
2
+ var _a;
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.CookieService = void 0;
4
5
  const cookie_config_1 = require("../../config/cookie.config");
6
+ const common_1 = require("@nestjs/common");
5
7
  class CookieService {
6
8
  static setAuthCookies(res, accessToken, refreshToken, refreshTokenExpiresAt) {
9
+ this.clearAuthCookies(res);
7
10
  const authData = {
8
11
  accessToken,
9
12
  refreshToken,
@@ -11,55 +14,51 @@ class CookieService {
11
14
  refreshTokenExpiresAt: refreshTokenExpiresAt.getTime(),
12
15
  };
13
16
  const cookieMaxAge = refreshTokenExpiresAt.getTime() - Date.now();
14
- console.log(`[CookieService] Setting cookie ${this.COOKIE_NAME} with accessToken: ${accessToken.substring(0, 20)}...`);
15
- console.log(`[CookieService] Cookie options:`, JSON.stringify({
16
- ...this.COOKIE_OPTIONS,
17
- maxAge: Math.max(cookieMaxAge, 0),
18
- }));
19
17
  res.cookie(this.COOKIE_NAME, JSON.stringify(authData), {
20
18
  ...this.COOKIE_OPTIONS,
21
19
  maxAge: Math.max(cookieMaxAge, 0),
22
20
  });
23
- console.log(`[CookieService] Cookie set successfully`);
24
21
  }
25
22
  static clearAuthCookies(res) {
26
- res.clearCookie(this.COOKIE_NAME, {
27
- path: "/",
28
- domain: this.COOKIE_OPTIONS.domain,
29
- });
23
+ res.clearCookie(this.COOKIE_NAME, { path: "/" });
24
+ if (this.COOKIE_OPTIONS.domain) {
25
+ res.clearCookie(this.COOKIE_NAME, {
26
+ path: "/",
27
+ domain: this.COOKIE_OPTIONS.domain,
28
+ });
29
+ }
30
30
  }
31
31
  static setRefreshedCookies(res, accessToken, refreshToken, refreshTokenExpiresAt) {
32
32
  this.setAuthCookies(res, accessToken, refreshToken, refreshTokenExpiresAt);
33
33
  }
34
34
  static extractTokensFromCookie(request) {
35
+ this.logger.log(`Extracting tokens from cookie: ${this.COOKIE_NAME}`);
35
36
  const authCookie = request.cookies?.[this.COOKIE_NAME];
36
- if (!authCookie) {
37
- console.log(`[CookieService] No cookie found with name: ${this.COOKIE_NAME}`);
38
- console.log(`[CookieService] Available cookies:`, Object.keys(request.cookies || {}));
37
+ if (!authCookie)
39
38
  return undefined;
40
- }
41
39
  try {
42
40
  const authData = JSON.parse(authCookie);
43
- console.log(`[CookieService] Extracted accessToken: ${authData.accessToken?.substring(0, 20)}...`);
44
41
  return {
45
42
  accessToken: authData.accessToken,
46
43
  refreshToken: authData.refreshToken,
47
44
  };
48
45
  }
49
46
  catch (error) {
50
- console.error("[CookieService] Failed to parse auth cookie:", error);
51
- console.error("[CookieService] Cookie value:", authCookie);
47
+ console.log("Failed to parse auth cookie:", error);
52
48
  return undefined;
53
49
  }
54
50
  }
55
51
  }
56
52
  exports.CookieService = CookieService;
53
+ _a = CookieService;
54
+ CookieService.logger = new common_1.Logger(_a.name);
57
55
  CookieService.COOKIE_NAME = cookie_config_1.cookieConfig.cookieName;
56
+ CookieService.COOKIE_DOMAIN = cookie_config_1.cookieConfig.cookieDomain;
58
57
  CookieService.COOKIE_OPTIONS = {
59
58
  httpOnly: true,
60
59
  secure: process.env.NODE_ENV === "production",
61
60
  sameSite: process.env.NODE_ENV === "production" ? "none" : "strict",
62
- domain: process.env.COOKIE_DOMAIN || undefined,
61
+ domain: _a.COOKIE_DOMAIN,
63
62
  path: "/",
64
63
  };
65
64
  //# sourceMappingURL=cookie.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cookie.service.js","sourceRoot":"","sources":["../../../src/core/services/cookie.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cookie.service.js","sourceRoot":"","sources":["../../../src/core/services/cookie.service.ts"],"names":[],"mappings":";;;;AACA,yDAAqD;AACrD,2CAAwC;AAOxC,MAAa,aAAa;IAkBxB,MAAM,CAAC,cAAc,CACnB,GAAa,EACb,WAAmB,EACnB,YAAoB,EACpB,qBAA2B;QAI3B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAE3B,MAAM,QAAQ,GAAG;YACf,WAAW;YACX,YAAY;YACZ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,qBAAqB,EAAE,qBAAqB,CAAC,OAAO,EAAE;SACvD,CAAC;QAEF,MAAM,YAAY,GAAG,qBAAqB,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAElE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;YACrD,GAAG,IAAI,CAAC,cAAc;YACtB,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;SAClC,CAAC,CAAC;IACL,CAAC;IAKD,MAAM,CAAC,gBAAgB,CAAC,GAAa;QACnC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QACjD,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;YAE/B,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE;gBAChC,IAAI,EAAE,GAAG;gBACT,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM;aACnC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAKD,MAAM,CAAC,mBAAmB,CACxB,GAAa,EACb,WAAmB,EACnB,YAAoB,EACpB,qBAA2B;QAE3B,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,WAAW,EAAE,YAAY,EAAE,qBAAqB,CAAC,CAAC;IAC7E,CAAC;IAKD,MAAM,CAAC,uBAAuB,CAC5B,OAAgB;QAEhB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kCAAkC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACtE,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACvD,IAAI,CAAC,UAAU;YAAE,OAAO,SAAS,CAAC;QAElC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACxC,OAAO;gBACL,WAAW,EAAE,QAAQ,CAAC,WAAW;gBACjC,YAAY,EAAE,QAAQ,CAAC,YAAY;aACpC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;YACnD,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;;AAzFH,sCA0FC;;AAzFyB,oBAAM,GAAG,IAAI,eAAM,CAAC,EAAa,CAAC,IAAI,CAAC,AAAjC,CAAkC;AAExC,yBAAW,GAAG,4BAAY,CAAC,UAAU,AAA1B,CAA2B;AACtC,2BAAa,GAAG,4BAAY,CAAC,YAAY,AAA5B,CAA6B;AAE1C,4BAAc,GAAG;IACvC,QAAQ,EAAE,IAAI;IACd,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;IAC7C,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;IACnE,MAAM,EAAE,EAAI,CAAC,aAAa;IAC1B,IAAI,EAAE,GAAG;CACD,AAN4B,CAM3B"}
@@ -25,12 +25,9 @@ let CoreJwtService = CoreJwtService_1 = class CoreJwtService {
25
25
  this.logger = new common_1.Logger(CoreJwtService_1.name);
26
26
  }
27
27
  async createAccessToken(sessionData) {
28
- this.logger.log(`Creating access token for session data: ${JSON.stringify(sessionData)}`);
29
28
  const ttlSec = date_utils_1.DateUtils.parseExpirationTime(jwt_config_1.jwtConfig.expiresIn);
30
- this.logger.log(`TTL seconds: ${ttlSec}`);
31
29
  const sessionId = await this.sessionService.createSession(sessionData, ttlSec);
32
30
  const payload = { sub: sessionId };
33
- this.logger.log(`Payload: ${JSON.stringify(payload)}`);
34
31
  return this.jwtService.sign(payload);
35
32
  }
36
33
  decodeToken(token) {
@@ -52,10 +49,8 @@ let CoreJwtService = CoreJwtService_1 = class CoreJwtService {
52
49
  }
53
50
  }
54
51
  validateTokenSignature(token) {
55
- this.logger.log(`Validating token signature: ${token}`);
56
52
  try {
57
53
  const payload = this.verifyToken(token);
58
- this.logger.log(`Payload: ${JSON.stringify(payload)}`);
59
54
  if (!payload) {
60
55
  return {
61
56
  isValid: false,
@@ -83,9 +78,7 @@ let CoreJwtService = CoreJwtService_1 = class CoreJwtService {
83
78
  return payload?.sub || null;
84
79
  }
85
80
  async deleteSessionFromToken(token) {
86
- this.logger.log(`Deleting session from token: ${token}`);
87
81
  const sessionId = this.getSessionIdFromToken(token);
88
- this.logger.log(`Session ID: ${sessionId}`);
89
82
  if (sessionId) {
90
83
  await this.sessionService.deleteSession(sessionId);
91
84
  return true;
@@ -93,10 +86,8 @@ let CoreJwtService = CoreJwtService_1 = class CoreJwtService {
93
86
  return false;
94
87
  }
95
88
  getTokenExpirationTime(token) {
96
- this.logger.log(`Getting token expiration time: ${token}`);
97
89
  try {
98
90
  const payload = this.decodeToken(token);
99
- this.logger.log(`Payload: ${JSON.stringify(payload)}`);
100
91
  if (!payload)
101
92
  return null;
102
93
  const decoded = this.jwtService.decode(token);
@@ -132,7 +123,6 @@ let CoreJwtService = CoreJwtService_1 = class CoreJwtService {
132
123
  }
133
124
  async getCurrentUser(accessToken) {
134
125
  try {
135
- this.logger.log(`Getting current user from token: ${accessToken}`);
136
126
  const payload = this.decodeToken(accessToken);
137
127
  this.logger.log(`Payload: ${JSON.stringify(payload)}`);
138
128
  if (!payload?.sub)
@@ -1 +1 @@
1
- {"version":3,"file":"jwt.service.js","sourceRoot":"","sources":["../../../src/core/services/jwt.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jwt.service.js","sourceRoot":"","sources":["../../../src/core/services/jwt.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AACpD,qCAAyC;AACzC,oEAAgF;AAChF,kDAA8C;AAC9C,mDAA+C;AAC/C,6DAAyD;AACzD,sEAAyD;AAalD,IAAM,cAAc,sBAApB,MAAM,cAAc;IAGzB,YACmB,UAAsB,EACtB,cAA8B;QAD9B,eAAU,GAAV,UAAU,CAAY;QACtB,mBAAc,GAAd,cAAc,CAAgB;QAJhC,WAAM,GAAG,IAAI,eAAM,CAAC,gBAAc,CAAC,IAAI,CAAC,CAAC;IAKvD,CAAC;IAMJ,KAAK,CAAC,iBAAiB,CAAC,WAA2B;QACjD,MAAM,MAAM,GAAG,sBAAS,CAAC,mBAAmB,CAAC,sBAAS,CAAC,SAAS,CAAC,CAAC;QAClE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CACvD,WAAW,EACX,MAAM,CACP,CAAC;QACF,MAAM,OAAO,GAAiB,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;QACjD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAKD,WAAW,CAAC,KAAa;QACvB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAiB,CAAC;YAC9D,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAKD,WAAW,CAAC,KAAa;QACvB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAiB,CAAC;YAC9D,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAKD,sBAAsB,CAAC,KAAa;QAClC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACxC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,6BAAQ,CAAC,GAAG,CAAC,uBAAuB;iBAC5C,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO;aACR,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,6BAAQ,CAAC,GAAG,CAAC,uBAAuB;aAC5C,CAAC;QACJ,CAAC;IACH,CAAC;IAKD,qBAAqB,CAAC,KAAa;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;QAClD,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC;IAKD,qBAAqB,CAAC,KAAa;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACxC,OAAO,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC;IAC9B,CAAC;IAKD,KAAK,CAAC,sBAAsB,CAAC,KAAa;QACxC,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACpD,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YACnD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAKD,sBAAsB,CAAC,KAAa;QAClC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACxC,IAAI,CAAC,OAAO;gBAAE,OAAO,IAAI,CAAC;YAG1B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAQ,CAAC;YACrD,IAAI,CAAC,OAAO,EAAE,GAAG;gBAAE,OAAO,IAAI,CAAC;YAE/B,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;YAC9D,OAAO,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAKD,cAAc,CAAC,KAAa;QAC1B,MAAM,cAAc,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;QAC1D,OAAO,cAAc,KAAK,IAAI,IAAI,cAAc,IAAI,CAAC,CAAC;IACxD,CAAC;IAMD,mBAAmB,CAAC,OAAe;QACjC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CACzB,EAAE,OAAO,EAAE,EACX;YACE,MAAM,EAAE,gCAAc,CAAC,cAAc;YACrC,SAAS,EAAE,IAAI;SAChB,CACF,CAAC;IACJ,CAAC;IAMD,mBAAmB,CAAC,KAAa;QAC/B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE;gBAC5C,MAAM,EAAE,gCAAc,CAAC,cAAc;aACtC,CAEA,CAAC;YACF,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAOD,KAAK,CAAC,cAAc,CAAC,WAAmB;QACtC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACvD,IAAI,CAAC,OAAO,EAAE,GAAG;gBAAE,OAAO,IAAI,CAAC;YAE/B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACtE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAChE,OAAO,WAAW,CAAC;QACrB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF,CAAA;AA/KY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;qCAKoB,gBAAU;QACN,gCAAc;GALtC,cAAc,CA+K1B"}
@@ -1,5 +1,6 @@
1
1
  import { OnModuleInit, OnModuleDestroy } from "@nestjs/common";
2
- export declare class RedisService implements OnModuleInit, OnModuleDestroy {
2
+ export declare class RedisCacheService implements OnModuleInit, OnModuleDestroy {
3
+ private readonly logger;
3
4
  private redis;
4
5
  onModuleInit(): Promise<void>;
5
6
  onModuleDestroy(): Promise<void>;
@@ -14,5 +15,9 @@ export declare class RedisService implements OnModuleInit, OnModuleDestroy {
14
15
  sadd(key: string, ...members: (string | number)[]): Promise<number>;
15
16
  smembers(key: string): Promise<string[]>;
16
17
  srem(key: string, ...members: (string | number)[]): Promise<number>;
18
+ hget(key: string, field: string): Promise<string | null>;
19
+ hset(key: string, field: string, value: string): Promise<number>;
20
+ hgetall(key: string): Promise<Record<string, string>>;
21
+ hdel(key: string, ...fields: string[]): Promise<number>;
17
22
  pipeline(): import("ioredis").ChainableCommander;
18
23
  }
@@ -5,17 +5,33 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
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
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
+ var RedisCacheService_1;
8
9
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.RedisService = void 0;
10
+ exports.RedisCacheService = void 0;
11
+ const redis_cache_config_1 = require("../../config/redis-cache.config");
10
12
  const common_1 = require("@nestjs/common");
11
13
  const ioredis_1 = require("ioredis");
12
- const redis_config_1 = require("../config/redis.config");
13
- let RedisService = class RedisService {
14
+ let RedisCacheService = RedisCacheService_1 = class RedisCacheService {
15
+ constructor() {
16
+ this.logger = new common_1.Logger(RedisCacheService_1.name);
17
+ }
14
18
  async onModuleInit() {
15
- this.redis = new ioredis_1.default(redis_config_1.redisConfig);
19
+ this.redis = new ioredis_1.default(redis_cache_config_1.redisCacheConfig);
20
+ this.redis.on("connect", () => {
21
+ this.logger.log(`Connected to Redis Cache at ${redis_cache_config_1.redisCacheConfig.host}:${redis_cache_config_1.redisCacheConfig.port}`);
22
+ });
23
+ this.redis.on("error", (error) => {
24
+ this.logger.error(`Redis Cache connection error: ${error}`);
25
+ });
26
+ this.redis.on("close", () => {
27
+ this.logger.warn(`Redis Cache connection closed`);
28
+ });
16
29
  }
17
30
  async onModuleDestroy() {
18
- await this.redis.quit();
31
+ if (this.redis) {
32
+ await this.redis.quit();
33
+ this.logger.log("Redis Cache connection closed");
34
+ }
19
35
  }
20
36
  async get(key) {
21
37
  return this.redis.get(key);
@@ -55,12 +71,24 @@ let RedisService = class RedisService {
55
71
  async srem(key, ...members) {
56
72
  return this.redis.srem(key, ...members);
57
73
  }
74
+ async hget(key, field) {
75
+ return this.redis.hget(key, field);
76
+ }
77
+ async hset(key, field, value) {
78
+ return this.redis.hset(key, field, value);
79
+ }
80
+ async hgetall(key) {
81
+ return this.redis.hgetall(key);
82
+ }
83
+ async hdel(key, ...fields) {
84
+ return this.redis.hdel(key, ...fields);
85
+ }
58
86
  pipeline() {
59
87
  return this.redis.pipeline();
60
88
  }
61
89
  };
62
- exports.RedisService = RedisService;
63
- exports.RedisService = RedisService = __decorate([
90
+ exports.RedisCacheService = RedisCacheService;
91
+ exports.RedisCacheService = RedisCacheService = RedisCacheService_1 = __decorate([
64
92
  (0, common_1.Injectable)()
65
- ], RedisService);
66
- //# sourceMappingURL=redis.service.js.map
93
+ ], RedisCacheService);
94
+ //# sourceMappingURL=redis-cache.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis-cache.service.js","sourceRoot":"","sources":["../../../src/core/services/redis-cache.service.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { OnModuleInit, OnModuleDestroy } from "@nestjs/common";
2
2
  export declare class RedisService implements OnModuleInit, OnModuleDestroy {
3
+ private readonly logger;
3
4
  private redis;
4
5
  onModuleInit(): Promise<void>;
5
6
  onModuleDestroy(): Promise<void>;
@@ -5,14 +5,27 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
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
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
+ var RedisService_1;
8
9
  Object.defineProperty(exports, "__esModule", { value: true });
9
10
  exports.RedisService = void 0;
10
11
  const redis_config_1 = require("../../config/redis.config");
11
12
  const common_1 = require("@nestjs/common");
12
13
  const ioredis_1 = require("ioredis");
13
- let RedisService = class RedisService {
14
+ let RedisService = RedisService_1 = class RedisService {
15
+ constructor() {
16
+ this.logger = new common_1.Logger(RedisService_1.name);
17
+ }
14
18
  async onModuleInit() {
15
19
  this.redis = new ioredis_1.default(redis_config_1.redisConfig);
20
+ this.redis.on("connect", () => {
21
+ `Connected to Redis at ${redis_config_1.redisConfig.host}:${redis_config_1.redisConfig.port}`;
22
+ });
23
+ this.redis.on("error", (error) => {
24
+ this.logger.error(`Redis connection error: ${error}`);
25
+ });
26
+ this.redis.on("close", () => {
27
+ this.logger.warn(`Redis connection closed`);
28
+ });
16
29
  }
17
30
  async onModuleDestroy() {
18
31
  await this.redis.quit();
@@ -60,7 +73,7 @@ let RedisService = class RedisService {
60
73
  }
61
74
  };
62
75
  exports.RedisService = RedisService;
63
- exports.RedisService = RedisService = __decorate([
76
+ exports.RedisService = RedisService = RedisService_1 = __decorate([
64
77
  (0, common_1.Injectable)()
65
78
  ], RedisService);
66
79
  //# sourceMappingURL=redis.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"redis.service.js","sourceRoot":"","sources":["../../../src/core/services/redis.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,uDAAmD;AACnD,2CAA2E;AAC3E,qCAA4B;AAGrB,IAAM,YAAY,GAAlB,MAAM,YAAY;IAGvB,KAAK,CAAC,YAAY;QAChB,IAAI,CAAC,KAAK,GAAG,IAAI,iBAAK,CAAC,0BAAW,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAa,EAAE,GAAY;QAChD,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,GAAW,EACX,KAAa,EACb,GAAG,OAAc;QAEjB,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW,EAAE,GAAW;QACnC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAe;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC/B,CAAC;IAGD,KAAK,CAAC,IAAI,CAAC,GAAW,EAAE,GAAG,OAA4B;QACrD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAW;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAW,EAAE,GAAG,OAA4B;QACrD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC;IAC1C,CAAC;IAGD,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC/B,CAAC;CACF,CAAA;AApEY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;GACA,YAAY,CAoExB"}
1
+ {"version":3,"file":"redis.service.js","sourceRoot":"","sources":["../../../src/core/services/redis.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { Repository } from "typeorm";
2
+ export declare class RepositoryWrapperService {
3
+ wrap<T>(repository: Repository<T>): Repository<T>;
4
+ private getCompanyId;
5
+ private hasCompanyIdColumn;
6
+ private modifyQueryArgs;
7
+ }
@@ -0,0 +1,95 @@
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.RepositoryWrapperService = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const request_context_service_1 = require("../services/request-context.service");
12
+ let RepositoryWrapperService = class RepositoryWrapperService {
13
+ wrap(repository) {
14
+ const hasCompanyId = this.hasCompanyIdColumn(repository);
15
+ if (!hasCompanyId) {
16
+ return repository;
17
+ }
18
+ return new Proxy(repository, {
19
+ get: (target, prop) => {
20
+ const original = target[prop];
21
+ if (typeof original === "function" &&
22
+ (prop === "find" ||
23
+ prop === "findOne" ||
24
+ prop === "findBy" ||
25
+ prop === "findOneBy" ||
26
+ prop === "count" ||
27
+ prop === "countBy" ||
28
+ prop === "exists" ||
29
+ prop === "existsBy")) {
30
+ return (...args) => {
31
+ const companyId = this.getCompanyId();
32
+ if (!companyId) {
33
+ return original.apply(target, args);
34
+ }
35
+ const modifiedArgs = this.modifyQueryArgs(prop, args, companyId);
36
+ return original.apply(target, modifiedArgs);
37
+ };
38
+ }
39
+ return original;
40
+ },
41
+ });
42
+ }
43
+ getCompanyId() {
44
+ const user = request_context_service_1.RequestContextService.getCurrentUser();
45
+ return user?.companyId;
46
+ }
47
+ hasCompanyIdColumn(repository) {
48
+ return repository.metadata.columns.some((column) => column.propertyName === "companyId");
49
+ }
50
+ modifyQueryArgs(method, args, companyId) {
51
+ if (method === "findBy" ||
52
+ method === "findOneBy" ||
53
+ method === "countBy" ||
54
+ method === "existsBy") {
55
+ if (args[0]) {
56
+ if (Array.isArray(args[0])) {
57
+ args[0] = args[0].map((w) => ({ ...w, companyId }));
58
+ }
59
+ else {
60
+ args[0] = { ...args[0], companyId };
61
+ }
62
+ }
63
+ else {
64
+ args[0] = { companyId };
65
+ }
66
+ }
67
+ else {
68
+ if (args[0]) {
69
+ if (args[0].where) {
70
+ if (Array.isArray(args[0].where)) {
71
+ args[0].where = args[0].where.map((w) => ({
72
+ ...w,
73
+ companyId,
74
+ }));
75
+ }
76
+ else {
77
+ args[0].where = { ...args[0].where, companyId };
78
+ }
79
+ }
80
+ else {
81
+ args[0].where = { companyId };
82
+ }
83
+ }
84
+ else {
85
+ args[0] = { where: { companyId } };
86
+ }
87
+ }
88
+ return args;
89
+ }
90
+ };
91
+ exports.RepositoryWrapperService = RepositoryWrapperService;
92
+ exports.RepositoryWrapperService = RepositoryWrapperService = __decorate([
93
+ (0, common_1.Injectable)()
94
+ ], RepositoryWrapperService);
95
+ //# sourceMappingURL=repository-wrapper.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repository-wrapper.service.js","sourceRoot":"","sources":["../../../src/core/services/repository-wrapper.service.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { RedisService } from "../services/redis.service";
2
2
  export interface CurrentUserDto {
3
- userUuid: string;
3
+ companyId: number;
4
+ uuid: string;
4
5
  userId: number;
5
6
  orgUnitId: number;
6
7
  email: string;
@@ -12,7 +13,6 @@ export interface CurrentUserDto {
12
13
  }
13
14
  export declare class SessionService {
14
15
  private readonly redisService;
15
- private readonly logger;
16
16
  constructor(redisService: RedisService);
17
17
  private sessionKey;
18
18
  private userSessionsKey;