@aldb2b/common 1.0.77 → 1.0.78

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 (137) hide show
  1. package/build/db/CustomModel.d.ts +4 -4
  2. package/build/db/CustomModel.js +7 -7
  3. package/build/db/MongooseBase.d.ts +34 -34
  4. package/build/db/MongooseBase.js +267 -267
  5. package/build/db/aggregate/AggregateConvertor.d.ts +23 -23
  6. package/build/db/aggregate/AggregateConvertor.js +211 -211
  7. package/build/db/aggregate/createAggregateResponse.d.ts +2 -2
  8. package/build/db/aggregate/createAggregateResponse.js +49 -49
  9. package/build/db/mongoose-find-options.d.ts +12 -12
  10. package/build/db/mongoose-find-options.js +67 -67
  11. package/build/decorators/get-event-id-decorator.d.ts +1 -1
  12. package/build/decorators/get-event-id-decorator.js +9 -9
  13. package/build/decorators/get-user-decorator.d.ts +1 -1
  14. package/build/decorators/get-user-decorator.js +12 -12
  15. package/build/events/attendee-contact.interface.d.ts +10 -10
  16. package/build/events/attendee-contact.interface.js +2 -2
  17. package/build/events/authorize-user.interface.d.ts +13 -13
  18. package/build/events/authorize-user.interface.js +2 -2
  19. package/build/events/campaign-users.interface.d.ts +11 -11
  20. package/build/events/campaign-users.interface.js +2 -2
  21. package/build/events/compute-calendar.interface.d.ts +14 -14
  22. package/build/events/compute-calendar.interface.js +2 -2
  23. package/build/events/contacts-by-search.interface.d.ts +10 -10
  24. package/build/events/contacts-by-search.interface.js +2 -2
  25. package/build/events/create-company-setting.interface.d.ts +16 -16
  26. package/build/events/create-company-setting.interface.js +2 -2
  27. package/build/events/edit-list-users.interface.d.ts +10 -10
  28. package/build/events/edit-list-users.interface.js +2 -2
  29. package/build/events/email-specs.interface.d.ts +18 -18
  30. package/build/events/email-specs.interface.js +2 -2
  31. package/build/events/get-companies.interface.d.ts +10 -10
  32. package/build/events/get-companies.interface.js +2 -2
  33. package/build/events/get-event.interface.d.ts +10 -10
  34. package/build/events/get-event.interface.js +2 -2
  35. package/build/events/get-unavailable-by-user.interface.d.ts +13 -13
  36. package/build/events/get-unavailable-by-user.interface.js +2 -2
  37. package/build/events/groups-by-company.interface.d.ts +13 -13
  38. package/build/events/groups-by-company.interface.js +2 -2
  39. package/build/events/manage-asseccibillity.interface.d.ts +13 -13
  40. package/build/events/manage-asseccibillity.interface.js +2 -2
  41. package/build/events/meeting-count-by-user.interface.d.ts +10 -0
  42. package/build/events/meeting-count-by-user.interface.js +3 -0
  43. package/build/events/meeting-count-by-user.interface.js.map +1 -0
  44. package/build/events/meeting-request-created.interface.d.ts +20 -20
  45. package/build/events/meeting-request-created.interface.js +2 -2
  46. package/build/events/meeting-requested-users.interface.d.ts +10 -10
  47. package/build/events/meeting-requested-users.interface.js +2 -2
  48. package/build/events/send-emails.interface.d.ts +21 -21
  49. package/build/events/send-emails.interface.js +2 -2
  50. package/build/events/subjects.d.ts +21 -20
  51. package/build/events/subjects.js +25 -24
  52. package/build/events/subjects.js.map +1 -1
  53. package/build/events/update-company-setting.interface.d.ts +16 -16
  54. package/build/events/update-company-setting.interface.js +2 -2
  55. package/build/events/update-user-event-info.interface.d.ts +16 -16
  56. package/build/events/update-user-event-info.interface.js +2 -2
  57. package/build/index.d.ts +65 -64
  58. package/build/index.js +77 -76
  59. package/build/index.js.map +1 -1
  60. package/build/interceptors/response.interceptor.d.ts +6 -6
  61. package/build/interceptors/response.interceptor.js +30 -30
  62. package/build/interceptors/serialize.interceptor.d.ts +12 -12
  63. package/build/interceptors/serialize.interceptor.js +24 -24
  64. package/build/middlewares/app.middleware.d.ts +6 -6
  65. package/build/middlewares/app.middleware.js +29 -29
  66. package/build/middlewares/authorizer.middleware.d.ts +10 -10
  67. package/build/middlewares/authorizer.middleware.js +99 -99
  68. package/build/tsconfig.tsbuildinfo +4997 -4983
  69. package/build/types/download-presigned-url.interface.d.ts +4 -4
  70. package/build/types/download-presigned-url.interface.js +2 -2
  71. package/build/types/header-user.interface.d.ts +7 -7
  72. package/build/types/header-user.interface.js +2 -2
  73. package/build/types/match-group.interface.d.ts +7 -7
  74. package/build/types/match-group.interface.js +2 -2
  75. package/build/types/match.interface.d.ts +6 -6
  76. package/build/types/match.interface.js +2 -2
  77. package/build/types/meeting-request-token.interface.d.ts +6 -6
  78. package/build/types/meeting-request-token.interface.js +2 -2
  79. package/build/types/meeting-type.enum.d.ts +6 -6
  80. package/build/types/meeting-type.enum.js +10 -10
  81. package/build/types/operation-types.d.ts +5 -5
  82. package/build/types/operation-types.js +9 -9
  83. package/build/types/read-result.interface.d.ts +5 -5
  84. package/build/types/read-result.interface.js +2 -2
  85. package/build/types/update-input-data.interface.d.ts +10 -10
  86. package/build/types/update-input-data.interface.js +2 -2
  87. package/build/types/upload-presigned-url.interface.d.ts +4 -4
  88. package/build/types/upload-presigned-url.interface.js +2 -2
  89. package/build/types/user-invitations.interface.d.ts +6 -6
  90. package/build/types/user-invitations.interface.js +2 -2
  91. package/build/types/user-role.enum.d.ts +7 -7
  92. package/build/types/user-role.enum.js +11 -11
  93. package/build/types/user-type.enum.d.ts +5 -5
  94. package/build/types/user-type.enum.js +9 -9
  95. package/build/types/visibility-group.interface.d.ts +6 -6
  96. package/build/types/visibility-group.interface.js +2 -2
  97. package/build/types/visibility.interface.d.ts +10 -10
  98. package/build/types/visibility.interface.js +2 -2
  99. package/build/utils/create-default-directories.d.ts +1 -1
  100. package/build/utils/create-default-directories.js +23 -23
  101. package/build/utils/equal-array-object.d.ts +1 -1
  102. package/build/utils/equal-array-object.js +9 -9
  103. package/build/utils/equal-object.d.ts +1 -1
  104. package/build/utils/equal-object.js +8 -8
  105. package/build/utils/parse-query.d.ts +1 -1
  106. package/build/utils/parse-query.js +30 -30
  107. package/build/utils/projection.d.ts +1 -1
  108. package/build/utils/projection.js +25 -25
  109. package/build/utils/timezone.d.ts +2 -2
  110. package/build/utils/timezone.js +14 -14
  111. package/build/validators/conditional-required.d.ts +2 -2
  112. package/build/validators/conditional-required.js +23 -23
  113. package/build/validators/date-validator.d.ts +2 -2
  114. package/build/validators/date-validator.js +20 -20
  115. package/build/validators/responses/customizeArrayResponse.d.ts +3 -3
  116. package/build/validators/responses/customizeArrayResponse.js +23 -23
  117. package/build/validators/responses/error.d.ts +2 -2
  118. package/build/validators/responses/error.interface.d.ts +4 -4
  119. package/build/validators/responses/error.interface.js +2 -2
  120. package/build/validators/responses/error.js +26 -26
  121. package/build/validators/responses/response-option.interface.d.ts +7 -7
  122. package/build/validators/responses/response-option.interface.js +2 -2
  123. package/build/validators/responses/succes-result.interface.d.ts +10 -10
  124. package/build/validators/responses/succes-result.interface.js +2 -2
  125. package/build/validators/responses/success.d.ts +3 -3
  126. package/build/validators/responses/success.interface.d.ts +4 -4
  127. package/build/validators/responses/success.interface.js +2 -2
  128. package/build/validators/responses/success.js +14 -14
  129. package/build/validators/validateNewItem.d.ts +1 -1
  130. package/build/validators/validateNewItem.js +22 -22
  131. package/build/validators/validateProjection.d.ts +1 -1
  132. package/build/validators/validateProjection.js +32 -32
  133. package/build/validators/validateProjectionResult.d.ts +1 -1
  134. package/build/validators/validateProjectionResult.js +36 -36
  135. package/build/validators/validateUpdateItem.d.ts +1 -1
  136. package/build/validators/validateUpdateItem.js +22 -22
  137. package/package.json +35 -35
@@ -1,6 +1,6 @@
1
- import { NestInterceptor, ExecutionContext, CallHandler } from '@nestjs/common';
2
- import { Observable } from 'rxjs';
3
- export declare function SerializeResponse(): MethodDecorator & ClassDecorator;
4
- export declare class ResponseInterceptor implements NestInterceptor {
5
- intercept(context: ExecutionContext, handler: CallHandler): Observable<any>;
6
- }
1
+ import { NestInterceptor, ExecutionContext, CallHandler } from '@nestjs/common';
2
+ import { Observable } from 'rxjs';
3
+ export declare function SerializeResponse(): MethodDecorator & ClassDecorator;
4
+ export declare class ResponseInterceptor implements NestInterceptor {
5
+ intercept(context: ExecutionContext, handler: CallHandler): Observable<any>;
6
+ }
@@ -1,31 +1,31 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ResponseInterceptor = exports.SerializeResponse = void 0;
4
- const common_1 = require("@nestjs/common");
5
- const rxjs_1 = require("rxjs");
6
- const operators_1 = require("rxjs/operators");
7
- const success_1 = require("../validators/responses/success");
8
- const error_1 = require("../validators/responses/error");
9
- function SerializeResponse() {
10
- return common_1.UseInterceptors(new ResponseInterceptor());
11
- }
12
- exports.SerializeResponse = SerializeResponse;
13
- class ResponseInterceptor {
14
- intercept(context, handler) {
15
- return handler.handle().pipe(operators_1.catchError((err) => {
16
- const response = error_1.error(err);
17
- err =
18
- (response === null || response === void 0 ? void 0 : response.error) && !err.status
19
- ? new common_1.BadRequestException(response.error)
20
- : err;
21
- err.response = response;
22
- console.log('ERROR---------------', err);
23
- return rxjs_1.throwError(() => err);
24
- }), operators_1.map((data) => {
25
- console.log('DATA---------------', data);
26
- return success_1.success(data);
27
- }));
28
- }
29
- }
30
- exports.ResponseInterceptor = ResponseInterceptor;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ResponseInterceptor = exports.SerializeResponse = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ const rxjs_1 = require("rxjs");
6
+ const operators_1 = require("rxjs/operators");
7
+ const success_1 = require("../validators/responses/success");
8
+ const error_1 = require("../validators/responses/error");
9
+ function SerializeResponse() {
10
+ return common_1.UseInterceptors(new ResponseInterceptor());
11
+ }
12
+ exports.SerializeResponse = SerializeResponse;
13
+ class ResponseInterceptor {
14
+ intercept(context, handler) {
15
+ return handler.handle().pipe(operators_1.catchError((err) => {
16
+ const response = error_1.error(err);
17
+ err =
18
+ (response === null || response === void 0 ? void 0 : response.error) && !err.status
19
+ ? new common_1.BadRequestException(response.error)
20
+ : err;
21
+ err.response = response;
22
+ console.log('ERROR---------------', err);
23
+ return rxjs_1.throwError(() => err);
24
+ }), operators_1.map((data) => {
25
+ console.log('DATA---------------', data);
26
+ return success_1.success(data);
27
+ }));
28
+ }
29
+ }
30
+ exports.ResponseInterceptor = ResponseInterceptor;
31
31
  //# sourceMappingURL=response.interceptor.js.map
@@ -1,12 +1,12 @@
1
- import { NestInterceptor, ExecutionContext, CallHandler } from '@nestjs/common';
2
- import { Observable } from 'rxjs';
3
- interface ClassConstructor {
4
- new (...args: any[]): object;
5
- }
6
- export declare function Serialize(dto: ClassConstructor): MethodDecorator & ClassDecorator;
7
- export declare class SerializeInterceptor implements NestInterceptor {
8
- private dto;
9
- constructor(dto: any);
10
- intercept(context: ExecutionContext, handler: CallHandler): Observable<any>;
11
- }
12
- export {};
1
+ import { NestInterceptor, ExecutionContext, CallHandler } from '@nestjs/common';
2
+ import { Observable } from 'rxjs';
3
+ interface ClassConstructor {
4
+ new (...args: any[]): object;
5
+ }
6
+ export declare function Serialize(dto: ClassConstructor): MethodDecorator & ClassDecorator;
7
+ export declare class SerializeInterceptor implements NestInterceptor {
8
+ private dto;
9
+ constructor(dto: any);
10
+ intercept(context: ExecutionContext, handler: CallHandler): Observable<any>;
11
+ }
12
+ export {};
@@ -1,25 +1,25 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SerializeInterceptor = exports.Serialize = void 0;
4
- const common_1 = require("@nestjs/common");
5
- const operators_1 = require("rxjs/operators");
6
- const class_transformer_1 = require("class-transformer");
7
- function Serialize(dto) {
8
- return common_1.UseInterceptors(new SerializeInterceptor(dto));
9
- }
10
- exports.Serialize = Serialize;
11
- class SerializeInterceptor {
12
- constructor(dto) {
13
- this.dto = dto;
14
- }
15
- intercept(context, handler) {
16
- return handler.handle().pipe(operators_1.map((data) => {
17
- const dataToTransform = (data === null || data === void 0 ? void 0 : data.data) && Array.isArray(data === null || data === void 0 ? void 0 : data.data) ? data.data : data;
18
- return class_transformer_1.plainToClass(this.dto, dataToTransform, {
19
- excludeExtraneousValues: true,
20
- });
21
- }));
22
- }
23
- }
24
- exports.SerializeInterceptor = SerializeInterceptor;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SerializeInterceptor = exports.Serialize = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ const operators_1 = require("rxjs/operators");
6
+ const class_transformer_1 = require("class-transformer");
7
+ function Serialize(dto) {
8
+ return common_1.UseInterceptors(new SerializeInterceptor(dto));
9
+ }
10
+ exports.Serialize = Serialize;
11
+ class SerializeInterceptor {
12
+ constructor(dto) {
13
+ this.dto = dto;
14
+ }
15
+ intercept(context, handler) {
16
+ return handler.handle().pipe(operators_1.map((data) => {
17
+ const dataToTransform = (data === null || data === void 0 ? void 0 : data.data) && Array.isArray(data === null || data === void 0 ? void 0 : data.data) ? data.data : data;
18
+ return class_transformer_1.plainToClass(this.dto, dataToTransform, {
19
+ excludeExtraneousValues: true,
20
+ });
21
+ }));
22
+ }
23
+ }
24
+ exports.SerializeInterceptor = SerializeInterceptor;
25
25
  //# sourceMappingURL=serialize.interceptor.js.map
@@ -1,6 +1,6 @@
1
- import { NestMiddleware } from '@nestjs/common';
2
- import { Request, Response, NextFunction } from 'express';
3
- export declare class AppLoggerMiddleware implements NestMiddleware {
4
- private logger;
5
- use(request: Request, response: Response, next: NextFunction): void;
6
- }
1
+ import { NestMiddleware } from '@nestjs/common';
2
+ import { Request, Response, NextFunction } from 'express';
3
+ export declare class AppLoggerMiddleware implements NestMiddleware {
4
+ private logger;
5
+ use(request: Request, response: Response, next: NextFunction): void;
6
+ }
@@ -1,30 +1,30 @@
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.AppLoggerMiddleware = void 0;
10
- const common_1 = require("@nestjs/common");
11
- let AppLoggerMiddleware = class AppLoggerMiddleware {
12
- constructor() {
13
- this.logger = new common_1.Logger('HTTP');
14
- }
15
- use(request, response, next) {
16
- const now = Date.now();
17
- const { method, baseUrl } = request;
18
- response.on('close', () => {
19
- const { statusCode } = response;
20
- const delay = Date.now() - now;
21
- this.logger.log(`${method} ${baseUrl} ${statusCode} ${delay}ms`);
22
- });
23
- next();
24
- }
25
- };
26
- AppLoggerMiddleware = __decorate([
27
- common_1.Injectable()
28
- ], AppLoggerMiddleware);
29
- exports.AppLoggerMiddleware = AppLoggerMiddleware;
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.AppLoggerMiddleware = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ let AppLoggerMiddleware = class AppLoggerMiddleware {
12
+ constructor() {
13
+ this.logger = new common_1.Logger('HTTP');
14
+ }
15
+ use(request, response, next) {
16
+ const now = Date.now();
17
+ const { method, baseUrl } = request;
18
+ response.on('close', () => {
19
+ const { statusCode } = response;
20
+ const delay = Date.now() - now;
21
+ this.logger.log(`${method} ${baseUrl} ${statusCode} ${delay}ms`);
22
+ });
23
+ next();
24
+ }
25
+ };
26
+ AppLoggerMiddleware = __decorate([
27
+ common_1.Injectable()
28
+ ], AppLoggerMiddleware);
29
+ exports.AppLoggerMiddleware = AppLoggerMiddleware;
30
30
  //# sourceMappingURL=app.middleware.js.map
@@ -1,10 +1,10 @@
1
- import { NestMiddleware } from '@nestjs/common';
2
- import { ClientProxy } from '@nestjs/microservices';
3
- import { Request, Response, NextFunction } from 'express';
4
- export declare class AuthorizerMiddleware implements NestMiddleware {
5
- private readonly client;
6
- private cachManager;
7
- constructor(client: ClientProxy);
8
- use(request: Request, response: Response, next: NextFunction): Promise<void>;
9
- private getHeaderParam;
10
- }
1
+ import { NestMiddleware } from '@nestjs/common';
2
+ import { ClientProxy } from '@nestjs/microservices';
3
+ import { Request, Response, NextFunction } from 'express';
4
+ export declare class AuthorizerMiddleware implements NestMiddleware {
5
+ private readonly client;
6
+ private cachManager;
7
+ constructor(client: ClientProxy);
8
+ use(request: Request, response: Response, next: NextFunction): Promise<void>;
9
+ private getHeaderParam;
10
+ }
@@ -1,100 +1,100 @@
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
- var __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.AuthorizerMiddleware = void 0;
16
- const common_1 = require("@nestjs/common");
17
- const microservices_1 = require("@nestjs/microservices");
18
- const rxjs_1 = require("rxjs");
19
- const redis_1 = require("redis");
20
- const subjects_1 = require("../events/subjects");
21
- class RedisClient {
22
- constructor() {
23
- this.redisClient = redis_1.createClient({
24
- url: process.env.REDIS_URI,
25
- });
26
- }
27
- async connectToRedis() {
28
- try {
29
- await this.redisClient.connect();
30
- }
31
- catch (err) { }
32
- }
33
- async getData(key) {
34
- try {
35
- await this.connectToRedis();
36
- return this.redisClient.get(key);
37
- }
38
- catch (err) {
39
- console.log('REDIS GET DATA ERROR--------', err);
40
- }
41
- }
42
- async setData(key, value) {
43
- try {
44
- await this.connectToRedis();
45
- return this.redisClient.set(key, value, { EX: 10 * 60 });
46
- }
47
- catch (err) {
48
- console.log('REDIS SET DATA ERROR--------', err);
49
- }
50
- }
51
- }
52
- let AuthorizerMiddleware = class AuthorizerMiddleware {
53
- constructor(client) {
54
- this.client = client;
55
- this.cachManager = new RedisClient();
56
- }
57
- async use(request, response, next) {
58
- const campaignUser = {
59
- subject: subjects_1.Subjects.AuthorizeUser,
60
- data: {
61
- path: request.route.path,
62
- method: request.method,
63
- cognitoUserId: this.getHeaderParam(request.headers, 'x-cognito-userid'),
64
- eventId: this.getHeaderParam(request.headers, 'event-id'),
65
- },
66
- };
67
- const redisResponse = await this.cachManager.getData(JSON.stringify(campaignUser.data));
68
- let resp;
69
- if (redisResponse) {
70
- resp = JSON.parse(redisResponse);
71
- console.log('FROM REDIS--------------------');
72
- }
73
- else {
74
- resp = await rxjs_1.firstValueFrom(this.client.send(campaignUser.subject, campaignUser.data));
75
- console.log('FROM MESSAGE BROKER--------------------', resp);
76
- await this.cachManager.setData(JSON.stringify(campaignUser.data), JSON.stringify(resp));
77
- }
78
- if (resp.isAuthorized === false) {
79
- throw new common_1.UnauthorizedException();
80
- }
81
- else {
82
- request.headers.id = resp.id;
83
- request.headers.type = resp.type;
84
- request.headers.role = resp.role;
85
- request.headers.email = resp.email;
86
- request.headers.company = resp.company;
87
- }
88
- next();
89
- }
90
- getHeaderParam(headers, param) {
91
- return Array.isArray(headers[param]) ? headers[param][0] : headers[param];
92
- }
93
- };
94
- AuthorizerMiddleware = __decorate([
95
- common_1.Injectable(),
96
- __param(0, common_1.Inject('USER_SERVICE')),
97
- __metadata("design:paramtypes", [microservices_1.ClientProxy])
98
- ], AuthorizerMiddleware);
99
- exports.AuthorizerMiddleware = AuthorizerMiddleware;
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
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.AuthorizerMiddleware = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const microservices_1 = require("@nestjs/microservices");
18
+ const rxjs_1 = require("rxjs");
19
+ const redis_1 = require("redis");
20
+ const subjects_1 = require("../events/subjects");
21
+ class RedisClient {
22
+ constructor() {
23
+ this.redisClient = redis_1.createClient({
24
+ url: process.env.REDIS_URI,
25
+ });
26
+ }
27
+ async connectToRedis() {
28
+ try {
29
+ await this.redisClient.connect();
30
+ }
31
+ catch (err) { }
32
+ }
33
+ async getData(key) {
34
+ try {
35
+ await this.connectToRedis();
36
+ return this.redisClient.get(key);
37
+ }
38
+ catch (err) {
39
+ console.log('REDIS GET DATA ERROR--------', err);
40
+ }
41
+ }
42
+ async setData(key, value) {
43
+ try {
44
+ await this.connectToRedis();
45
+ return this.redisClient.set(key, value, { EX: 10 * 60 });
46
+ }
47
+ catch (err) {
48
+ console.log('REDIS SET DATA ERROR--------', err);
49
+ }
50
+ }
51
+ }
52
+ let AuthorizerMiddleware = class AuthorizerMiddleware {
53
+ constructor(client) {
54
+ this.client = client;
55
+ this.cachManager = new RedisClient();
56
+ }
57
+ async use(request, response, next) {
58
+ const campaignUser = {
59
+ subject: subjects_1.Subjects.AuthorizeUser,
60
+ data: {
61
+ path: request.route.path,
62
+ method: request.method,
63
+ cognitoUserId: this.getHeaderParam(request.headers, 'x-cognito-userid'),
64
+ eventId: this.getHeaderParam(request.headers, 'event-id'),
65
+ },
66
+ };
67
+ const redisResponse = await this.cachManager.getData(JSON.stringify(campaignUser.data));
68
+ let resp;
69
+ if (redisResponse) {
70
+ resp = JSON.parse(redisResponse);
71
+ console.log('FROM REDIS--------------------');
72
+ }
73
+ else {
74
+ resp = await rxjs_1.firstValueFrom(this.client.send(campaignUser.subject, campaignUser.data));
75
+ console.log('FROM MESSAGE BROKER--------------------', resp);
76
+ await this.cachManager.setData(JSON.stringify(campaignUser.data), JSON.stringify(resp));
77
+ }
78
+ if (resp.isAuthorized === false) {
79
+ throw new common_1.UnauthorizedException();
80
+ }
81
+ else {
82
+ request.headers.id = resp.id;
83
+ request.headers.type = resp.type;
84
+ request.headers.role = resp.role;
85
+ request.headers.email = resp.email;
86
+ request.headers.company = resp.company;
87
+ }
88
+ next();
89
+ }
90
+ getHeaderParam(headers, param) {
91
+ return Array.isArray(headers[param]) ? headers[param][0] : headers[param];
92
+ }
93
+ };
94
+ AuthorizerMiddleware = __decorate([
95
+ common_1.Injectable(),
96
+ __param(0, common_1.Inject('USER_SERVICE')),
97
+ __metadata("design:paramtypes", [microservices_1.ClientProxy])
98
+ ], AuthorizerMiddleware);
99
+ exports.AuthorizerMiddleware = AuthorizerMiddleware;
100
100
  //# sourceMappingURL=authorizer.middleware.js.map