@munlib/common 1.0.211 → 1.0.215
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 +2 -2
- package/build/index.d.ts +0 -2
- package/build/index.js +2 -2
- package/build/logs/logger.d.ts +0 -1
- package/build/logs/logger.js +7 -7
- 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 +31 -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",
|
|
@@ -524,7 +524,7 @@ exports.httpStatusCodesTypes = {
|
|
|
524
524
|
"OK200": instituciones_pagos_1.ErrorCategories.SUCCESS,
|
|
525
525
|
"ERR02": instituciones_pagos_1.ErrorCategories.MIDDLEWARE,
|
|
526
526
|
"ERR03": instituciones_pagos_1.ErrorCategories.MIDDLEWARE,
|
|
527
|
-
"ERR11": instituciones_pagos_1.ErrorCategories.
|
|
527
|
+
"ERR11": instituciones_pagos_1.ErrorCategories.SINTAX,
|
|
528
528
|
"ERR12": instituciones_pagos_1.ErrorCategories.SINTAX,
|
|
529
529
|
"ERR13": instituciones_pagos_1.ErrorCategories.SINTAX,
|
|
530
530
|
"ERR14": instituciones_pagos_1.ErrorCategories.MIDDLEWARE,
|
package/build/index.d.ts
CHANGED
|
@@ -11,6 +11,4 @@ export * from './middlewares/validate-request';
|
|
|
11
11
|
export * from './events/subjects';
|
|
12
12
|
export * from './events/types/order-status';
|
|
13
13
|
export * from './events/types/instituciones-pagos';
|
|
14
|
-
export * from './logs/logger';
|
|
15
14
|
export * from "./errors/erroresStatus";
|
|
16
|
-
export * from './middlewares/apm';
|
package/build/index.js
CHANGED
|
@@ -29,6 +29,6 @@ __exportStar(require("./middlewares/validate-request"), exports);
|
|
|
29
29
|
__exportStar(require("./events/subjects"), exports);
|
|
30
30
|
__exportStar(require("./events/types/order-status"), exports);
|
|
31
31
|
__exportStar(require("./events/types/instituciones-pagos"), exports);
|
|
32
|
-
|
|
32
|
+
//export * from './logs/logger';
|
|
33
33
|
__exportStar(require("./errors/erroresStatus"), exports);
|
|
34
|
-
|
|
34
|
+
//export * from './middlewares/apm';
|
package/build/logs/logger.d.ts
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const logger: any;
|
package/build/logs/logger.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.logger = void 0;
|
|
4
2
|
//@ts-ignore
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
/* import { LogService } from "logstash-winston-3";
|
|
4
|
+
|
|
5
|
+
export const logger = LogService.getInstance({
|
|
6
|
+
serviceName: process.env.SERVICE_NAME,
|
|
7
|
+
logstashHost: process.env.LOGS_SERVER,
|
|
8
|
+
logstashPort: process.env.LOGS_PORT,
|
|
10
9
|
});
|
|
10
|
+
*/
|
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,31 @@
|
|
|
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
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
|
|
31
|
-
|
|
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.215",
|
|
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
|
+
"del-cli": "^4.0.0",
|
|
20
|
+
"typescript": "^5.2.2",
|
|
21
|
+
"@types/cookie-session": "^2.0.42",
|
|
22
|
+
"@types/express": "^4.17.12",
|
|
23
|
+
"@types/jsonwebtoken": "^8.5.1"
|
|
24
|
+
},
|
|
25
|
+
"dependencies": {
|
|
26
|
+
"cookie-session": "^1.4.0",
|
|
27
|
+
"express": "^4.17.1",
|
|
28
|
+
"express-validator": "^6.12.0",
|
|
29
|
+
"jsonwebtoken": "^8.5.1"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -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
|
-
*/
|