@munlib/common 1.0.210 → 1.0.214
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/errors/erroresStatus.js +6 -2
- package/build/index.d.ts +0 -1
- package/build/index.js +1 -1
- package/build/middlewares/apm.d.ts +0 -3
- package/build/middlewares/apm.js +38 -35
- package/build/middlewares/error-handler.js +0 -2
- package/package.json +37 -37
- package/build/events/ExpirationCompletedEvent.d.ts +0 -10
- package/build/events/ExpirationCompletedEvent.js +0 -2
- package/build/events/OrderCreatedEvent.d.ts +0 -27
- package/build/events/OrderCreatedEvent.js +0 -2
- package/build/events/OrderUpdatedEvent.d.ts +0 -27
- package/build/events/OrderUpdatedEvent.js +0 -2
- package/build/events/PaymentCreatedEvent.d.ts +0 -21
- package/build/events/PaymentCreatedEvent.js +0 -2
- package/build/events/PrivacyTermsCreatedEvent.d.ts +0 -8
- package/build/events/PrivacyTermsCreatedEvent.js +0 -2
- package/build/events/PrivacyTermsUpdatedEvent.d.ts +0 -8
- package/build/events/PrivacyTermsUpdatedEvent.js +0 -2
- package/build/events/base-listener.d.ts +0 -17
- package/build/events/base-listener.js +0 -107
- package/build/events/base-publisher.d.ts +0 -15
- package/build/events/base-publisher.js +0 -100
- package/build/events/order-cancelled-event.d.ts +0 -11
- package/build/events/order-cancelled-event.js +0 -2
- package/build/events/order-created-event.d.ts +0 -16
- package/build/events/order-created-event.js +0 -2
- package/build/events/ticket-created-event.d.ts +0 -11
- package/build/events/ticket-created-event.js +0 -2
- package/build/events/ticket-updated-event.d.ts +0 -12
- package/build/events/ticket-updated-event.js +0 -2
- package/build/events/types/queue-group-name.d.ts +0 -6
- package/build/events/types/queue-group-name.js +0 -10
- package/build/middlewares/current-user.d.ts +0 -0
- package/build/middlewares/current-user.js +0 -37
|
@@ -52,7 +52,7 @@ exports.errorCodes = {
|
|
|
52
52
|
"E045": "Revisar el usuario que reversa",
|
|
53
53
|
"E046": "Revisar el usuario que aprueba el reverso",
|
|
54
54
|
"E047": "Revisar el nro. de transacción para el reverso",
|
|
55
|
-
"E048": "
|
|
55
|
+
"E048": "El número de transacción enviada ya ha sido reversada",
|
|
56
56
|
"E049": "Revisar que la recaudacion se realizo el mismo dia en el que se solicita el reverso",
|
|
57
57
|
"E050": "No hay rubros a reversar",
|
|
58
58
|
"E051": "Vehiculo ya salio del CRV no es posible reversar la transaccion",
|
|
@@ -92,6 +92,7 @@ exports.errorCodes = {
|
|
|
92
92
|
"INST": "El código de Instalacion no existe en la base maestra",
|
|
93
93
|
"AUT": "No tiene autorizacion",
|
|
94
94
|
"REV": "Reversado",
|
|
95
|
+
"REVERSED": "Reversado",
|
|
95
96
|
"ECAN": "Canal transaccional enviado no existe",
|
|
96
97
|
//solpago
|
|
97
98
|
"ING": "Se ha realizado la solicitud satisfactoriamente",
|
|
@@ -231,6 +232,7 @@ exports.statusCodeMapping = {
|
|
|
231
232
|
"INST": "ERROR",
|
|
232
233
|
"AUT": "ERROR",
|
|
233
234
|
"REV": "SUCCESS",
|
|
235
|
+
"REVERSED": "SUCCESS",
|
|
234
236
|
"ECAN": "ERROR",
|
|
235
237
|
//solpagoEtapa
|
|
236
238
|
"ING": "SUCCESS",
|
|
@@ -371,6 +373,7 @@ exports.httpStatusCodes = {
|
|
|
371
373
|
"INST": 404,
|
|
372
374
|
"AUT": 401,
|
|
373
375
|
"REV": 409,
|
|
376
|
+
"REVERSED": 409,
|
|
374
377
|
"ECAN": 400,
|
|
375
378
|
"ING": 200,
|
|
376
379
|
"FPAG": 409,
|
|
@@ -501,6 +504,7 @@ exports.httpStatusCodesTypes = {
|
|
|
501
504
|
"INST": instituciones_pagos_1.ErrorCategories.SINTAX,
|
|
502
505
|
"AUT": instituciones_pagos_1.ErrorCategories.MIDDLEWARE,
|
|
503
506
|
"REV": instituciones_pagos_1.ErrorCategories.SUCCESS,
|
|
507
|
+
"REVERSED": instituciones_pagos_1.ErrorCategories.SUCCESS,
|
|
504
508
|
"ECAN": instituciones_pagos_1.ErrorCategories.MIDDLEWARE,
|
|
505
509
|
//SOLpago
|
|
506
510
|
"ING": instituciones_pagos_1.ErrorCategories.SUCCESS,
|
|
@@ -520,7 +524,7 @@ exports.httpStatusCodesTypes = {
|
|
|
520
524
|
"OK200": instituciones_pagos_1.ErrorCategories.SUCCESS,
|
|
521
525
|
"ERR02": instituciones_pagos_1.ErrorCategories.MIDDLEWARE,
|
|
522
526
|
"ERR03": instituciones_pagos_1.ErrorCategories.MIDDLEWARE,
|
|
523
|
-
"ERR11": instituciones_pagos_1.ErrorCategories.
|
|
527
|
+
"ERR11": instituciones_pagos_1.ErrorCategories.SINTAX,
|
|
524
528
|
"ERR12": instituciones_pagos_1.ErrorCategories.SINTAX,
|
|
525
529
|
"ERR13": instituciones_pagos_1.ErrorCategories.SINTAX,
|
|
526
530
|
"ERR14": instituciones_pagos_1.ErrorCategories.MIDDLEWARE,
|
package/build/index.d.ts
CHANGED
package/build/index.js
CHANGED
|
@@ -31,4 +31,4 @@ __exportStar(require("./events/types/order-status"), exports);
|
|
|
31
31
|
__exportStar(require("./events/types/instituciones-pagos"), exports);
|
|
32
32
|
__exportStar(require("./logs/logger"), exports);
|
|
33
33
|
__exportStar(require("./errors/erroresStatus"), exports);
|
|
34
|
-
|
|
34
|
+
//export * from './middlewares/apm';
|
package/build/middlewares/apm.js
CHANGED
|
@@ -1,46 +1,49 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var ElasticsearchTransport = require('winston-elasticsearch').ElasticsearchTransport;
|
|
2
|
+
/* const apm = require('elastic-apm-node');
|
|
3
|
+
const winston = require('winston');
|
|
4
|
+
const { ElasticsearchTransport } = require('winston-elasticsearch');
|
|
5
|
+
|
|
7
6
|
// Inicializa el APM
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
const apmInstance = apm.start({
|
|
8
|
+
serviceName: process.env.ELK_SERVICE_NAME || 'MUNICIPIO_OBSERVABILIDAD',
|
|
9
|
+
apiKey: process.env.ELK_API_KEY,
|
|
10
|
+
serverUrl: process.env.ELK_SERVER_URL,
|
|
11
|
+
environment: process.env.ELK_ENVIRONMENT || 'DEV',
|
|
12
|
+
logLevel: 'error',
|
|
14
13
|
});
|
|
15
|
-
|
|
14
|
+
|
|
16
15
|
// Configura el transport para Elasticsearch
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
16
|
+
const esTransport = new ElasticsearchTransport({
|
|
17
|
+
level: 'info',
|
|
18
|
+
clientOpts: {
|
|
19
|
+
node: process.env.ELK_SERVER_URL!,
|
|
20
|
+
auth: {
|
|
21
|
+
apiKey: process.env.ELK_API_KEY!, // Si es necesario
|
|
22
|
+
},
|
|
23
|
+
ssl: {
|
|
24
|
+
rejectUnauthorized: false, // Cambia a true si es necesario
|
|
25
|
+
},
|
|
26
|
+
},
|
|
28
27
|
});
|
|
28
|
+
|
|
29
29
|
// Configura el logger
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
30
|
+
const loggerAPM = winston.createLogger({
|
|
31
|
+
level: 'info',
|
|
32
|
+
format: winston.format.json(),
|
|
33
|
+
transports: [
|
|
34
|
+
esTransport,
|
|
35
|
+
new winston.transports.Console(),
|
|
36
|
+
],
|
|
37
37
|
});
|
|
38
|
-
|
|
38
|
+
|
|
39
39
|
// Captura errores y envíalos al APM
|
|
40
|
-
loggerAPM.on('error',
|
|
41
|
-
|
|
40
|
+
loggerAPM.on('error', (error: any) => {
|
|
41
|
+
apm.captureError(error); // Envía el error al APM
|
|
42
42
|
});
|
|
43
|
+
|
|
43
44
|
// Captura logs y envíalos al APM
|
|
44
|
-
loggerAPM.on('data',
|
|
45
|
-
|
|
45
|
+
loggerAPM.on('data', (log: any) => {
|
|
46
|
+
apm.captureError(log); // Captura el log en APM
|
|
46
47
|
});
|
|
48
|
+
// Exporta el logger y el APM para usarlos en tu aplicación
|
|
49
|
+
export { apmInstance, loggerAPM }; */
|
|
@@ -7,10 +7,8 @@ var instituciones_pagos_1 = require("../events/types/instituciones-pagos");
|
|
|
7
7
|
var errorHandler = function (err, req, res, next) {
|
|
8
8
|
var statusCode = 500; // Código de estado por defecto para errores genéricos
|
|
9
9
|
if (err instanceof custom_error_1.CustomError) {
|
|
10
|
-
console.log("instacoia de custom Error", err.statusCode, err.serializeErrors());
|
|
11
10
|
return res.status(err.statusCode).send(err.serializeErrors());
|
|
12
11
|
}
|
|
13
|
-
console.log("dorecto Error");
|
|
14
12
|
res.status(statusCode).send({
|
|
15
13
|
status: erroresStatus_1.ErrorController.getGeneralStatus(statusCode.toString()) || "error",
|
|
16
14
|
msg: err.message, // Agregar el código de estado al objeto de errores
|
package/package.json
CHANGED
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@munlib/common",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "",
|
|
5
|
-
"main": "./build/index.js",
|
|
6
|
-
"types": "./build/index.d.ts",
|
|
7
|
-
"files": [
|
|
8
|
-
"build/**/*"
|
|
9
|
-
],
|
|
10
|
-
"scripts": {
|
|
11
|
-
"clean": "del .\\build\\*",
|
|
12
|
-
"build": "npm run clean && tsc",
|
|
13
|
-
"pub": "git add . && git commit -m \"Updates\" && npm version patch && npm run build && npm publish"
|
|
14
|
-
},
|
|
15
|
-
"keywords": [],
|
|
16
|
-
"author": "",
|
|
17
|
-
"license": "ISC",
|
|
18
|
-
"devDependencies": {
|
|
19
|
-
"@types/winston": "^2.4.4",
|
|
20
|
-
"del-cli": "^4.0.0",
|
|
21
|
-
"typescript": "^5.2.2"
|
|
22
|
-
},
|
|
23
|
-
"dependencies": {
|
|
24
|
-
"@types/cookie-session": "^2.0.42",
|
|
25
|
-
"@types/express": "^4.17.12",
|
|
26
|
-
"@types/jsonwebtoken": "^8.5.1",
|
|
27
|
-
"cookie-session": "^1.4.0",
|
|
28
|
-
"elastic-apm-node": "^4.7.3",
|
|
29
|
-
"express": "^4.17.1",
|
|
30
|
-
"express-validator": "^6.12.0",
|
|
31
|
-
"jsonwebtoken": "^8.5.1",
|
|
32
|
-
"logstash-winston-3": "^2.1.3",
|
|
33
|
-
"winston": "^3.14.2",
|
|
34
|
-
"winston-elasticsearch": "^0.19.0",
|
|
35
|
-
"winston-logstash": "^1.2.1"
|
|
36
|
-
}
|
|
37
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@munlib/common",
|
|
3
|
+
"version": "1.0.214",
|
|
4
|
+
"description": "",
|
|
5
|
+
"main": "./build/index.js",
|
|
6
|
+
"types": "./build/index.d.ts",
|
|
7
|
+
"files": [
|
|
8
|
+
"build/**/*"
|
|
9
|
+
],
|
|
10
|
+
"scripts": {
|
|
11
|
+
"clean": "del .\\build\\*",
|
|
12
|
+
"build": "npm run clean && tsc",
|
|
13
|
+
"pub": "git add . && git commit -m \"Updates\" && npm version patch && npm run build && npm publish"
|
|
14
|
+
},
|
|
15
|
+
"keywords": [],
|
|
16
|
+
"author": "",
|
|
17
|
+
"license": "ISC",
|
|
18
|
+
"devDependencies": {
|
|
19
|
+
"@types/winston": "^2.4.4",
|
|
20
|
+
"del-cli": "^4.0.0",
|
|
21
|
+
"typescript": "^5.2.2"
|
|
22
|
+
},
|
|
23
|
+
"dependencies": {
|
|
24
|
+
"@types/cookie-session": "^2.0.42",
|
|
25
|
+
"@types/express": "^4.17.12",
|
|
26
|
+
"@types/jsonwebtoken": "^8.5.1",
|
|
27
|
+
"cookie-session": "^1.4.0",
|
|
28
|
+
"elastic-apm-node": "^4.7.3",
|
|
29
|
+
"express": "^4.17.1",
|
|
30
|
+
"express-validator": "^6.12.0",
|
|
31
|
+
"jsonwebtoken": "^8.5.1",
|
|
32
|
+
"logstash-winston-3": "^2.1.3",
|
|
33
|
+
"winston": "^3.14.2",
|
|
34
|
+
"winston-elasticsearch": "^0.19.0",
|
|
35
|
+
"winston-logstash": "^1.2.1"
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { ExchangeNames, ExchangeTypes, QueueNames, RoutingKeys } from "./subjects";
|
|
2
|
-
export interface ExpirationCompletedEvent {
|
|
3
|
-
exchangeName: ExchangeNames;
|
|
4
|
-
exchangeType: ExchangeTypes;
|
|
5
|
-
routingKey: RoutingKeys;
|
|
6
|
-
queueName: QueueNames;
|
|
7
|
-
data: {
|
|
8
|
-
orderId: string;
|
|
9
|
-
};
|
|
10
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { OrderStatus } from "..";
|
|
2
|
-
import { ExchangeNames, ExchangeTypes, QueueNames, RoutingKeys } from "./subjects";
|
|
3
|
-
interface CartItem {
|
|
4
|
-
[key: string]: any;
|
|
5
|
-
}
|
|
6
|
-
export interface OrderCreatedEvent {
|
|
7
|
-
exchangeName: ExchangeNames;
|
|
8
|
-
exchangeType: ExchangeTypes;
|
|
9
|
-
routingKey: RoutingKeys;
|
|
10
|
-
queueName: QueueNames;
|
|
11
|
-
data: {
|
|
12
|
-
id: string;
|
|
13
|
-
status: OrderStatus;
|
|
14
|
-
userId: string;
|
|
15
|
-
expiresAt?: Date;
|
|
16
|
-
version: number;
|
|
17
|
-
cart?: CartItem[];
|
|
18
|
-
paymentMethod: string;
|
|
19
|
-
numTransaccion: string;
|
|
20
|
-
totalDeuda: number;
|
|
21
|
-
isPaid?: boolean;
|
|
22
|
-
paidAt?: Date;
|
|
23
|
-
isDelivered?: boolean;
|
|
24
|
-
deliveredAt?: Date;
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
export {};
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { OrderStatus } from "..";
|
|
2
|
-
import { ExchangeNames, ExchangeTypes, QueueNames, RoutingKeys } from "./subjects";
|
|
3
|
-
interface CartItem {
|
|
4
|
-
[key: string]: any;
|
|
5
|
-
}
|
|
6
|
-
export interface OrderUpdatedEvent {
|
|
7
|
-
exchangeName: ExchangeNames;
|
|
8
|
-
exchangeType: ExchangeTypes;
|
|
9
|
-
routingKey: RoutingKeys;
|
|
10
|
-
queueName: QueueNames;
|
|
11
|
-
data: {
|
|
12
|
-
id: string;
|
|
13
|
-
status: OrderStatus;
|
|
14
|
-
userId: string;
|
|
15
|
-
expiresAt?: Date;
|
|
16
|
-
version: number;
|
|
17
|
-
cart?: CartItem[];
|
|
18
|
-
paymentMethod: string;
|
|
19
|
-
numTransaccion: string;
|
|
20
|
-
totalDeuda: number;
|
|
21
|
-
isPaid?: boolean;
|
|
22
|
-
paidAt?: Date;
|
|
23
|
-
isDelivered?: boolean;
|
|
24
|
-
deliveredAt?: Date;
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
export {};
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { ExchangeNames, ExchangeTypes, QueueNames, RoutingKeys } from "./subjects";
|
|
2
|
-
export interface PaymentCreatedEvent {
|
|
3
|
-
exchangeName: ExchangeNames;
|
|
4
|
-
exchangeType: ExchangeTypes;
|
|
5
|
-
routingKey: RoutingKeys;
|
|
6
|
-
queueName: QueueNames;
|
|
7
|
-
data: {
|
|
8
|
-
id: string;
|
|
9
|
-
orderId: string;
|
|
10
|
-
paymentId: string;
|
|
11
|
-
numTransaccion: {
|
|
12
|
-
[key: string]: string;
|
|
13
|
-
};
|
|
14
|
-
Iidentificadordeuda: string;
|
|
15
|
-
status: {
|
|
16
|
-
[key: string]: string;
|
|
17
|
-
};
|
|
18
|
-
institucion: string;
|
|
19
|
-
version?: number;
|
|
20
|
-
};
|
|
21
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { Channel, ConsumeMessage } from "amqplib";
|
|
2
|
-
interface ListenerData<T> {
|
|
3
|
-
data: T;
|
|
4
|
-
}
|
|
5
|
-
export declare abstract class Listener<T extends ListenerData<T["data"]>> {
|
|
6
|
-
private connection;
|
|
7
|
-
protected channel: Channel;
|
|
8
|
-
private exchangeName;
|
|
9
|
-
private exchangeType;
|
|
10
|
-
private queueName;
|
|
11
|
-
private routingKey;
|
|
12
|
-
abstract onMessage(data: T["data"], msg: ConsumeMessage, channel: Channel): void;
|
|
13
|
-
constructor(exchangeName: string, exchangeType: string, queueName: string, routingKey: string);
|
|
14
|
-
connect(): Promise<void>;
|
|
15
|
-
close(): Promise<void>;
|
|
16
|
-
}
|
|
17
|
-
export {};
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.Listener = void 0;
|
|
40
|
-
var amqplib_1 = require("amqplib");
|
|
41
|
-
var Listener = /** @class */ (function () {
|
|
42
|
-
function Listener(exchangeName, exchangeType, queueName, routingKey) {
|
|
43
|
-
this.exchangeName = exchangeName;
|
|
44
|
-
this.exchangeType = exchangeType;
|
|
45
|
-
this.queueName = queueName;
|
|
46
|
-
this.routingKey = routingKey;
|
|
47
|
-
}
|
|
48
|
-
Listener.prototype.connect = function () {
|
|
49
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
50
|
-
var _a, _b, queue;
|
|
51
|
-
var _this = this;
|
|
52
|
-
return __generator(this, function (_c) {
|
|
53
|
-
switch (_c.label) {
|
|
54
|
-
case 0:
|
|
55
|
-
_a = this;
|
|
56
|
-
return [4 /*yield*/, (0, amqplib_1.connect)(process.env.MESSAGE_BROKER_URL)];
|
|
57
|
-
case 1:
|
|
58
|
-
_a.connection = _c.sent();
|
|
59
|
-
_b = this;
|
|
60
|
-
return [4 /*yield*/, this.connection.createChannel()];
|
|
61
|
-
case 2:
|
|
62
|
-
_b.channel = _c.sent();
|
|
63
|
-
return [4 /*yield*/, this.channel.assertExchange(this.exchangeName, this.exchangeType, { durable: false })];
|
|
64
|
-
case 3:
|
|
65
|
-
_c.sent();
|
|
66
|
-
return [4 /*yield*/, this.channel.assertQueue(this.queueName, {
|
|
67
|
-
exclusive: false,
|
|
68
|
-
})];
|
|
69
|
-
case 4:
|
|
70
|
-
queue = (_c.sent()).queue;
|
|
71
|
-
console.log("Listening for messages on queue: ".concat(queue));
|
|
72
|
-
// Bind the queue to the exchange with a routing key
|
|
73
|
-
this.channel.bindQueue(queue, this.exchangeName, this.routingKey);
|
|
74
|
-
this.channel.consume(queue, function (msg) { return __awaiter(_this, void 0, void 0, function () {
|
|
75
|
-
var data;
|
|
76
|
-
return __generator(this, function (_a) {
|
|
77
|
-
if (msg) {
|
|
78
|
-
data = JSON.parse(msg.content.toString());
|
|
79
|
-
this.onMessage(data, msg, this.channel);
|
|
80
|
-
this.channel.ack(msg);
|
|
81
|
-
}
|
|
82
|
-
return [2 /*return*/];
|
|
83
|
-
});
|
|
84
|
-
}); });
|
|
85
|
-
return [2 /*return*/];
|
|
86
|
-
}
|
|
87
|
-
});
|
|
88
|
-
});
|
|
89
|
-
};
|
|
90
|
-
Listener.prototype.close = function () {
|
|
91
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
92
|
-
return __generator(this, function (_a) {
|
|
93
|
-
switch (_a.label) {
|
|
94
|
-
case 0: return [4 /*yield*/, this.channel.close()];
|
|
95
|
-
case 1:
|
|
96
|
-
_a.sent();
|
|
97
|
-
return [4 /*yield*/, this.connection.close()];
|
|
98
|
-
case 2:
|
|
99
|
-
_a.sent();
|
|
100
|
-
return [2 /*return*/];
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
});
|
|
104
|
-
};
|
|
105
|
-
return Listener;
|
|
106
|
-
}());
|
|
107
|
-
exports.Listener = Listener;
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
interface Event<T> {
|
|
2
|
-
routingKey: string;
|
|
3
|
-
data: T;
|
|
4
|
-
}
|
|
5
|
-
export declare class Publisher<T> {
|
|
6
|
-
private connection;
|
|
7
|
-
private channel;
|
|
8
|
-
private exchangeName;
|
|
9
|
-
private exchangeType;
|
|
10
|
-
constructor(exchangeName: string, exchangeType: string);
|
|
11
|
-
connect(url: string): Promise<void>;
|
|
12
|
-
publish(event: Event<T>): Promise<void>;
|
|
13
|
-
close(): Promise<void>;
|
|
14
|
-
}
|
|
15
|
-
export {};
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.Publisher = void 0;
|
|
40
|
-
var amqplib_1 = require("amqplib");
|
|
41
|
-
var Publisher = /** @class */ (function () {
|
|
42
|
-
function Publisher(exchangeName, exchangeType) {
|
|
43
|
-
this.exchangeName = exchangeName;
|
|
44
|
-
this.exchangeType = exchangeType;
|
|
45
|
-
}
|
|
46
|
-
Publisher.prototype.connect = function (url) {
|
|
47
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
48
|
-
var _a, _b;
|
|
49
|
-
return __generator(this, function (_c) {
|
|
50
|
-
switch (_c.label) {
|
|
51
|
-
case 0:
|
|
52
|
-
_a = this;
|
|
53
|
-
return [4 /*yield*/, (0, amqplib_1.connect)(url)];
|
|
54
|
-
case 1:
|
|
55
|
-
_a.connection = _c.sent();
|
|
56
|
-
_b = this;
|
|
57
|
-
return [4 /*yield*/, this.connection.createChannel()];
|
|
58
|
-
case 2:
|
|
59
|
-
_b.channel = _c.sent();
|
|
60
|
-
return [4 /*yield*/, this.channel.assertExchange(this.exchangeName, this.exchangeType, {
|
|
61
|
-
durable: false,
|
|
62
|
-
})];
|
|
63
|
-
case 3:
|
|
64
|
-
_c.sent();
|
|
65
|
-
return [2 /*return*/];
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
};
|
|
70
|
-
Publisher.prototype.publish = function (event) {
|
|
71
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
72
|
-
return __generator(this, function (_a) {
|
|
73
|
-
switch (_a.label) {
|
|
74
|
-
case 0: return [4 /*yield*/, this.channel.publish(this.exchangeName, event.routingKey, Buffer.from(JSON.stringify(event.data)))];
|
|
75
|
-
case 1:
|
|
76
|
-
_a.sent();
|
|
77
|
-
console.log("Event published - Routing Key: ".concat(event.routingKey));
|
|
78
|
-
return [2 /*return*/];
|
|
79
|
-
}
|
|
80
|
-
});
|
|
81
|
-
});
|
|
82
|
-
};
|
|
83
|
-
Publisher.prototype.close = function () {
|
|
84
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
85
|
-
return __generator(this, function (_a) {
|
|
86
|
-
switch (_a.label) {
|
|
87
|
-
case 0: return [4 /*yield*/, this.channel.close()];
|
|
88
|
-
case 1:
|
|
89
|
-
_a.sent();
|
|
90
|
-
return [4 /*yield*/, this.connection.close()];
|
|
91
|
-
case 2:
|
|
92
|
-
_a.sent();
|
|
93
|
-
return [2 /*return*/];
|
|
94
|
-
}
|
|
95
|
-
});
|
|
96
|
-
});
|
|
97
|
-
};
|
|
98
|
-
return Publisher;
|
|
99
|
-
}());
|
|
100
|
-
exports.Publisher = Publisher;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { Subjects } from './subjects';
|
|
2
|
-
import { OrderStatus } from './types/order-status';
|
|
3
|
-
export interface OrderCreatedEvent {
|
|
4
|
-
subject: Subjects.OrderCreated;
|
|
5
|
-
data: {
|
|
6
|
-
id: string;
|
|
7
|
-
version: number;
|
|
8
|
-
status: OrderStatus;
|
|
9
|
-
userId: string;
|
|
10
|
-
expiresAt: string;
|
|
11
|
-
ticket: {
|
|
12
|
-
id: string;
|
|
13
|
-
price: number;
|
|
14
|
-
};
|
|
15
|
-
};
|
|
16
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.QueueGroupNames = void 0;
|
|
4
|
-
var QueueGroupNames;
|
|
5
|
-
(function (QueueGroupNames) {
|
|
6
|
-
QueueGroupNames["ORDER_SERVICE"] = "order-service";
|
|
7
|
-
QueueGroupNames["PRODUCT_SERVICE"] = "product-service";
|
|
8
|
-
QueueGroupNames["EXPIRATION_SERVICE"] = "expiration-service";
|
|
9
|
-
QueueGroupNames["PAYMENT_SERVICE"] = "payment-service";
|
|
10
|
-
})(QueueGroupNames || (exports.QueueGroupNames = QueueGroupNames = {}));
|
|
File without changes
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/* import { Request, Response, NextFunction } from 'express';
|
|
3
|
-
import jwt from 'jsonwebtoken';
|
|
4
|
-
|
|
5
|
-
interface UserPayload {
|
|
6
|
-
id: string;
|
|
7
|
-
email: string;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
declare global {
|
|
11
|
-
namespace Express {
|
|
12
|
-
interface Request {
|
|
13
|
-
user?: UserPayload;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export const currentUser = (
|
|
19
|
-
req: Request,
|
|
20
|
-
res: Response,
|
|
21
|
-
next: NextFunction
|
|
22
|
-
) => {
|
|
23
|
-
if (!req.session?.jwt) {
|
|
24
|
-
return next();
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
try {
|
|
28
|
-
const payload = jwt.verify(
|
|
29
|
-
req.session.jwt,
|
|
30
|
-
process.env.JWT_KEY!
|
|
31
|
-
) as UserPayload;
|
|
32
|
-
req.user = payload;
|
|
33
|
-
} catch (err) {}
|
|
34
|
-
|
|
35
|
-
next();
|
|
36
|
-
};
|
|
37
|
-
*/
|