starta.microservice 0.1.4694 → 0.1.4707
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/lib/adapters/{rabbitmq/index.d.ts → messageBroker/Rabbitmq.d.ts} +4 -6
- package/lib/adapters/{rabbitmq/index.js → messageBroker/Rabbitmq.js} +11 -12
- package/lib/adapters/messageBroker/Rabbitmq.js.map +1 -0
- package/lib/adapters/messageBroker/SnsSqs.d.ts +19 -0
- package/lib/adapters/messageBroker/SnsSqs.js +287 -0
- package/lib/adapters/messageBroker/SnsSqs.js.map +1 -0
- package/lib/adapters/messageBroker/index.d.ts +15 -0
- package/lib/adapters/messageBroker/index.js +63 -0
- package/lib/adapters/messageBroker/index.js.map +1 -0
- package/lib/adapters/messageBroker/types.d.ts +11 -0
- package/lib/adapters/messageBroker/types.js +3 -0
- package/lib/adapters/messageBroker/types.js.map +1 -0
- package/lib/config.d.ts +2 -0
- package/lib/config.js +2 -0
- package/lib/config.js.map +1 -1
- package/lib/services/ServiceExecutor.d.ts +3 -3
- package/lib/services/ServiceExecutor.js +8 -8
- package/lib/services/ServiceExecutor.js.map +1 -1
- package/lib/services/ServiceFactoryBase.d.ts +3 -3
- package/lib/services/ServiceFactoryBase.js +2 -2
- package/lib/services/ServiceFactoryBase.js.map +1 -1
- package/lib/services/ServiceHandlerBase.d.ts +3 -3
- package/lib/services/ServiceHandlerBase.js +3 -3
- package/lib/services/ServiceHandlerBase.js.map +1 -1
- package/package.json +2 -2
- package/lib/adapters/rabbitmq/index.js.map +0 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import amqp from 'amqplib';
|
|
2
2
|
import ServerLogger from '../../adapters/logger';
|
|
3
|
-
|
|
3
|
+
import { IMessageBroker } from './types';
|
|
4
|
+
declare class Rabbitmq implements IMessageBroker {
|
|
4
5
|
#private;
|
|
5
6
|
constructor(logger: ServerLogger);
|
|
6
7
|
connect(tryRecconect?: boolean, timeout?: number): Promise<void>;
|
|
@@ -8,12 +9,9 @@ declare class Rabbitmq {
|
|
|
8
9
|
emitEvent(exchange: string, eventData: Object): Promise<void>;
|
|
9
10
|
consume(exchange: string, queue: string, onMessage: (msg: amqp.Message, { logger }?: {
|
|
10
11
|
logger: ServerLogger;
|
|
11
|
-
}) => Promise<void
|
|
12
|
-
pattern: string;
|
|
13
|
-
noAck: boolean;
|
|
14
|
-
}): Promise<void>;
|
|
12
|
+
}) => Promise<void>): Promise<void>;
|
|
15
13
|
checkLiveness(): Promise<boolean>;
|
|
16
|
-
|
|
14
|
+
createTopics(exchanges: string[]): Promise<void>;
|
|
17
15
|
createQueues(queues: string[], durable?: boolean): Promise<void>;
|
|
18
16
|
}
|
|
19
17
|
export default Rabbitmq;
|
|
@@ -83,7 +83,7 @@ class Rabbitmq {
|
|
|
83
83
|
const logger = ((_a = loggerContext_1.default.getLogger()) !== null && _a !== void 0 ? _a : __classPrivateFieldGet(this, _Rabbitmq_logger, "f")).withParams({
|
|
84
84
|
serviceBroker: { exchange },
|
|
85
85
|
});
|
|
86
|
-
yield this.
|
|
86
|
+
yield this.createTopics([exchange]);
|
|
87
87
|
const emit = () => __classPrivateFieldGet(this, _Rabbitmq_channel, "f").publish(exchange, '*', Buffer.from(JSON.stringify(eventData)), {
|
|
88
88
|
headers: {
|
|
89
89
|
context: executionContext_1.default.getFullData()
|
|
@@ -105,17 +105,14 @@ class Rabbitmq {
|
|
|
105
105
|
}
|
|
106
106
|
});
|
|
107
107
|
}
|
|
108
|
-
consume(exchange, queue, onMessage
|
|
109
|
-
noAck: true,
|
|
110
|
-
pattern: '*'
|
|
111
|
-
}) {
|
|
108
|
+
consume(exchange, queue, onMessage) {
|
|
112
109
|
return __awaiter(this, void 0, void 0, function* () {
|
|
113
110
|
if (!exchange) {
|
|
114
111
|
throw 'exchange is null';
|
|
115
112
|
}
|
|
116
|
-
yield this.
|
|
113
|
+
yield this.createTopics([exchange]);
|
|
117
114
|
yield this.createQueues([queue]);
|
|
118
|
-
yield __classPrivateFieldGet(this, _Rabbitmq_channel, "f").bindQueue(queue, exchange,
|
|
115
|
+
yield __classPrivateFieldGet(this, _Rabbitmq_channel, "f").bindQueue(queue, exchange, '*');
|
|
119
116
|
yield __classPrivateFieldGet(this, _Rabbitmq_channel, "f").consume(queue, (msg) => __awaiter(this, void 0, void 0, function* () {
|
|
120
117
|
const startTime = process.hrtime();
|
|
121
118
|
const contextData = msg.properties.headers.context;
|
|
@@ -128,9 +125,11 @@ class Rabbitmq {
|
|
|
128
125
|
serviceBroker: { queue, exchange },
|
|
129
126
|
});
|
|
130
127
|
loggerContext_1.default.setLogger(logger);
|
|
128
|
+
const contentString = msg.content.toString();
|
|
131
129
|
try {
|
|
132
130
|
logger.generic.info("Consuming started");
|
|
133
|
-
|
|
131
|
+
const contentObject = JSON.parse(contentString);
|
|
132
|
+
yield onMessage(contentObject, { logger });
|
|
134
133
|
const diff = process.hrtime(startTime);
|
|
135
134
|
const timeInMilliseconds = diff[0] * 1000 + diff[1] / 1000000;
|
|
136
135
|
logger.generic.info("Consuming finished", { taskDuration: timeInMilliseconds });
|
|
@@ -152,7 +151,7 @@ object: |${msg.content.toString()}|
|
|
|
152
151
|
}
|
|
153
152
|
});
|
|
154
153
|
}
|
|
155
|
-
}), { noAck:
|
|
154
|
+
}), { noAck: true });
|
|
156
155
|
});
|
|
157
156
|
}
|
|
158
157
|
checkLiveness() {
|
|
@@ -160,11 +159,11 @@ object: |${msg.content.toString()}|
|
|
|
160
159
|
return __classPrivateFieldGet(this, _Rabbitmq_connection, "f").isConnected();
|
|
161
160
|
});
|
|
162
161
|
}
|
|
163
|
-
|
|
162
|
+
createTopics(exchanges) {
|
|
164
163
|
return __awaiter(this, void 0, void 0, function* () {
|
|
165
164
|
const exchangesToCreate = exchanges.filter(exchange => !__classPrivateFieldGet(this, _Rabbitmq_createdExchanges, "f").has(exchange));
|
|
166
165
|
yield Promise.all(exchangesToCreate.map((exchange) => __awaiter(this, void 0, void 0, function* () {
|
|
167
|
-
yield __classPrivateFieldGet(this, _Rabbitmq_channel, "f").assertExchange(exchange,
|
|
166
|
+
yield __classPrivateFieldGet(this, _Rabbitmq_channel, "f").assertExchange(exchange, 'direct', { durable: true });
|
|
168
167
|
__classPrivateFieldGet(this, _Rabbitmq_createdExchanges, "f").add(exchange);
|
|
169
168
|
})));
|
|
170
169
|
});
|
|
@@ -181,4 +180,4 @@ object: |${msg.content.toString()}|
|
|
|
181
180
|
}
|
|
182
181
|
_Rabbitmq_logger = new WeakMap(), _Rabbitmq_connection = new WeakMap(), _Rabbitmq_channel = new WeakMap(), _Rabbitmq_createdExchanges = new WeakMap(), _Rabbitmq_createdQueues = new WeakMap();
|
|
183
182
|
exports.default = Rabbitmq;
|
|
184
|
-
//# sourceMappingURL=
|
|
183
|
+
//# sourceMappingURL=Rabbitmq.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Rabbitmq.js","sourceRoot":"","sources":["../../../src/adapters/messageBroker/Rabbitmq.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import AWS from 'aws-sdk';
|
|
2
|
+
import ServerLogger from '../../adapters/logger';
|
|
3
|
+
import { IMessageBroker } from './types';
|
|
4
|
+
declare class SnsSqs implements IMessageBroker {
|
|
5
|
+
#private;
|
|
6
|
+
constructor(logger: ServerLogger);
|
|
7
|
+
createTopics(topics: string[]): Promise<void>;
|
|
8
|
+
connect(): Promise<void>;
|
|
9
|
+
checkLiveness(): Promise<boolean>;
|
|
10
|
+
disconnect(): Promise<void>;
|
|
11
|
+
emitEvent(topicName: string, eventData: Object): Promise<void>;
|
|
12
|
+
consume(topicName: string, queueName: string, onMessage: (msg: AWS.SQS.Message, { logger }?: {
|
|
13
|
+
logger: ServerLogger;
|
|
14
|
+
}) => Promise<void>): Promise<void>;
|
|
15
|
+
private createTopic;
|
|
16
|
+
private createQueueWithDLQ;
|
|
17
|
+
private subscribeQueueToTopic;
|
|
18
|
+
}
|
|
19
|
+
export default SnsSqs;
|
|
@@ -0,0 +1,287 @@
|
|
|
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 __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
12
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
13
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
14
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
15
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
16
|
+
};
|
|
17
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
18
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
19
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
20
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
21
|
+
};
|
|
22
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
23
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
24
|
+
};
|
|
25
|
+
var _SnsSqs_logger, _SnsSqs_snsClient, _SnsSqs_sqsClient, _SnsSqs_createdTopics, _SnsSqs_createdQueues;
|
|
26
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
+
const aws_sdk_1 = __importDefault(require("aws-sdk"));
|
|
28
|
+
const config_1 = __importDefault(require("../../config"));
|
|
29
|
+
const loggerContext_1 = __importDefault(require("../../contexts/loggerContext"));
|
|
30
|
+
const executionContext_1 = __importDefault(require("../../contexts/executionContext"));
|
|
31
|
+
aws_sdk_1.default.config.update({
|
|
32
|
+
accessKeyId: config_1.default.aws.accessKey,
|
|
33
|
+
secretAccessKey: config_1.default.aws.secretKey,
|
|
34
|
+
region: config_1.default.aws.region
|
|
35
|
+
});
|
|
36
|
+
class SnsSqs {
|
|
37
|
+
constructor(logger) {
|
|
38
|
+
_SnsSqs_logger.set(this, void 0);
|
|
39
|
+
_SnsSqs_snsClient.set(this, void 0);
|
|
40
|
+
_SnsSqs_sqsClient.set(this, void 0);
|
|
41
|
+
_SnsSqs_createdTopics.set(this, new Set());
|
|
42
|
+
_SnsSqs_createdQueues.set(this, new Set());
|
|
43
|
+
__classPrivateFieldSet(this, _SnsSqs_logger, logger, "f");
|
|
44
|
+
__classPrivateFieldSet(this, _SnsSqs_snsClient, new aws_sdk_1.default.SNS(), "f");
|
|
45
|
+
__classPrivateFieldSet(this, _SnsSqs_sqsClient, new aws_sdk_1.default.SQS(), "f");
|
|
46
|
+
}
|
|
47
|
+
createTopics(topics) {
|
|
48
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
49
|
+
topics = topics.map(topic => `${config_1.default.environment}-${topic}`);
|
|
50
|
+
const topicsToCreate = topics.filter(topic => !__classPrivateFieldGet(this, _SnsSqs_createdTopics, "f").has(topic));
|
|
51
|
+
yield Promise.all(topicsToCreate.map(topicName => this.createTopic(topicName)));
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
connect() {
|
|
55
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
56
|
+
__classPrivateFieldGet(this, _SnsSqs_logger, "f").generic.info("Attempting to connect to SNS and SQS");
|
|
57
|
+
try {
|
|
58
|
+
// Fetch and store list of topics
|
|
59
|
+
const topicsResponse = yield __classPrivateFieldGet(this, _SnsSqs_snsClient, "f").listTopics({}).promise();
|
|
60
|
+
topicsResponse.Topics.forEach(topic => {
|
|
61
|
+
const topicArn = topic.TopicArn;
|
|
62
|
+
const topicName = topicArn.split(':').pop(); // Extract topic name from ARN
|
|
63
|
+
if (topicName.startsWith(`${config_1.default.environment}-`)) {
|
|
64
|
+
__classPrivateFieldGet(this, _SnsSqs_createdTopics, "f").add(topicName);
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
// Fetch and store list of queues
|
|
68
|
+
const queuesResponse = yield __classPrivateFieldGet(this, _SnsSqs_sqsClient, "f").listQueues({}).promise();
|
|
69
|
+
(queuesResponse.QueueUrls || []).forEach(queueUrl => {
|
|
70
|
+
const queueName = queueUrl.split('/').pop(); // Extract queue name from ARN
|
|
71
|
+
if (queueName.startsWith(`${config_1.default.environment}-`)) {
|
|
72
|
+
__classPrivateFieldGet(this, _SnsSqs_createdQueues, "f").add(queueName);
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
__classPrivateFieldGet(this, _SnsSqs_logger, "f").generic.info("Successfully connected to SNS and SQS and retrieved existing topics and queues");
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
__classPrivateFieldGet(this, _SnsSqs_logger, "f").generic.error("Failed to connect to SNS and SQS", error);
|
|
79
|
+
throw error;
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
checkLiveness() {
|
|
84
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
85
|
+
try {
|
|
86
|
+
__classPrivateFieldGet(this, _SnsSqs_logger, "f").generic.info("Attempting to connect to SNS and SQS");
|
|
87
|
+
yield __classPrivateFieldGet(this, _SnsSqs_snsClient, "f").listTopics({}).promise();
|
|
88
|
+
yield __classPrivateFieldGet(this, _SnsSqs_sqsClient, "f").listQueues({}).promise();
|
|
89
|
+
return true;
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
__classPrivateFieldGet(this, _SnsSqs_logger, "f").generic.error("Failed to connect to SNS and SQS", error);
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
disconnect() {
|
|
98
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
99
|
+
__classPrivateFieldGet(this, _SnsSqs_logger, "f").generic.info("Disconnect from SNS and SQS called");
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
emitEvent(topicName, eventData) {
|
|
103
|
+
var _a;
|
|
104
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
105
|
+
topicName = `${config_1.default.environment}-${topicName}`;
|
|
106
|
+
const topicArn = yield this.createTopic(topicName);
|
|
107
|
+
const logger = ((_a = loggerContext_1.default.getLogger()) !== null && _a !== void 0 ? _a : __classPrivateFieldGet(this, _SnsSqs_logger, "f")).withParams({
|
|
108
|
+
serviceBroker: { topicName },
|
|
109
|
+
});
|
|
110
|
+
try {
|
|
111
|
+
yield __classPrivateFieldGet(this, _SnsSqs_snsClient, "f").publish({
|
|
112
|
+
TopicArn: topicArn,
|
|
113
|
+
Message: JSON.stringify(eventData),
|
|
114
|
+
MessageAttributes: {
|
|
115
|
+
correlationId: {
|
|
116
|
+
DataType: 'String',
|
|
117
|
+
StringValue: executionContext_1.default.getCorrelationId(),
|
|
118
|
+
},
|
|
119
|
+
authorizedUserLogin: {
|
|
120
|
+
DataType: 'String',
|
|
121
|
+
StringValue: executionContext_1.default.getAuthorizedUserLogin(),
|
|
122
|
+
},
|
|
123
|
+
}
|
|
124
|
+
}).promise();
|
|
125
|
+
logger.generic.info("Message published to SNS topic");
|
|
126
|
+
}
|
|
127
|
+
catch (e) {
|
|
128
|
+
logger.internalError(e, "Unable to publish to SNS topic");
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
consume(topicName, queueName, onMessage) {
|
|
133
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
134
|
+
topicName = `${config_1.default.environment}-${topicName}`;
|
|
135
|
+
queueName = `${config_1.default.environment}-${queueName}`;
|
|
136
|
+
const { queueUrl } = yield this.createQueueWithDLQ(queueName);
|
|
137
|
+
yield this.subscribeQueueToTopic(queueName, queueUrl, topicName);
|
|
138
|
+
while (true) {
|
|
139
|
+
const params = {
|
|
140
|
+
QueueUrl: queueUrl,
|
|
141
|
+
WaitTimeSeconds: 20,
|
|
142
|
+
VisibilityTimeout: 60,
|
|
143
|
+
MaxNumberOfMessages: 1
|
|
144
|
+
};
|
|
145
|
+
const data = yield __classPrivateFieldGet(this, _SnsSqs_sqsClient, "f").receiveMessage(params).promise();
|
|
146
|
+
if (data.Messages) {
|
|
147
|
+
for (const message of data.Messages) {
|
|
148
|
+
const messageBody = JSON.parse(message.Body);
|
|
149
|
+
const attributes = messageBody.MessageAttributes;
|
|
150
|
+
if (attributes.correlationId) {
|
|
151
|
+
executionContext_1.default.setCorrelationId(attributes.correlationId.Value);
|
|
152
|
+
}
|
|
153
|
+
if (attributes.authorizedUserLogin) {
|
|
154
|
+
executionContext_1.default.setAuthorizedUserLogin(attributes.authorizedUserLogin.Value);
|
|
155
|
+
}
|
|
156
|
+
const startTime = process.hrtime();
|
|
157
|
+
const logger = __classPrivateFieldGet(this, _SnsSqs_logger, "f").withParams({
|
|
158
|
+
correlationId: executionContext_1.default.getCorrelationId(),
|
|
159
|
+
login: executionContext_1.default.getAuthorizedUserLogin(),
|
|
160
|
+
serviceBroker: { topicName, queueName },
|
|
161
|
+
});
|
|
162
|
+
try {
|
|
163
|
+
logger.generic.info("Consuming started");
|
|
164
|
+
const originalMessage = JSON.parse(messageBody.Message);
|
|
165
|
+
yield onMessage(originalMessage, { logger });
|
|
166
|
+
const diff = process.hrtime(startTime);
|
|
167
|
+
const timeInMilliseconds = diff[0] * 1000 + diff[1] / 1000000;
|
|
168
|
+
logger.generic.info("Consuming finished", { taskDuration: timeInMilliseconds });
|
|
169
|
+
yield __classPrivateFieldGet(this, _SnsSqs_sqsClient, "f").deleteMessage({
|
|
170
|
+
QueueUrl: queueUrl,
|
|
171
|
+
ReceiptHandle: message.ReceiptHandle
|
|
172
|
+
}).promise();
|
|
173
|
+
}
|
|
174
|
+
catch (e) {
|
|
175
|
+
logger.generic.error(`Consuming error\nerror: |${JSON.stringify(e)}|\nobject: |${message.Body}|`, e);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
createTopic(topicName) {
|
|
183
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
184
|
+
if (!__classPrivateFieldGet(this, _SnsSqs_createdTopics, "f").has(topicName)) {
|
|
185
|
+
__classPrivateFieldGet(this, _SnsSqs_logger, "f").generic.info('Creating topic', {
|
|
186
|
+
serviceBroker: {
|
|
187
|
+
topicName
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
const response = yield __classPrivateFieldGet(this, _SnsSqs_snsClient, "f").createTopic({ Name: topicName }).promise();
|
|
191
|
+
const topicArn = response.TopicArn;
|
|
192
|
+
__classPrivateFieldGet(this, _SnsSqs_createdTopics, "f").add(topicName);
|
|
193
|
+
return topicArn;
|
|
194
|
+
}
|
|
195
|
+
return `arn:aws:sns:${config_1.default.aws.region}:${config_1.default.aws.accountId}:${topicName}`;
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
createQueueWithDLQ(queueName) {
|
|
199
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
200
|
+
const createQueue = (queueName, redrivePolicy) => __awaiter(this, void 0, void 0, function* () {
|
|
201
|
+
if (!__classPrivateFieldGet(this, _SnsSqs_createdQueues, "f").has(queueName)) {
|
|
202
|
+
__classPrivateFieldGet(this, _SnsSqs_logger, "f").generic.info('Creating queue', {
|
|
203
|
+
serviceBroker: {
|
|
204
|
+
queueName
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
const params = {
|
|
208
|
+
QueueName: queueName,
|
|
209
|
+
Attributes: {}
|
|
210
|
+
};
|
|
211
|
+
if (redrivePolicy) {
|
|
212
|
+
params.Attributes['RedrivePolicy'] = redrivePolicy;
|
|
213
|
+
}
|
|
214
|
+
const response = yield __classPrivateFieldGet(this, _SnsSqs_sqsClient, "f").createQueue(params).promise();
|
|
215
|
+
__classPrivateFieldGet(this, _SnsSqs_createdQueues, "f").add(queueName);
|
|
216
|
+
return response.QueueUrl;
|
|
217
|
+
}
|
|
218
|
+
return `https://sqs.${config_1.default.aws.region}.amazonaws.com/${config_1.default.aws.accountId}/${queueName}`;
|
|
219
|
+
});
|
|
220
|
+
const deadLetterQueueName = `${queueName}__ERROR`;
|
|
221
|
+
let deadLetterQueueUrl = yield createQueue(deadLetterQueueName);
|
|
222
|
+
// Get the ARN of the dead-letter queue
|
|
223
|
+
const { Attributes: dlqAttributes } = yield __classPrivateFieldGet(this, _SnsSqs_sqsClient, "f").getQueueAttributes({
|
|
224
|
+
QueueUrl: deadLetterQueueUrl,
|
|
225
|
+
AttributeNames: ['QueueArn']
|
|
226
|
+
}).promise();
|
|
227
|
+
const dlqArn = dlqAttributes.QueueArn;
|
|
228
|
+
// Create the main queue with redrive policy pointing to the DLQ
|
|
229
|
+
const redrivePolicy = JSON.stringify({
|
|
230
|
+
maxReceiveCount: 1,
|
|
231
|
+
deadLetterTargetArn: dlqArn
|
|
232
|
+
});
|
|
233
|
+
const queueUrl = yield createQueue(queueName, redrivePolicy);
|
|
234
|
+
return { queueUrl, deadLetterQueueUrl };
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
subscribeQueueToTopic(queueName, queueUrl, topicName) {
|
|
238
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
239
|
+
__classPrivateFieldGet(this, _SnsSqs_logger, "f").generic.info('Subscribing queue to topic', {
|
|
240
|
+
serviceBroker: {
|
|
241
|
+
queueName,
|
|
242
|
+
topicName
|
|
243
|
+
}
|
|
244
|
+
});
|
|
245
|
+
const topicArn = yield this.createTopic(topicName);
|
|
246
|
+
// Get the ARN of the queue
|
|
247
|
+
const { Attributes: queueAttributes } = yield __classPrivateFieldGet(this, _SnsSqs_sqsClient, "f").getQueueAttributes({
|
|
248
|
+
QueueUrl: queueUrl,
|
|
249
|
+
AttributeNames: ['QueueArn']
|
|
250
|
+
}).promise();
|
|
251
|
+
const queueArn = queueAttributes.QueueArn;
|
|
252
|
+
// Subscribe the queue to the topic
|
|
253
|
+
yield __classPrivateFieldGet(this, _SnsSqs_snsClient, "f").subscribe({
|
|
254
|
+
Protocol: 'sqs',
|
|
255
|
+
TopicArn: topicArn,
|
|
256
|
+
Endpoint: queueArn
|
|
257
|
+
}).promise();
|
|
258
|
+
// Update the SQS queue policy to allow the SNS topic to send messages to the queue
|
|
259
|
+
const policy = {
|
|
260
|
+
Version: "2012-10-17",
|
|
261
|
+
Statement: [
|
|
262
|
+
{
|
|
263
|
+
Sid: "AllowSNSMessages",
|
|
264
|
+
Effect: "Allow",
|
|
265
|
+
Principal: "*",
|
|
266
|
+
Action: "sqs:SendMessage",
|
|
267
|
+
Resource: queueArn,
|
|
268
|
+
Condition: {
|
|
269
|
+
ArnEquals: {
|
|
270
|
+
"aws:SourceArn": topicArn
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
]
|
|
275
|
+
};
|
|
276
|
+
yield __classPrivateFieldGet(this, _SnsSqs_sqsClient, "f").setQueueAttributes({
|
|
277
|
+
QueueUrl: queueUrl,
|
|
278
|
+
Attributes: {
|
|
279
|
+
Policy: JSON.stringify(policy)
|
|
280
|
+
}
|
|
281
|
+
}).promise();
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
_SnsSqs_logger = new WeakMap(), _SnsSqs_snsClient = new WeakMap(), _SnsSqs_sqsClient = new WeakMap(), _SnsSqs_createdTopics = new WeakMap(), _SnsSqs_createdQueues = new WeakMap();
|
|
286
|
+
exports.default = SnsSqs;
|
|
287
|
+
//# sourceMappingURL=SnsSqs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SnsSqs.js","sourceRoot":"","sources":["../../../src/adapters/messageBroker/SnsSqs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { IMessageBroker } from './types';
|
|
2
|
+
import ServerLogger from '../../adapters/logger';
|
|
3
|
+
declare class MessageBrokerProxy implements IMessageBroker {
|
|
4
|
+
private broker;
|
|
5
|
+
constructor(logger: ServerLogger);
|
|
6
|
+
createTopics(topics: string[]): Promise<void>;
|
|
7
|
+
connect(): Promise<void>;
|
|
8
|
+
disconnect(): Promise<void>;
|
|
9
|
+
emitEvent(topic: string, eventData: Object): Promise<void>;
|
|
10
|
+
consume(exchange: string, queue: string, onMessage: (msg: any, { logger }?: {
|
|
11
|
+
logger: ServerLogger;
|
|
12
|
+
}) => Promise<void>): Promise<any>;
|
|
13
|
+
checkLiveness(): Promise<boolean>;
|
|
14
|
+
}
|
|
15
|
+
export default MessageBrokerProxy;
|
|
@@ -0,0 +1,63 @@
|
|
|
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 __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
const SnsSqs_1 = __importDefault(require("./SnsSqs"));
|
|
16
|
+
const Rabbitmq_1 = __importDefault(require("./Rabbitmq"));
|
|
17
|
+
const config_1 = __importDefault(require("../../config"));
|
|
18
|
+
class MessageBrokerProxy {
|
|
19
|
+
constructor(logger) {
|
|
20
|
+
switch (config_1.default.messageBrokerType) {
|
|
21
|
+
case 'sqssns':
|
|
22
|
+
this.broker = new SnsSqs_1.default(logger);
|
|
23
|
+
break;
|
|
24
|
+
case 'rabbitmq':
|
|
25
|
+
this.broker = new Rabbitmq_1.default(logger);
|
|
26
|
+
break;
|
|
27
|
+
default:
|
|
28
|
+
throw new Error(`Unsupported message broker type: ${config_1.default.messageBrokerType}`);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
createTopics(topics) {
|
|
32
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
33
|
+
return this.broker.createTopics(topics);
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
connect() {
|
|
37
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
38
|
+
return this.broker.connect();
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
disconnect() {
|
|
42
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
43
|
+
return this.broker.disconnect();
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
emitEvent(topic, eventData) {
|
|
47
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
48
|
+
return this.broker.emitEvent(topic, eventData);
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
consume(exchange, queue, onMessage) {
|
|
52
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
53
|
+
return this.broker.consume(exchange, queue, onMessage);
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
checkLiveness() {
|
|
57
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
58
|
+
return this.broker.checkLiveness();
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
exports.default = MessageBrokerProxy;
|
|
63
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/messageBroker/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,sDAA8B;AAC9B,0DAAkC;AAElC,0DAAkC;AAElC,MAAM,kBAAkB;IAGtB,YAAY,MAAoB;QAC9B,QAAQ,gBAAM,CAAC,iBAAiB,EAAE;YAChC,KAAK,QAAQ;gBACX,IAAI,CAAC,MAAM,GAAG,IAAI,gBAAM,CAAC,MAAM,CAAC,CAAC;gBACjC,MAAM;YACR,KAAK,UAAU;gBACb,IAAI,CAAC,MAAM,GAAG,IAAI,kBAAQ,CAAC,MAAM,CAAC,CAAC;gBACnC,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CAAC,oCAAoC,gBAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC;SACnF;IACH,CAAC;IAEK,YAAY,CAAC,MAAgB;;YACjC,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC1C,CAAC;KAAA;IAEK,OAAO;;YACX,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAC/B,CAAC;KAAA;IAEK,UAAU;;YACd,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAClC,CAAC;KAAA;IAEK,SAAS,CAAC,KAAa,EAAE,SAAiB;;YAC9C,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACjD,CAAC;KAAA;IAEK,OAAO,CACX,QAAgB,EAChB,KAAa,EACb,SAA6E;;YAE7E,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QACzD,CAAC;KAAA;IAEK,aAAa;;YACjB,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QACrC,CAAC;KAAA;CACF;AAED,kBAAe,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import ServerLogger from "../logger";
|
|
2
|
+
export interface IMessageBroker {
|
|
3
|
+
connect(): Promise<void>;
|
|
4
|
+
disconnect(): Promise<void>;
|
|
5
|
+
consume(exchange: string, queue: string, onMessage: (msg: any, { logger }?: {
|
|
6
|
+
logger: ServerLogger;
|
|
7
|
+
}) => Promise<void>): any;
|
|
8
|
+
checkLiveness(): Promise<boolean>;
|
|
9
|
+
createTopics(topics: string[]): Promise<void>;
|
|
10
|
+
emitEvent(topic: string, eventData: Object): Promise<void>;
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/adapters/messageBroker/types.ts"],"names":[],"mappings":""}
|
package/lib/config.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ declare const defaultConfig: {
|
|
|
8
8
|
pathToUI: string;
|
|
9
9
|
requiredRunningInstances: number;
|
|
10
10
|
blockAccess: boolean;
|
|
11
|
+
messageBrokerType: string;
|
|
11
12
|
security: {
|
|
12
13
|
intervalBetweenEmailConfirmationsSec: number;
|
|
13
14
|
intervalBetweenPhoneConfirmationsSec: number;
|
|
@@ -35,6 +36,7 @@ declare const defaultConfig: {
|
|
|
35
36
|
rememberMeExpiration: number;
|
|
36
37
|
};
|
|
37
38
|
aws: {
|
|
39
|
+
accountId: string;
|
|
38
40
|
accessKey: string;
|
|
39
41
|
secretKey: string;
|
|
40
42
|
region: string;
|
package/lib/config.js
CHANGED
|
@@ -11,6 +11,7 @@ const defaultConfig = {
|
|
|
11
11
|
pathToUI: '../ui/build',
|
|
12
12
|
requiredRunningInstances: 1,
|
|
13
13
|
blockAccess: false,
|
|
14
|
+
messageBrokerType: 'snssqs',
|
|
14
15
|
security: {
|
|
15
16
|
intervalBetweenEmailConfirmationsSec: 60,
|
|
16
17
|
intervalBetweenPhoneConfirmationsSec: 60,
|
|
@@ -38,6 +39,7 @@ const defaultConfig = {
|
|
|
38
39
|
rememberMeExpiration: 86400
|
|
39
40
|
},
|
|
40
41
|
aws: {
|
|
42
|
+
accountId: 'not set',
|
|
41
43
|
accessKey: 'not set',
|
|
42
44
|
secretKey: 'not set',
|
|
43
45
|
region: 'not set',
|
package/lib/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,13 +2,13 @@ import Express from 'express';
|
|
|
2
2
|
import BusinessLogger from '../adapters/logger';
|
|
3
3
|
import Redis from '../adapters/redisService';
|
|
4
4
|
import { IAuthorizedRequest, ServiceFactoriesMap, ServicesList, ServiceEventNames, IServiceExecutor, PermissionsMap } from '../types';
|
|
5
|
-
import
|
|
5
|
+
import MessageBroker from '../adapters/messageBroker';
|
|
6
6
|
declare class ServiceExecutor implements IServiceExecutor {
|
|
7
7
|
#private;
|
|
8
8
|
serviceFactoriesMap: ServiceFactoriesMap;
|
|
9
9
|
serviceEventNames: ServiceEventNames;
|
|
10
|
-
constructor(redis: Redis, logger: BusinessLogger,
|
|
11
|
-
|
|
10
|
+
constructor(redis: Redis, logger: BusinessLogger, messageBroker: MessageBroker, servicesList: ServicesList);
|
|
11
|
+
createTopics(): Promise<void>;
|
|
12
12
|
createHandlers(app: Express.Express, rootUri: string): void;
|
|
13
13
|
executeService(serviceFolder: string, serviceName: string, requestData: any, request?: IAuthorizedRequest, permissions?: PermissionsMap): any;
|
|
14
14
|
private createRequestHandler;
|
|
@@ -22,7 +22,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
22
22
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
23
23
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
24
24
|
};
|
|
25
|
-
var _ServiceExecutor_redis, _ServiceExecutor_logger,
|
|
25
|
+
var _ServiceExecutor_redis, _ServiceExecutor_logger, _ServiceExecutor_messageBroker;
|
|
26
26
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
27
|
const cors_1 = __importDefault(require("cors"));
|
|
28
28
|
const multer_1 = __importDefault(require("multer"));
|
|
@@ -50,21 +50,21 @@ const upload = (0, multer_1.default)({
|
|
|
50
50
|
}
|
|
51
51
|
});
|
|
52
52
|
class ServiceExecutor {
|
|
53
|
-
constructor(redis, logger,
|
|
53
|
+
constructor(redis, logger, messageBroker, servicesList) {
|
|
54
54
|
_ServiceExecutor_redis.set(this, void 0);
|
|
55
55
|
_ServiceExecutor_logger.set(this, void 0);
|
|
56
|
-
|
|
56
|
+
_ServiceExecutor_messageBroker.set(this, void 0);
|
|
57
57
|
__classPrivateFieldSet(this, _ServiceExecutor_redis, redis, "f");
|
|
58
58
|
__classPrivateFieldSet(this, _ServiceExecutor_logger, logger, "f");
|
|
59
|
-
__classPrivateFieldSet(this,
|
|
59
|
+
__classPrivateFieldSet(this, _ServiceExecutor_messageBroker, messageBroker, "f");
|
|
60
60
|
this.serviceFactoriesMap = servicesList.serviceFactories;
|
|
61
61
|
this.serviceEventNames = servicesList.serviceEventNames;
|
|
62
62
|
}
|
|
63
|
-
|
|
63
|
+
createTopics() {
|
|
64
64
|
return __awaiter(this, void 0, void 0, function* () {
|
|
65
|
-
const
|
|
65
|
+
const topics = Object.keys(this.serviceEventNames)
|
|
66
66
|
.reduce((result, current) => [...result, ...this.serviceEventNames[current]], []);
|
|
67
|
-
yield __classPrivateFieldGet(this,
|
|
67
|
+
yield __classPrivateFieldGet(this, _ServiceExecutor_messageBroker, "f").createTopics(topics);
|
|
68
68
|
});
|
|
69
69
|
}
|
|
70
70
|
createHandlers(app, rootUri) {
|
|
@@ -184,6 +184,6 @@ error: |${JSON.stringify(e.toHash ? e.toHash() : e.stack)}|
|
|
|
184
184
|
});
|
|
185
185
|
}
|
|
186
186
|
}
|
|
187
|
-
_ServiceExecutor_redis = new WeakMap(), _ServiceExecutor_logger = new WeakMap(),
|
|
187
|
+
_ServiceExecutor_redis = new WeakMap(), _ServiceExecutor_logger = new WeakMap(), _ServiceExecutor_messageBroker = new WeakMap();
|
|
188
188
|
exports.default = ServiceExecutor;
|
|
189
189
|
//# sourceMappingURL=ServiceExecutor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceExecutor.js","sourceRoot":"","sources":["../../src/services/ServiceExecutor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAwB;AAExB,oDAA4B;AAC5B,0DAAgC;AAIhC,uDAA+B;AAC/B,8DAAqC;AACrC,0DAAkC;AAElC,oEAA4C;AAC5C,sFAA8D;AAC9D,8EAAsD;AAEtD,MAAM,MAAM,GAAG,IAAA,gBAAM,EAAC;IACpB,OAAO,EAAE,IAAA,mBAAQ,EAAC;QAChB,EAAE,EAAE,aAAG,CAAC,KAAK,EAAE;QACf,MAAM,EAAE,gBAAM,CAAC,GAAG,CAAC,UAAU;QAC7B,QAAQ,EAAE,UAAU,GAAG,EAAE,IAAI,EAAE,EAAE;YAC/B,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACjB,CAAC;QACD,GAAG,EAAE,UAAU,GAAG,EAAE,IAAI,EAAE,EAAE;YAC1B,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;YAE9B,EAAE,CAAC,IAAI,EAAE,WAAW,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;QACxD,CAAC;KACF,CAAC;IACF,MAAM,EAAE;QACN,QAAQ,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;KAClC;CACF,CAAC,CAAC;AAEH,MAAM,eAAe;IAOnB,YAAY,KAAY,EAAE,MAAsB,EAAE,
|
|
1
|
+
{"version":3,"file":"ServiceExecutor.js","sourceRoot":"","sources":["../../src/services/ServiceExecutor.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,13 +2,13 @@ import Redis from '../adapters/redisService';
|
|
|
2
2
|
import EntityBase from '../entities/Base';
|
|
3
3
|
import { IServiceDescription, IAuthorizedRequest, IServiceHandler, IServiceFactory, IServiceExecutor } from '../types';
|
|
4
4
|
import ServerLogger from '../adapters/logger';
|
|
5
|
-
import
|
|
5
|
+
import MessageBroker from '../adapters/messageBroker';
|
|
6
6
|
import Repositories from '../repositories';
|
|
7
7
|
declare abstract class ServiceFactory<R extends Repositories, T extends EntityBase> implements IServiceFactory {
|
|
8
8
|
protected repositories: R;
|
|
9
9
|
protected redis: Redis;
|
|
10
|
-
protected
|
|
11
|
-
constructor(repositories: R, redis: Redis,
|
|
10
|
+
protected messageBroker: MessageBroker;
|
|
11
|
+
constructor(repositories: R, redis: Redis, messageBroker: MessageBroker);
|
|
12
12
|
abstract getServiceDescription(): IServiceDescription;
|
|
13
13
|
abstract createHandler(serviceExecutor: IServiceExecutor, request: IAuthorizedRequest, logger: ServerLogger): IServiceHandler;
|
|
14
14
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
class ServiceFactory {
|
|
4
|
-
constructor(repositories, redis,
|
|
4
|
+
constructor(repositories, redis, messageBroker) {
|
|
5
5
|
this.repositories = repositories;
|
|
6
6
|
this.redis = redis;
|
|
7
|
-
this.
|
|
7
|
+
this.messageBroker = messageBroker;
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
10
|
exports.default = ServiceFactory;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceFactoryBase.js","sourceRoot":"","sources":["../../src/services/ServiceFactoryBase.ts"],"names":[],"mappings":";;AAQA,MAAe,cAAc;IAK3B,YAAY,YAAe,EAAE,KAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"ServiceFactoryBase.js","sourceRoot":"","sources":["../../src/services/ServiceFactoryBase.ts"],"names":[],"mappings":";;AAQA,MAAe,cAAc;IAK3B,YAAY,YAAe,EAAE,KAAY,EAAE,aAA4B;QACrE,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;CAKF;AAED,kBAAe,cAAc,CAAC"}
|
|
@@ -2,17 +2,17 @@ import Repositories from '../repositories';
|
|
|
2
2
|
import Redis from '../adapters/redisService';
|
|
3
3
|
import EntityBase from '../entities/Base';
|
|
4
4
|
import { IAuthorizedRequest, IServiceHandler, IServiceExecutor, PermissionsMap } from '../types';
|
|
5
|
-
import
|
|
5
|
+
import MessageBroker from '../adapters/messageBroker';
|
|
6
6
|
import ServerLogger from '../adapters/logger';
|
|
7
7
|
declare abstract class ServiceHandlerBase<R extends Repositories, T extends EntityBase> implements IServiceHandler {
|
|
8
8
|
protected repositories: R;
|
|
9
9
|
protected redis: Redis;
|
|
10
|
-
protected
|
|
10
|
+
protected messageBroker: MessageBroker;
|
|
11
11
|
protected logger: ServerLogger;
|
|
12
12
|
protected request?: IAuthorizedRequest;
|
|
13
13
|
protected serviceExecutor: IServiceExecutor;
|
|
14
14
|
protected permissions?: PermissionsMap;
|
|
15
|
-
constructor(repositories: R, redis: Redis,
|
|
15
|
+
constructor(repositories: R, redis: Redis, messageBroker: MessageBroker, serviceExecutor: IServiceExecutor, logger: ServerLogger, request?: IAuthorizedRequest, permissions?: PermissionsMap);
|
|
16
16
|
requestData: any;
|
|
17
17
|
get Permissions(): PermissionsMap;
|
|
18
18
|
set Permissions(permissions: PermissionsMap);
|
|
@@ -25,13 +25,13 @@ const actions = {
|
|
|
25
25
|
updated: 'UPDATED',
|
|
26
26
|
};
|
|
27
27
|
class ServiceHandlerBase {
|
|
28
|
-
constructor(repositories, redis,
|
|
28
|
+
constructor(repositories, redis, messageBroker, serviceExecutor, logger, request, permissions) {
|
|
29
29
|
this.repositories = repositories;
|
|
30
30
|
this.request = request;
|
|
31
31
|
this.logger = logger;
|
|
32
32
|
this.redis = redis;
|
|
33
33
|
this.serviceExecutor = serviceExecutor;
|
|
34
|
-
this.
|
|
34
|
+
this.messageBroker = messageBroker;
|
|
35
35
|
}
|
|
36
36
|
get Permissions() {
|
|
37
37
|
var _a;
|
|
@@ -56,7 +56,7 @@ class ServiceHandlerBase {
|
|
|
56
56
|
return this.simpleHandleRevisions(entityClone, entity);
|
|
57
57
|
}
|
|
58
58
|
_emitEvent(eventType, eventData) {
|
|
59
|
-
return this.
|
|
59
|
+
return this.messageBroker.emitEvent(eventType, eventData);
|
|
60
60
|
}
|
|
61
61
|
_insert(entityToInsert) {
|
|
62
62
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceHandlerBase.js","sourceRoot":"","sources":["../../src/services/ServiceHandlerBase.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,yDAAiC;AACjC,6DAAqC;AACrC,mEAA2C;AAO3C,oEAA4C;AAC5C,oFAA4D;AAE5D,MAAM,QAAQ,GAAG,iBAAO,CAAC,QAAQ,CAAC;AAClC,MAAM,KAAK,GAAG,iBAAO,CAAC,KAAK,CAAC;AAC5B,MAAM,WAAW,GAAG,iBAAO,CAAC,WAAW,EAAE,CAAC;AAE1C,MAAM,OAAO,GAAG;IACd,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF,MAAe,kBAAkB;IAU/B,YAAY,YAAe,EAAE,KAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"ServiceHandlerBase.js","sourceRoot":"","sources":["../../src/services/ServiceHandlerBase.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "starta.microservice",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4707",
|
|
4
4
|
"main": "./lib/index.js",
|
|
5
5
|
"description": "Core library for Starta.one microservice",
|
|
6
|
-
"author": "Collaboracia
|
|
6
|
+
"author": "Collaboracia OÜ",
|
|
7
7
|
"license": "ISC",
|
|
8
8
|
"scripts": {
|
|
9
9
|
"build": "tsc",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/rabbitmq/index.ts"],"names":[],"mappings":"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"}
|