@mbc-cqrs-serverless/core 0.1.44-beta.0 → 0.1.46-beta.0
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/dist/commands/command.event.handler.d.ts +7 -1
- package/dist/commands/command.event.handler.js +30 -3
- package/dist/commands/command.event.handler.js.map +1 -1
- package/dist/commands/ttl.service.js +1 -1
- package/dist/commands/ttl.service.js.map +1 -1
- package/dist/queue/queue.module.js +2 -1
- package/dist/queue/queue.module.js.map +1 -1
- package/dist/queue/sns-client-factory.d.ts +8 -0
- package/dist/queue/sns-client-factory.js +37 -0
- package/dist/queue/sns-client-factory.js.map +1 -0
- package/dist/queue/sns.service.d.ts +5 -8
- package/dist/queue/sns.service.js +14 -14
- package/dist/queue/sns.service.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { ConfigService } from '@nestjs/config';
|
|
1
2
|
import { DataSyncCommandSfnEvent, StepFunctionStateInput } from '../command-events/data-sync.sfn.event';
|
|
2
3
|
import { S3Service } from '../data-store';
|
|
3
4
|
import { CommandModuleOptions } from '../interfaces';
|
|
5
|
+
import { SnsService } from '../queue';
|
|
4
6
|
import { CommandService } from './command.service';
|
|
5
7
|
import { DataService } from './data.service';
|
|
6
8
|
import { HistoryService } from './history.service';
|
|
@@ -10,8 +12,11 @@ export declare class CommandEventHandler {
|
|
|
10
12
|
private readonly dataService;
|
|
11
13
|
private readonly historyService;
|
|
12
14
|
private readonly s3Service;
|
|
15
|
+
private readonly snsService;
|
|
16
|
+
private readonly config;
|
|
13
17
|
private readonly logger;
|
|
14
|
-
|
|
18
|
+
private readonly alarmTopicArn;
|
|
19
|
+
constructor(options: CommandModuleOptions, commandService: CommandService, dataService: DataService, historyService: HistoryService, s3Service: S3Service, snsService: SnsService, config: ConfigService);
|
|
15
20
|
execute(event: DataSyncCommandSfnEvent): Promise<StepFunctionStateInput | StepFunctionStateInput[]>;
|
|
16
21
|
protected handleStepState(event: DataSyncCommandSfnEvent): Promise<StepFunctionStateInput | StepFunctionStateInput[]>;
|
|
17
22
|
protected waitConfirmToken(event: DataSyncCommandSfnEvent): Promise<StepFunctionStateInput>;
|
|
@@ -21,4 +26,5 @@ export declare class CommandEventHandler {
|
|
|
21
26
|
protected transformData(event: DataSyncCommandSfnEvent): Promise<StepFunctionStateInput[]>;
|
|
22
27
|
protected syncData(event: DataSyncCommandSfnEvent): Promise<StepFunctionStateInput>;
|
|
23
28
|
protected checkNextToken(event: DataSyncCommandSfnEvent): Promise<StepFunctionStateInput>;
|
|
29
|
+
protected publishAlarm(event: DataSyncCommandSfnEvent, errorDetails: any): Promise<void>;
|
|
24
30
|
}
|
|
@@ -15,22 +15,27 @@ var CommandEventHandler_1;
|
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
16
|
exports.CommandEventHandler = void 0;
|
|
17
17
|
const common_1 = require("@nestjs/common");
|
|
18
|
+
const config_1 = require("@nestjs/config");
|
|
18
19
|
const sfn_name_enum_1 = require("../command-events/sfn-name.enum");
|
|
19
20
|
const data_store_1 = require("../data-store");
|
|
20
21
|
const key_1 = require("../helpers/key");
|
|
22
|
+
const queue_1 = require("../queue");
|
|
21
23
|
const command_module_definition_1 = require("./command.module-definition");
|
|
22
24
|
const command_service_1 = require("./command.service");
|
|
23
25
|
const data_service_1 = require("./data.service");
|
|
24
26
|
const status_enum_1 = require("./enums/status.enum");
|
|
25
27
|
const history_service_1 = require("./history.service");
|
|
26
28
|
let CommandEventHandler = CommandEventHandler_1 = class CommandEventHandler {
|
|
27
|
-
constructor(options, commandService, dataService, historyService, s3Service) {
|
|
29
|
+
constructor(options, commandService, dataService, historyService, s3Service, snsService, config) {
|
|
28
30
|
this.options = options;
|
|
29
31
|
this.commandService = commandService;
|
|
30
32
|
this.dataService = dataService;
|
|
31
33
|
this.historyService = historyService;
|
|
32
34
|
this.s3Service = s3Service;
|
|
35
|
+
this.snsService = snsService;
|
|
36
|
+
this.config = config;
|
|
33
37
|
this.logger = new common_1.Logger(`${CommandEventHandler_1.name}:${this.options.tableName}`);
|
|
38
|
+
this.alarmTopicArn = this.config.get('SNS_ALARM_TOPIC_ARN');
|
|
34
39
|
}
|
|
35
40
|
async execute(event) {
|
|
36
41
|
this.logger.debug('executing::', event);
|
|
@@ -42,6 +47,7 @@ let CommandEventHandler = CommandEventHandler_1 = class CommandEventHandler {
|
|
|
42
47
|
}
|
|
43
48
|
catch (error) {
|
|
44
49
|
await this.commandService.updateStatus(event.commandKey, (0, status_enum_1.getCommandStatus)(event.stepStateName, status_enum_1.CommandStatus.STATUS_FAILED), event.commandRecord.requestId);
|
|
50
|
+
await this.publishAlarm(event, error.stack);
|
|
45
51
|
throw error;
|
|
46
52
|
}
|
|
47
53
|
}
|
|
@@ -93,11 +99,13 @@ let CommandEventHandler = CommandEventHandler_1 = class CommandEventHandler {
|
|
|
93
99
|
result: 1,
|
|
94
100
|
};
|
|
95
101
|
}
|
|
96
|
-
|
|
102
|
+
const errorDetails = {
|
|
97
103
|
result: -1,
|
|
98
104
|
error: 'version is not match',
|
|
99
105
|
cause: 'next version must be ' + nextVersion + ' but got ' + new String(1),
|
|
100
106
|
};
|
|
107
|
+
await this.publishAlarm(event, errorDetails);
|
|
108
|
+
return errorDetails;
|
|
101
109
|
}
|
|
102
110
|
async setTtlCommand(event) {
|
|
103
111
|
this.logger.debug('setTtlCommand:: ', event.commandRecord);
|
|
@@ -143,6 +151,23 @@ let CommandEventHandler = CommandEventHandler_1 = class CommandEventHandler {
|
|
|
143
151
|
this.logger.debug('checkNextToken:: ', event.commandRecord);
|
|
144
152
|
return null;
|
|
145
153
|
}
|
|
154
|
+
async publishAlarm(event, errorDetails) {
|
|
155
|
+
this.logger.debug('event', event);
|
|
156
|
+
const alarm = {
|
|
157
|
+
action: 'sfn-alarm',
|
|
158
|
+
id: `${event.commandKey.pk}#${event.commandKey.sk}`,
|
|
159
|
+
table: this.options.tableName,
|
|
160
|
+
pk: event.commandKey.pk,
|
|
161
|
+
sk: event.commandKey.sk,
|
|
162
|
+
tenantCode: event.commandKey.pk.substring(event.commandKey.pk.indexOf('#') + 1),
|
|
163
|
+
content: {
|
|
164
|
+
errorMessage: errorDetails,
|
|
165
|
+
sfnId: event.context.Execution.Id,
|
|
166
|
+
},
|
|
167
|
+
};
|
|
168
|
+
this.logger.error('alarm:::', alarm);
|
|
169
|
+
await this.snsService.publish(alarm, this.alarmTopicArn);
|
|
170
|
+
}
|
|
146
171
|
};
|
|
147
172
|
exports.CommandEventHandler = CommandEventHandler;
|
|
148
173
|
exports.CommandEventHandler = CommandEventHandler = CommandEventHandler_1 = __decorate([
|
|
@@ -151,6 +176,8 @@ exports.CommandEventHandler = CommandEventHandler = CommandEventHandler_1 = __de
|
|
|
151
176
|
__metadata("design:paramtypes", [Object, command_service_1.CommandService,
|
|
152
177
|
data_service_1.DataService,
|
|
153
178
|
history_service_1.HistoryService,
|
|
154
|
-
data_store_1.S3Service
|
|
179
|
+
data_store_1.S3Service,
|
|
180
|
+
queue_1.SnsService,
|
|
181
|
+
config_1.ConfigService])
|
|
155
182
|
], CommandEventHandler);
|
|
156
183
|
//# sourceMappingURL=command.event.handler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.event.handler.js","sourceRoot":"","sources":["../../src/commands/command.event.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAA2D;
|
|
1
|
+
{"version":3,"file":"command.event.handler.js","sourceRoot":"","sources":["../../src/commands/command.event.handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,7 +27,7 @@ let TtlService = TtlService_1 = class TtlService {
|
|
|
27
27
|
}
|
|
28
28
|
async calculateTtl(type, tenantCode, startDate) {
|
|
29
29
|
const numberOfDay = await this.getTtlConfiguration(type, tenantCode);
|
|
30
|
-
this.logger.
|
|
30
|
+
this.logger.debug('numberOfDay', numberOfDay);
|
|
31
31
|
return numberOfDay ? this.calculateUnixTime(numberOfDay, startDate) : null;
|
|
32
32
|
}
|
|
33
33
|
async getTtlConfiguration(type, tenantCode) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ttl.service.js","sourceRoot":"","sources":["../../src/commands/ttl.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAA2D;AAE3D,qEAAgE;AAChE,wCAA4C;AAE5C,2EAAkE;AAClE,mCAAmC;AAG5B,IAAM,UAAU,kBAAhB,MAAM,UAAU;IAGrB,YAEmB,OAA6B,EAC7B,eAAgC;QADhC,YAAO,GAAP,OAAO,CAAsB;QAC7B,oBAAe,GAAf,eAAe,CAAiB;QAEjD,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,GAAG,YAAU,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;IAC1E,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,IAAe,EACf,UAAmB,EACnB,SAAgB;QAEhB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;QACpE,IAAI,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"ttl.service.js","sourceRoot":"","sources":["../../src/commands/ttl.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAA2D;AAE3D,qEAAgE;AAChE,wCAA4C;AAE5C,2EAAkE;AAClE,mCAAmC;AAG5B,IAAM,UAAU,kBAAhB,MAAM,UAAU;IAGrB,YAEmB,OAA6B,EAC7B,eAAgC;QADhC,YAAO,GAAP,OAAO,CAAsB;QAC7B,oBAAe,GAAf,eAAe,CAAiB;QAEjD,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,GAAG,YAAU,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;IAC1E,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,IAAe,EACf,UAAmB,EACnB,SAAgB;QAEhB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;QACpE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,WAAW,CAAC,CAAA;QAC7C,OAAO,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAC5E,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,IAAe,EACf,UAAmB;QAEnB,IAAI,CAAC;YACH,MAAM,mBAAmB,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAC3D,QAAQ,EACR,iBAAS,CAAC,IAAI,CACf,CAAA;YAED,MAAM,EAAE,GAAG,IAAA,kBAAQ,EAAC,UAAU,CAAC,CAAA;YAC/B,MAAM,EAAE,GAAG,IAAA,eAAK,EACd,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAChE,CAAA;YAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,mBAAmB,EAAE;gBACtE,EAAE;gBACF,EAAE;aACH,CAAC,CAAA;YAEF,MAAM,WAAW,GAAG,OAAO,EAAE,UAAU,EAAE,IAAI,CAAA,CAAC,kCAAkC;YAEhF,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAA;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;YACjC,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAED,iBAAiB,CAAC,IAAY,EAAE,SAAgB;QAC9C,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;QAC3D,CAAC;QAED,qCAAqC;QACrC,MAAM,iBAAiB,GAAG,SAAS;YACjC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;YACxC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;QAEjC,mDAAmD;QACnD,MAAM,MAAM,GAAG,iBAAiB,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;QAEtD,OAAO,MAAM,CAAA;IACf,CAAC;CACF,CAAA;AAjEY,gCAAU;qBAAV,UAAU;IADtB,IAAA,mBAAU,GAAE;IAKR,WAAA,IAAA,eAAM,EAAC,gDAAoB,CAAC,CAAA;6CAEK,kCAAe;GANxC,UAAU,CAiEtB"}
|
|
@@ -9,13 +9,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
9
9
|
exports.QueueModule = void 0;
|
|
10
10
|
const common_1 = require("@nestjs/common");
|
|
11
11
|
const sns_service_1 = require("./sns.service");
|
|
12
|
+
const sns_client_factory_1 = require("./sns-client-factory");
|
|
12
13
|
let QueueModule = class QueueModule {
|
|
13
14
|
};
|
|
14
15
|
exports.QueueModule = QueueModule;
|
|
15
16
|
exports.QueueModule = QueueModule = __decorate([
|
|
16
17
|
(0, common_1.Global)(),
|
|
17
18
|
(0, common_1.Module)({
|
|
18
|
-
providers: [sns_service_1.SnsService],
|
|
19
|
+
providers: [sns_service_1.SnsService, sns_client_factory_1.SnsClientFactory],
|
|
19
20
|
exports: [sns_service_1.SnsService],
|
|
20
21
|
})
|
|
21
22
|
], QueueModule);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue.module.js","sourceRoot":"","sources":["../../src/queue/queue.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA+C;AAE/C,+CAA0C;
|
|
1
|
+
{"version":3,"file":"queue.module.js","sourceRoot":"","sources":["../../src/queue/queue.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA+C;AAE/C,+CAA0C;AAC1C,6DAAuD;AAOhD,IAAM,WAAW,GAAjB,MAAM,WAAW;CAAG,CAAA;AAAd,kCAAW;sBAAX,WAAW;IALvB,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACN,SAAS,EAAE,CAAC,wBAAU,EAAE,qCAAgB,CAAC;QACzC,OAAO,EAAE,CAAC,wBAAU,CAAC;KACtB,CAAC;GACW,WAAW,CAAG"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { SNSClient } from '@aws-sdk/client-sns';
|
|
2
|
+
import { ConfigService } from '@nestjs/config';
|
|
3
|
+
export declare class SnsClientFactory {
|
|
4
|
+
private readonly config;
|
|
5
|
+
private clients;
|
|
6
|
+
constructor(config: ConfigService);
|
|
7
|
+
getClient(topicArn: string): SNSClient;
|
|
8
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.SnsClientFactory = void 0;
|
|
13
|
+
const client_sns_1 = require("@aws-sdk/client-sns");
|
|
14
|
+
const common_1 = require("@nestjs/common");
|
|
15
|
+
const config_1 = require("@nestjs/config");
|
|
16
|
+
let SnsClientFactory = class SnsClientFactory {
|
|
17
|
+
constructor(config) {
|
|
18
|
+
this.config = config;
|
|
19
|
+
this.clients = new Map();
|
|
20
|
+
}
|
|
21
|
+
getClient(topicArn) {
|
|
22
|
+
if (!this.clients.has(topicArn)) {
|
|
23
|
+
const snsClient = new client_sns_1.SNSClient({
|
|
24
|
+
endpoint: this.config.get('SNS_ENDPOINT'),
|
|
25
|
+
region: this.config.get('SNS_REGION'),
|
|
26
|
+
});
|
|
27
|
+
this.clients.set(topicArn, snsClient);
|
|
28
|
+
}
|
|
29
|
+
return this.clients.get(topicArn);
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
exports.SnsClientFactory = SnsClientFactory;
|
|
33
|
+
exports.SnsClientFactory = SnsClientFactory = __decorate([
|
|
34
|
+
(0, common_1.Injectable)(),
|
|
35
|
+
__metadata("design:paramtypes", [config_1.ConfigService])
|
|
36
|
+
], SnsClientFactory);
|
|
37
|
+
//# sourceMappingURL=sns-client-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sns-client-factory.js","sourceRoot":"","sources":["../../src/queue/sns-client-factory.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAA+C;AAC/C,2CAA2C;AAC3C,2CAA8C;AAGvC,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAG3B,YAA6B,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;QAF1C,YAAO,GAAG,IAAI,GAAG,EAAqB,CAAA;IAEO,CAAC;IAEtD,SAAS,CAAC,QAAgB;QACxB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChC,MAAM,SAAS,GAAG,IAAI,sBAAS,CAAC;gBAC9B,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAS,cAAc,CAAC;gBACjD,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAS,YAAY,CAAC;aAC9C,CAAC,CAAA;YACF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;QACvC,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACnC,CAAC;CACF,CAAA;AAfY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;qCAI0B,sBAAa;GAHvC,gBAAgB,CAe5B"}
|
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
import { SNSClient } from '@aws-sdk/client-sns';
|
|
2
1
|
import { ConfigService } from '@nestjs/config';
|
|
3
2
|
import { SnsEvent } from './sns.event';
|
|
4
|
-
|
|
3
|
+
import { SnsClientFactory } from './sns-client-factory';
|
|
5
4
|
export declare class SnsService {
|
|
5
|
+
private readonly snsClientFactory;
|
|
6
6
|
private readonly config;
|
|
7
|
-
private
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
get client(): SNSClient;
|
|
11
|
-
publish<T extends SnsEvent>(msg: T): Promise<import("@aws-sdk/client-sns").PublishCommandOutput>;
|
|
7
|
+
private readonly defaultTopicArn;
|
|
8
|
+
constructor(snsClientFactory: SnsClientFactory, config: ConfigService);
|
|
9
|
+
publish<T extends SnsEvent>(msg: T, topicArn?: string): Promise<import("@aws-sdk/client-sns").PublishCommandOutput>;
|
|
12
10
|
}
|
|
13
|
-
export {};
|
|
@@ -13,22 +13,21 @@ exports.SnsService = void 0;
|
|
|
13
13
|
const client_sns_1 = require("@aws-sdk/client-sns");
|
|
14
14
|
const common_1 = require("@nestjs/common");
|
|
15
15
|
const config_1 = require("@nestjs/config");
|
|
16
|
-
const
|
|
16
|
+
const sns_client_factory_1 = require("./sns-client-factory");
|
|
17
17
|
let SnsService = class SnsService {
|
|
18
|
-
constructor(config) {
|
|
18
|
+
constructor(snsClientFactory, config) {
|
|
19
|
+
this.snsClientFactory = snsClientFactory;
|
|
19
20
|
this.config = config;
|
|
20
|
-
this
|
|
21
|
-
endpoint: config.get('SNS_ENDPOINT'),
|
|
22
|
-
region: config.get('SNS_REGION'),
|
|
23
|
-
});
|
|
24
|
-
this.topicArn = config.get('SNS_TOPIC_ARN');
|
|
21
|
+
this.defaultTopicArn = this.config.get('SNS_TOPIC_ARN');
|
|
25
22
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
23
|
+
publish(msg, topicArn) {
|
|
24
|
+
const resolvedTopicArn = topicArn || this.defaultTopicArn;
|
|
25
|
+
if (!resolvedTopicArn) {
|
|
26
|
+
throw new Error('No topic ARN provided or configured as default.');
|
|
27
|
+
}
|
|
28
|
+
const client = this.snsClientFactory.getClient(resolvedTopicArn);
|
|
29
|
+
return client.send(new client_sns_1.PublishCommand({
|
|
30
|
+
TopicArn: resolvedTopicArn,
|
|
32
31
|
MessageAttributes: {
|
|
33
32
|
action: {
|
|
34
33
|
DataType: 'String',
|
|
@@ -42,6 +41,7 @@ let SnsService = class SnsService {
|
|
|
42
41
|
exports.SnsService = SnsService;
|
|
43
42
|
exports.SnsService = SnsService = __decorate([
|
|
44
43
|
(0, common_1.Injectable)(),
|
|
45
|
-
__metadata("design:paramtypes", [
|
|
44
|
+
__metadata("design:paramtypes", [sns_client_factory_1.SnsClientFactory,
|
|
45
|
+
config_1.ConfigService])
|
|
46
46
|
], SnsService);
|
|
47
47
|
//# sourceMappingURL=sns.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sns.service.js","sourceRoot":"","sources":["../../src/queue/sns.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"sns.service.js","sourceRoot":"","sources":["../../src/queue/sns.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAAoD;AACpD,2CAA2C;AAC3C,2CAA8C;AAG9C,6DAAuD;AAGhD,IAAM,UAAU,GAAhB,MAAM,UAAU;IAGrB,YACmB,gBAAkC,EAClC,MAAqB;QADrB,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,WAAM,GAAN,MAAM,CAAe;QAEtC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAS,eAAe,CAAC,CAAA;IACjE,CAAC;IAED,OAAO,CAAqB,GAAM,EAAE,QAAiB;QACnD,MAAM,gBAAgB,GAAG,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAA;QAEzD,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;QACpE,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAA;QAEhE,OAAO,MAAM,CAAC,IAAI,CAChB,IAAI,2BAAc,CAAC;YACjB,QAAQ,EAAE,gBAAgB;YAC1B,iBAAiB,EAAE;gBACjB,MAAM,EAAE;oBACN,QAAQ,EAAE,QAAQ;oBAClB,WAAW,EAAE,GAAG,CAAC,MAAM;iBACxB;aACF;YACD,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;SAC7B,CAAC,CACH,CAAA;IACH,CAAC;CACF,CAAA;AAhCY,gCAAU;qBAAV,UAAU;IADtB,IAAA,mBAAU,GAAE;qCAK0B,qCAAgB;QAC1B,sBAAa;GAL7B,UAAU,CAgCtB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mbc-cqrs-serverless/core",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.46-beta.0",
|
|
4
4
|
"description": "CQRS and event base core",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mbc",
|
|
@@ -86,5 +86,5 @@
|
|
|
86
86
|
"serverless-step-functions-local": "^0.5.1",
|
|
87
87
|
"supertest": "^7.0.0"
|
|
88
88
|
},
|
|
89
|
-
"gitHead": "
|
|
89
|
+
"gitHead": "d26aec8cdbfe866052eb2724e1c5b723802d508b"
|
|
90
90
|
}
|