@seidor-cloud-produtos/orbit-backend-lib 2.0.106 → 2.0.108

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.
@@ -6,7 +6,7 @@ const consistency_event_1 = tslib_1.__importDefault(require("../../domain/events
6
6
  class ConsistencyEventDispatcher {
7
7
  async dispatch(entity, authorizerHeaders, eventName) {
8
8
  try {
9
- const event = new consistency_event_1.default(entity, authorizerHeaders, eventName);
9
+ const event = new consistency_event_1.default([entity], authorizerHeaders, eventName);
10
10
  await this.publish(event);
11
11
  }
12
12
  catch (error) {
@@ -15,8 +15,8 @@ class ConsistencyEventDispatcher {
15
15
  }
16
16
  async dispatchBatch(entities, authorizerHeaders, eventName) {
17
17
  try {
18
- const events = entities.map(entity => new consistency_event_1.default(entity, authorizerHeaders, eventName));
19
- await Promise.all(events.map(event => this.publish(event)));
18
+ const event = new consistency_event_1.default(entities, authorizerHeaders, eventName);
19
+ await this.publish(event);
20
20
  }
21
21
  catch (error) {
22
22
  console.error(`Failed to dispatch batch consistency events: ${error}`);
@@ -3,13 +3,13 @@ import { Entity } from '../../entities/entity';
3
3
  import DomainEvent from '../domain-event';
4
4
  import { EventsName } from './events-enum';
5
5
  export interface ConsistencyEventMessage {
6
- eventName: string;
6
+ eventName: EventsName;
7
7
  origin: AuthorizerHeaders;
8
- payload: Record<string, unknown>;
8
+ payload: Record<string, any>[];
9
9
  }
10
10
  export default class ConsistencyEvent implements DomainEvent {
11
11
  readonly eventDate: Date;
12
12
  readonly name: string;
13
13
  readonly input: ConsistencyEventMessage;
14
- constructor(entity: Entity<any>, authorizerHeaders: AuthorizerHeaders, eventName: EventsName);
14
+ constructor(entities: Entity<any>[], authorizerHeaders: AuthorizerHeaders, eventName: EventsName);
15
15
  }
@@ -4,11 +4,11 @@ class ConsistencyEvent {
4
4
  eventDate = new Date();
5
5
  name = '';
6
6
  input;
7
- constructor(entity, authorizerHeaders, eventName) {
7
+ constructor(entities, authorizerHeaders, eventName) {
8
8
  this.input = {
9
9
  eventName,
10
10
  origin: authorizerHeaders,
11
- payload: entity.toEventDispatchObject(),
11
+ payload: entities.map(entity => entity.toEventDispatchObject()),
12
12
  };
13
13
  }
14
14
  }
@@ -0,0 +1,9 @@
1
+ import { AuthorizerHeaders } from '../../../../infra/http/handle-authorizer-headers';
2
+ import { ConsistencyEventMessage } from '../consistency-event';
3
+ import { EventsName } from '../events-enum';
4
+ import { UserUpdatedPayload } from './user-updated';
5
+ export interface UserTemporaryPasswordGeneratedMessage extends ConsistencyEventMessage {
6
+ eventName: EventsName.USER_TEMPORARY_PASSWORD_GENERATED;
7
+ origin: AuthorizerHeaders;
8
+ payload: UserUpdatedPayload[];
9
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,10 @@
1
+ export interface UserUpdatedPayload {
2
+ id: string;
3
+ name: string;
4
+ email: {
5
+ value: string;
6
+ };
7
+ description: string;
8
+ createdAt: string;
9
+ updatedAt: string;
10
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -124,6 +124,9 @@ type CreateConsumers = {
124
124
  exchangeName: string;
125
125
  exchangeType: 'direct' | 'fanout';
126
126
  queueType?: 'classic' | 'quorum' | 'stream';
127
- dlqTTLms?: number | null;
127
+ dlq?: {
128
+ TTLms?: number | null;
129
+ exchangeName?: string;
130
+ };
128
131
  };
129
132
  export {};
@@ -238,26 +238,28 @@ class AmqpQueue {
238
238
  });
239
239
  await channel.assertQueue(queueName, {
240
240
  arguments: {
241
- 'x-dead-letter-exchange': `${configs.exchangeName}.DLX`,
241
+ 'x-dead-letter-exchange': `${configs.dlq?.exchangeName || configs.exchangeName}.DLX`,
242
242
  'x-dead-letter-routing-key': `${queueName || ''}.DLK`,
243
243
  'x-queue-type': configs.queueType || 'classic',
244
244
  },
245
245
  durable: true,
246
- deadLetterExchange: `${configs.exchangeName}.DLX`,
246
+ deadLetterExchange: `${configs.dlq?.exchangeName || configs.exchangeName}.DLX`,
247
247
  deadLetterRoutingKey: `${queueName || ''}.DLK`,
248
248
  });
249
249
  await channel.bindQueue(queueName, configs.exchangeName, queueName || '');
250
- await channel.assertExchange(`${configs.exchangeName}.DLX`, configs.exchangeType || 'direct', {
250
+ await channel.assertExchange(`${configs.dlq?.exchangeName || configs.exchangeName}.DLX`, configs.exchangeType || 'direct', {
251
251
  durable: true,
252
252
  });
253
253
  await channel.assertQueue(`${queueName}.DLQ`, {
254
254
  durable: true,
255
255
  arguments: {
256
- ...(configs.dlqTTLms ? { 'x-message-ttl': configs.dlqTTLms } : {}),
256
+ ...(configs.dlq?.TTLms
257
+ ? { 'x-message-ttl': configs.dlq?.TTLms }
258
+ : {}),
257
259
  'x-queue-type': 'classic',
258
260
  },
259
261
  });
260
- await channel.bindQueue(`${queueName}.DLQ`, `${configs.exchangeName}.DLX`, `${queueName || ''}.DLK`);
262
+ await channel.bindQueue(`${queueName}.DLQ`, `${configs.dlq?.exchangeName || configs.exchangeName}.DLX`, `${queueName || ''}.DLK`);
261
263
  await channel.close();
262
264
  }
263
265
  catch (err) {
@@ -271,9 +273,12 @@ class AmqpQueue {
271
273
  const buildedConfigs = {
272
274
  ...configs,
273
275
  };
274
- if (buildedConfigs.dlqTTLms === undefined) {
276
+ if (buildedConfigs.dlq?.TTLms === undefined) {
275
277
  const sevenDaysInMs = 604800000;
276
- buildedConfigs.dlqTTLms = sevenDaysInMs;
278
+ buildedConfigs.dlq = {
279
+ ...(buildedConfigs.dlq || {}),
280
+ TTLms: sevenDaysInMs,
281
+ };
277
282
  }
278
283
  return await this.createConsumers(queueName, configs);
279
284
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seidor-cloud-produtos/orbit-backend-lib",
3
- "version": "2.0.106",
3
+ "version": "2.0.108",
4
4
  "description": "Internal lib for backend components",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",