@raymanselltickets/common 1.0.8 → 1.0.10
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/build/events/base-listener.d.ts +0 -1
- package/build/events/base-listener.js +6 -5
- package/build/events/order-cancelled-event.d.ts +10 -0
- package/build/events/order-cancelled-event.js +1 -0
- package/build/events/order-created-event.d.ts +15 -0
- package/build/events/order-created-event.js +1 -0
- package/build/events/subjects.d.ts +3 -1
- package/build/events/subjects.js +2 -0
- package/build/index.d.ts +2 -0
- package/build/index.js +2 -0
- package/package.json +1 -1
|
@@ -7,7 +7,6 @@ interface Event {
|
|
|
7
7
|
export declare abstract class Listener<T extends Event> {
|
|
8
8
|
abstract subject: T['subject'];
|
|
9
9
|
abstract queueGroupName: string;
|
|
10
|
-
abstract stream: string;
|
|
11
10
|
abstract onMessage(data: T['data'], msg: JsMsg): void;
|
|
12
11
|
private jsManager;
|
|
13
12
|
private jsClient;
|
|
@@ -8,24 +8,25 @@ export class Listener {
|
|
|
8
8
|
this.jsClient = jsClient;
|
|
9
9
|
}
|
|
10
10
|
async listen() {
|
|
11
|
-
|
|
11
|
+
// find the stream that stores a specific subject
|
|
12
|
+
const stream = await this.jsManager.streams.find(this.subject);
|
|
13
|
+
const consumerInfo = await this.jsManager.consumers.add(stream, {
|
|
12
14
|
durable_name: this.queueGroupName,
|
|
13
15
|
ack_policy: AckPolicy.Explicit,
|
|
14
16
|
deliver_policy: DeliverPolicy.All,
|
|
15
17
|
ack_wait: this.ackWait,
|
|
16
18
|
// deliver_group: this.queueGroupName // do i need this? i did not have this issue https://globant.udemy.com/course/microservices-with-node-js-and-react/learn/lecture/19124592#questions/12755303 @7:00
|
|
17
19
|
});
|
|
18
|
-
const consumer = await this.jsClient.consumers.get(
|
|
20
|
+
const consumer = await this.jsClient.consumers.get(stream, consumerInfo.name);
|
|
19
21
|
while (true) {
|
|
20
22
|
console.log('Waiting for messages...');
|
|
21
23
|
const messages = await consumer.consume();
|
|
22
24
|
try {
|
|
23
25
|
for await (const msg of messages) {
|
|
24
|
-
console.log(`Message received: ${this.subject} / ${this.queueGroupName} / ${
|
|
26
|
+
console.log(`Message received: ${this.subject} / ${this.queueGroupName} / ${stream}`);
|
|
25
27
|
const parsedData = msg.string();
|
|
26
28
|
console.log(msg.seq, msg.string());
|
|
27
|
-
this.onMessage(parsedData, msg);
|
|
28
|
-
msg.ack();
|
|
29
|
+
this.onMessage(parsedData, msg); // msg is ack'd in this handler
|
|
29
30
|
}
|
|
30
31
|
}
|
|
31
32
|
catch (err) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Subjects } from './subjects.js';
|
|
2
|
+
import { OrderStatus } from './types/order-status.js';
|
|
3
|
+
export interface OrderCreatedEvent {
|
|
4
|
+
subject: Subjects.OrderCreated;
|
|
5
|
+
data: {
|
|
6
|
+
id: string;
|
|
7
|
+
status: OrderStatus;
|
|
8
|
+
userId: string;
|
|
9
|
+
expiresAt: string;
|
|
10
|
+
ticket: {
|
|
11
|
+
id: string;
|
|
12
|
+
price: number;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/build/events/subjects.js
CHANGED
|
@@ -2,4 +2,6 @@ export var Subjects;
|
|
|
2
2
|
(function (Subjects) {
|
|
3
3
|
Subjects["TicketCreated"] = "ticket:created";
|
|
4
4
|
Subjects["TicketUpdated"] = "ticket:updated";
|
|
5
|
+
Subjects["OrderCreated"] = "order:created";
|
|
6
|
+
Subjects["OrderCancelled"] = "order:cancelled";
|
|
5
7
|
})(Subjects || (Subjects = {}));
|
package/build/index.d.ts
CHANGED
|
@@ -14,3 +14,5 @@ export * from './events/subjects.js';
|
|
|
14
14
|
export * from './events/ticket-created-event.js';
|
|
15
15
|
export * from './events/ticket-updated-event.js';
|
|
16
16
|
export * from './events/types/order-status.js';
|
|
17
|
+
export * from './events/order-cancelled-event.js';
|
|
18
|
+
export * from './events/order-created-event.js';
|
package/build/index.js
CHANGED
|
@@ -14,3 +14,5 @@ export * from './events/subjects.js';
|
|
|
14
14
|
export * from './events/ticket-created-event.js';
|
|
15
15
|
export * from './events/ticket-updated-event.js';
|
|
16
16
|
export * from './events/types/order-status.js';
|
|
17
|
+
export * from './events/order-cancelled-event.js';
|
|
18
|
+
export * from './events/order-created-event.js';
|