@venturialstd/slack 0.1.25 → 0.1.27
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/slack/clients/slack.client.d.ts +3 -3
- package/dist/slack/clients/slack.client.js +8 -10
- package/dist/slack/clients/slack.client.js.map +1 -1
- package/dist/slack/constants/slack.constants.d.ts +3 -0
- package/dist/slack/constants/slack.constants.js +7 -0
- package/dist/slack/constants/slack.constants.js.map +1 -0
- package/dist/slack/controllers/slack.webhook.controller.d.ts +2 -2
- package/dist/slack/controllers/slack.webhook.controller.js +3 -3
- package/dist/slack/controllers/slack.webhook.controller.js.map +1 -1
- package/dist/slack/services/slack-channel.service.d.ts +2 -2
- package/dist/slack/services/slack-channel.service.js +3 -5
- package/dist/slack/services/slack-channel.service.js.map +1 -1
- package/dist/slack/services/slack-message.service.d.ts +2 -3
- package/dist/slack/services/slack-message.service.js +3 -20
- package/dist/slack/services/slack-message.service.js.map +1 -1
- package/dist/slack/slack.module.d.ts +0 -3
- package/dist/slack/slack.module.js +9 -25
- package/dist/slack/slack.module.js.map +1 -1
- package/dist/slack/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +6 -2
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AppLogger, SettingsService } from '@venturialstd/core';
|
|
2
2
|
export declare class SlackClient {
|
|
3
3
|
private logger;
|
|
4
|
-
private
|
|
5
|
-
constructor(logger:
|
|
4
|
+
private settingsService;
|
|
5
|
+
constructor(logger: AppLogger, settingsService: SettingsService);
|
|
6
6
|
private initializeClient;
|
|
7
7
|
listChannels(): Promise<import("@slack/web-api").ConversationsListResponse>;
|
|
8
8
|
postMessage(channelId: string, text: string): Promise<import("@slack/web-api").ChatPostMessageResponse>;
|
|
@@ -8,25 +8,24 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
-
};
|
|
14
11
|
var SlackClient_1;
|
|
15
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
13
|
exports.SlackClient = void 0;
|
|
17
14
|
const common_1 = require("@nestjs/common");
|
|
18
15
|
const web_api_1 = require("@slack/web-api");
|
|
16
|
+
const core_1 = require("@venturialstd/core");
|
|
17
|
+
const slack_constants_1 = require("../constants/slack.constants");
|
|
19
18
|
let SlackClient = SlackClient_1 = class SlackClient {
|
|
20
19
|
logger;
|
|
21
|
-
|
|
22
|
-
constructor(logger,
|
|
20
|
+
settingsService;
|
|
21
|
+
constructor(logger, settingsService) {
|
|
23
22
|
this.logger = logger;
|
|
24
|
-
this.
|
|
23
|
+
this.settingsService = settingsService;
|
|
25
24
|
this.logger.setContext(SlackClient_1.name);
|
|
26
25
|
}
|
|
27
26
|
async initializeClient() {
|
|
28
27
|
try {
|
|
29
|
-
const token = this.
|
|
28
|
+
const token = await this.settingsService.get(slack_constants_1.SLACK_SETTING_KEYS.CREDENTIALS_BOT_TOKEN);
|
|
30
29
|
if (!token) {
|
|
31
30
|
throw new Error('Slack bot token not configured');
|
|
32
31
|
}
|
|
@@ -87,8 +86,7 @@ let SlackClient = SlackClient_1 = class SlackClient {
|
|
|
87
86
|
exports.SlackClient = SlackClient;
|
|
88
87
|
exports.SlackClient = SlackClient = SlackClient_1 = __decorate([
|
|
89
88
|
(0, common_1.Injectable)(),
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
__metadata("design:paramtypes", [Object, String])
|
|
89
|
+
__metadata("design:paramtypes", [core_1.AppLogger,
|
|
90
|
+
core_1.SettingsService])
|
|
93
91
|
], SlackClient);
|
|
94
92
|
//# sourceMappingURL=slack.client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slack.client.js","sourceRoot":"","sources":["../../../clients/slack.client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"slack.client.js","sourceRoot":"","sources":["../../../clients/slack.client.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable } from '@nestjs/common';\r\nimport { WebClient } from '@slack/web-api';\r\nimport { AppLogger, SettingsService } from '@venturialstd/core';\r\n\r\nimport { SLACK_SETTING_KEYS } from '../constants/slack.constants';\r\n\r\n@Injectable()\r\nexport class SlackClient {\r\n constructor(\r\n private logger: AppLogger,\r\n private settingsService: SettingsService,\r\n ) {\r\n this.logger.setContext(SlackClient.name);\r\n }\r\n\r\n private async initializeClient(): Promise<WebClient> {\r\n try {\r\n const token = await this.settingsService.get(SLACK_SETTING_KEYS.CREDENTIALS_BOT_TOKEN);\r\n\r\n if (!token) {\r\n throw new Error('Slack bot token not configured');\r\n }\r\n const client = new WebClient(token);\r\n\r\n const auth = await client.auth.test();\r\n this.logger.log(`Slack connected: ${auth.user} (${auth.team})`);\r\n\r\n return client;\r\n } catch (error) {\r\n this.logger.error('Error connecting slack', error as Error);\r\n throw error;\r\n }\r\n }\r\n\r\n async listChannels() {\r\n const client = await this.initializeClient();\r\n return await client.conversations.list({\r\n types: 'public_channel,private_channel',\r\n });\r\n }\r\n\r\n async postMessage(channelId: string, text: string) {\r\n const client = await this.initializeClient();\r\n return await client.chat.postMessage({\r\n channel: channelId,\r\n text: text,\r\n });\r\n }\r\n\r\n async replyToThread(channelId: string, threadTs: string, text: string) {\r\n const client = await this.initializeClient();\r\n return await client.chat.postMessage({\r\n channel: channelId,\r\n text: text,\r\n thread_ts: threadTs,\r\n });\r\n }\r\n\r\n async addReaction(channelId: string, timestamp: string, reaction: string) {\r\n const client = await this.initializeClient();\r\n return await client.reactions.add({\r\n channel: channelId,\r\n timestamp: timestamp,\r\n name: reaction,\r\n });\r\n }\r\n\r\n async getChannelHistory(channelId: string, limit: number = 10) {\r\n const client = await this.initializeClient();\r\n return await client.conversations.history({\r\n channel: channelId,\r\n limit: limit,\r\n });\r\n }\r\n\r\n async getThreadReplies(channelId: string, threadTs: string) {\r\n const client = await this.initializeClient();\r\n return await client.conversations.replies({\r\n channel: channelId,\r\n ts: threadTs,\r\n });\r\n }\r\n}\r\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slack.constants.js","sourceRoot":"","sources":["../../../constants/slack.constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,kBAAkB,GAAG;IAChC,qBAAqB,EAAE,gCAAgC;CACxD,CAAC","sourcesContent":["export const SLACK_SETTING_KEYS = {\r\n CREDENTIALS_BOT_TOKEN: 'GLOBAL:SLACK:GENERAL:BOT_TOKEN',\r\n};\r\n"]}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { EventEmitter2 } from '@nestjs/event-emitter';
|
|
2
|
+
import { AppLogger } from '@venturialstd/core';
|
|
2
3
|
import { SlackWebhookEventDto } from '../dtos/slack-webhook-event.dto';
|
|
3
|
-
import { AppLoggerConfig } from '../interfaces/slack-interface';
|
|
4
4
|
import { SlackChallengeResponse, SlackOkResponse } from '../types/slack.event.type';
|
|
5
5
|
type SlackWebhookResponse = SlackChallengeResponse | SlackOkResponse;
|
|
6
6
|
export declare class SlackWebhookController {
|
|
7
7
|
private readonly eventEmitter;
|
|
8
8
|
private logger;
|
|
9
|
-
constructor(eventEmitter: EventEmitter2, logger:
|
|
9
|
+
constructor(eventEmitter: EventEmitter2, logger: AppLogger);
|
|
10
10
|
handleWebhook(data: SlackWebhookEventDto): Promise<SlackWebhookResponse>;
|
|
11
11
|
}
|
|
12
12
|
export {};
|
|
@@ -17,6 +17,7 @@ exports.SlackWebhookController = void 0;
|
|
|
17
17
|
const common_1 = require("@nestjs/common");
|
|
18
18
|
const event_emitter_1 = require("@nestjs/event-emitter");
|
|
19
19
|
const swagger_1 = require("@nestjs/swagger");
|
|
20
|
+
const core_1 = require("@venturialstd/core");
|
|
20
21
|
const slack_event_constant_1 = require("../constants/slack.event.constant");
|
|
21
22
|
const slack_webhook_event_dto_1 = require("../dtos/slack-webhook-event.dto");
|
|
22
23
|
let SlackWebhookController = SlackWebhookController_1 = class SlackWebhookController {
|
|
@@ -29,7 +30,6 @@ let SlackWebhookController = SlackWebhookController_1 = class SlackWebhookContro
|
|
|
29
30
|
}
|
|
30
31
|
async handleWebhook(data) {
|
|
31
32
|
this.logger.log(`Webhook ${data.type}`);
|
|
32
|
-
console.log('DATA', data);
|
|
33
33
|
if (data.type === slack_event_constant_1.SLACK_EVENTS.URL_VERIFICATION) {
|
|
34
34
|
this.logger.log(`Webhook ${data.type}`);
|
|
35
35
|
return { challenge: data.challenge };
|
|
@@ -57,7 +57,7 @@ __decorate([
|
|
|
57
57
|
exports.SlackWebhookController = SlackWebhookController = SlackWebhookController_1 = __decorate([
|
|
58
58
|
(0, swagger_1.ApiTags)('general/slack/webhook'),
|
|
59
59
|
(0, common_1.Controller)('general/slack/webhook'),
|
|
60
|
-
|
|
61
|
-
|
|
60
|
+
__metadata("design:paramtypes", [event_emitter_1.EventEmitter2,
|
|
61
|
+
core_1.AppLogger])
|
|
62
62
|
], SlackWebhookController);
|
|
63
63
|
//# sourceMappingURL=slack.webhook.controller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slack.webhook.controller.js","sourceRoot":"","sources":["../../../controllers/slack.webhook.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"slack.webhook.controller.js","sourceRoot":"","sources":["../../../controllers/slack.webhook.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAkE;AAClE,yDAAsD;AACtD,6CAAwD;AACxD,6CAA+C;AAE/C,4EAA6F;AAC7F,6EAAuE;AAMhE,IAAM,sBAAsB,8BAA5B,MAAM,sBAAsB;IAEd;IACT;IAFV,YACmB,YAA2B,EACpC,MAAiB;QADR,iBAAY,GAAZ,YAAY,CAAe;QACpC,WAAM,GAAN,MAAM,CAAW;QAEzB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,wBAAsB,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IAKK,AAAN,KAAK,CAAC,aAAa,CAAS,IAA0B;QACpD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAExC,IAAI,IAAI,CAAC,IAAI,KAAK,mCAAY,CAAC,gBAAgB,EAAE,CAAC;YAChD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACxC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,SAAU,EAAE,CAAC;QACxC,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,mCAAY,CAAC,cAAc,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,SAAS,cAAc,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YAE7E,IAAI,CAAC,YAAY,CAAC,IAAI,CACpB,iDAA0B,CAAC,wBAAwB,EACnD,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,EACpB,EAAE,KAAK,EAAE,IAAI,EAAE,CAChB,CAAC;YAEF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QACtB,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAmC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACjE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;CACF,CAAA;AAnCY,wDAAsB;AAW3B;IAHL,IAAA,aAAI,GAAE;IACN,IAAA,iBAAQ,EAAC,GAAG,CAAC;IACb,IAAA,sBAAY,EAAC,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC;IACpC,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAO,8CAAoB;;2DAuBrD;iCAlCU,sBAAsB;IAFlC,IAAA,iBAAO,EAAC,uBAAuB,CAAC;IAChC,IAAA,mBAAU,EAAC,uBAAuB,CAAC;qCAGD,6BAAa;QAC5B,gBAAS;GAHhB,sBAAsB,CAmClC","sourcesContent":["import { Body, Controller, HttpCode, Post } from '@nestjs/common';\r\nimport { EventEmitter2 } from '@nestjs/event-emitter';\r\nimport { ApiOperation, ApiTags } from '@nestjs/swagger';\r\nimport { AppLogger } from '@venturialstd/core';\r\n\r\nimport { EVENT_EMITTER_SLACK_EVENTS, SLACK_EVENTS } from '../constants/slack.event.constant';\r\nimport { SlackWebhookEventDto } from '../dtos/slack-webhook-event.dto';\r\nimport { SlackChallengeResponse, SlackOkResponse } from '../types/slack.event.type';\r\n\r\ntype SlackWebhookResponse = SlackChallengeResponse | SlackOkResponse;\r\n@ApiTags('general/slack/webhook')\r\n@Controller('general/slack/webhook')\r\nexport class SlackWebhookController {\r\n constructor(\r\n private readonly eventEmitter: EventEmitter2,\r\n private logger: AppLogger,\r\n ) {\r\n this.logger.setContext(SlackWebhookController.name);\r\n }\r\n\r\n @Post()\r\n @HttpCode(200)\r\n @ApiOperation({ summary: 'Receive webhooks from Slack' })\r\n async handleWebhook(@Body() data: SlackWebhookEventDto): Promise<SlackWebhookResponse> {\r\n this.logger.log(`Webhook ${data.type}`);\r\n\r\n if (data.type === SLACK_EVENTS.URL_VERIFICATION) {\r\n this.logger.log(`Webhook ${data.type}`);\r\n return { challenge: data.challenge! };\r\n }\r\n\r\n if (data.type === SLACK_EVENTS.EVENT_CALLBACK && data.event) {\r\n const eventType = data.event.type;\r\n this.logger.log(`Event received: ${eventType} from user ${data.event.user}`);\r\n\r\n this.eventEmitter.emit(\r\n EVENT_EMITTER_SLACK_EVENTS.WEBHOOK_INCOMING_MESSAGE,\r\n { data: data.event },\r\n { async: true },\r\n );\r\n\r\n return { ok: true };\r\n }\r\n\r\n this.logger.warn(`Type of event is not supported: ${data.type}`);\r\n return { ok: true };\r\n }\r\n}\r\n"]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
import { AppLogger } from '@venturialstd/core';
|
|
1
2
|
import { SlackClient } from '../clients/slack.client';
|
|
2
|
-
import { AppLoggerConfig } from '../interfaces/slack-interface';
|
|
3
3
|
export declare class SlackChannelService {
|
|
4
4
|
private readonly slackClient;
|
|
5
5
|
private logger;
|
|
6
|
-
constructor(slackClient: SlackClient, logger:
|
|
6
|
+
constructor(slackClient: SlackClient, logger: AppLogger);
|
|
7
7
|
listChannels(): Promise<import("@slack/web-api").ConversationsListResponse>;
|
|
8
8
|
getChannelHistory(channelId: string, limit?: number): Promise<import("@slack/web-api").ConversationsHistoryResponse>;
|
|
9
9
|
getThreadReplies(channelId: string, threadTs: string): Promise<import("@slack/web-api").ConversationsRepliesResponse>;
|
|
@@ -8,13 +8,11 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
-
};
|
|
14
11
|
var SlackChannelService_1;
|
|
15
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
13
|
exports.SlackChannelService = void 0;
|
|
17
14
|
const common_1 = require("@nestjs/common");
|
|
15
|
+
const core_1 = require("@venturialstd/core");
|
|
18
16
|
const slack_client_1 = require("../clients/slack.client");
|
|
19
17
|
let SlackChannelService = SlackChannelService_1 = class SlackChannelService {
|
|
20
18
|
slackClient;
|
|
@@ -55,7 +53,7 @@ let SlackChannelService = SlackChannelService_1 = class SlackChannelService {
|
|
|
55
53
|
exports.SlackChannelService = SlackChannelService;
|
|
56
54
|
exports.SlackChannelService = SlackChannelService = SlackChannelService_1 = __decorate([
|
|
57
55
|
(0, common_1.Injectable)(),
|
|
58
|
-
|
|
59
|
-
|
|
56
|
+
__metadata("design:paramtypes", [slack_client_1.SlackClient,
|
|
57
|
+
core_1.AppLogger])
|
|
60
58
|
], SlackChannelService);
|
|
61
59
|
//# sourceMappingURL=slack-channel.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slack-channel.service.js","sourceRoot":"","sources":["../../../services/slack-channel.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"slack-channel.service.js","sourceRoot":"","sources":["../../../services/slack-channel.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,6CAA+C;AAE/C,0DAAsD;AAG/C,IAAM,mBAAmB,2BAAzB,MAAM,mBAAmB;IAEX;IACT;IAFV,YACmB,WAAwB,EACjC,MAAiB;QADR,gBAAW,GAAX,WAAW,CAAa;QACjC,WAAM,GAAN,MAAM,CAAW;QAEzB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,qBAAmB,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;QAC/C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAc,CAAC,CAAC;YAClE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IACD,KAAK,CAAC,iBAAiB,CAAC,SAAiB,EAAE,QAAgB,EAAE;QAC3D,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACpE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAc,CAAC,CAAC;YACzE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,SAAiB,EAAE,QAAgB;QACxD,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACtE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAc,CAAC,CAAC;YACxE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF,CAAA;AAjCY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,mBAAU,GAAE;qCAGqB,0BAAW;QACzB,gBAAS;GAHhB,mBAAmB,CAiC/B","sourcesContent":["import { Injectable } from '@nestjs/common';\r\nimport { AppLogger } from '@venturialstd/core';\r\n\r\nimport { SlackClient } from '../clients/slack.client';\r\n\r\n@Injectable()\r\nexport class SlackChannelService {\r\n constructor(\r\n private readonly slackClient: SlackClient,\r\n private logger: AppLogger,\r\n ) {\r\n this.logger.setContext(SlackChannelService.name);\r\n }\r\n\r\n async listChannels() {\r\n try {\r\n return await this.slackClient.listChannels();\r\n } catch (error) {\r\n this.logger.error('Error listing Slack channels', error as Error);\r\n throw error;\r\n }\r\n }\r\n async getChannelHistory(channelId: string, limit: number = 10) {\r\n try {\r\n return await this.slackClient.getChannelHistory(channelId, limit);\r\n } catch (error) {\r\n this.logger.error('Error getting Slack channel history', error as Error);\r\n throw error;\r\n }\r\n }\r\n\r\n async getThreadReplies(channelId: string, threadTs: string) {\r\n try {\r\n return await this.slackClient.getThreadReplies(channelId, threadTs);\r\n } catch (error) {\r\n this.logger.error('Error getting Slack thread replies', error as Error);\r\n throw error;\r\n }\r\n }\r\n}\r\n"]}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
+
import { AppLogger } from '@venturialstd/core';
|
|
1
2
|
import { SlackClient } from '../clients/slack.client';
|
|
2
|
-
import { AppLoggerConfig } from '../interfaces/slack-interface';
|
|
3
3
|
export declare class SlackMessageService {
|
|
4
4
|
private readonly slackClient;
|
|
5
5
|
private logger;
|
|
6
|
-
constructor(slackClient: SlackClient, logger:
|
|
6
|
+
constructor(slackClient: SlackClient, logger: AppLogger);
|
|
7
7
|
sendMessage(channelId: string, text: string): Promise<import("@slack/web-api").ChatPostMessageResponse>;
|
|
8
8
|
replyToThread(channelId: string, threadTs: string, text: string): Promise<import("@slack/web-api").ChatPostMessageResponse>;
|
|
9
|
-
handleIncomingMessage(payload: any): Promise<void>;
|
|
10
9
|
}
|
|
@@ -8,16 +8,12 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
-
};
|
|
14
11
|
var SlackMessageService_1;
|
|
15
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
13
|
exports.SlackMessageService = void 0;
|
|
17
14
|
const common_1 = require("@nestjs/common");
|
|
18
|
-
const
|
|
15
|
+
const core_1 = require("@venturialstd/core");
|
|
19
16
|
const slack_client_1 = require("../clients/slack.client");
|
|
20
|
-
const slack_event_constant_1 = require("../constants/slack.event.constant");
|
|
21
17
|
let SlackMessageService = SlackMessageService_1 = class SlackMessageService {
|
|
22
18
|
slackClient;
|
|
23
19
|
logger;
|
|
@@ -44,24 +40,11 @@ let SlackMessageService = SlackMessageService_1 = class SlackMessageService {
|
|
|
44
40
|
throw error;
|
|
45
41
|
}
|
|
46
42
|
}
|
|
47
|
-
async handleIncomingMessage(payload) {
|
|
48
|
-
this.logger.log(`Incoming message: ${JSON.stringify(payload)}`);
|
|
49
|
-
const { data } = payload;
|
|
50
|
-
if (data.channel && data.thread_ts) {
|
|
51
|
-
await this.replyToThread(data.channel, data.thread_ts, 'Mensaje recibido ✅');
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
43
|
};
|
|
55
44
|
exports.SlackMessageService = SlackMessageService;
|
|
56
|
-
__decorate([
|
|
57
|
-
(0, event_emitter_1.OnEvent)(slack_event_constant_1.EVENT_EMITTER_SLACK_EVENTS.WEBHOOK_INCOMING_MESSAGE),
|
|
58
|
-
__metadata("design:type", Function),
|
|
59
|
-
__metadata("design:paramtypes", [Object]),
|
|
60
|
-
__metadata("design:returntype", Promise)
|
|
61
|
-
], SlackMessageService.prototype, "handleIncomingMessage", null);
|
|
62
45
|
exports.SlackMessageService = SlackMessageService = SlackMessageService_1 = __decorate([
|
|
63
46
|
(0, common_1.Injectable)(),
|
|
64
|
-
|
|
65
|
-
|
|
47
|
+
__metadata("design:paramtypes", [slack_client_1.SlackClient,
|
|
48
|
+
core_1.AppLogger])
|
|
66
49
|
], SlackMessageService);
|
|
67
50
|
//# sourceMappingURL=slack-message.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slack-message.service.js","sourceRoot":"","sources":["../../../services/slack-message.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"slack-message.service.js","sourceRoot":"","sources":["../../../services/slack-message.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,6CAA+C;AAE/C,0DAAsD;AAG/C,IAAM,mBAAmB,2BAAzB,MAAM,mBAAmB;IAEX;IACT;IAFV,YACmB,WAAwB,EACjC,MAAiB;QADR,gBAAW,GAAX,WAAW,CAAa;QACjC,WAAM,GAAN,MAAM,CAAW;QAEzB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,qBAAmB,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,SAAiB,EAAE,IAAY;QAC/C,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAc,CAAC,CAAC;YACjE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAiB,EAAE,QAAgB,EAAE,IAAY;QACnE,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QACzE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAc,CAAC,CAAC;YACpE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF,CAAA;AAzBY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,mBAAU,GAAE;qCAGqB,0BAAW;QACzB,gBAAS;GAHhB,mBAAmB,CAyB/B","sourcesContent":["import { Injectable } from '@nestjs/common';\r\nimport { AppLogger } from '@venturialstd/core';\r\n\r\nimport { SlackClient } from '../clients/slack.client';\r\n\r\n@Injectable()\r\nexport class SlackMessageService {\r\n constructor(\r\n private readonly slackClient: SlackClient,\r\n private logger: AppLogger,\r\n ) {\r\n this.logger.setContext(SlackMessageService.name);\r\n }\r\n\r\n async sendMessage(channelId: string, text: string) {\r\n try {\r\n return await this.slackClient.postMessage(channelId, text);\r\n } catch (error) {\r\n this.logger.error('Error sending Slack message', error as Error);\r\n throw error;\r\n }\r\n }\r\n\r\n async replyToThread(channelId: string, threadTs: string, text: string) {\r\n try {\r\n return await this.slackClient.replyToThread(channelId, threadTs, text);\r\n } catch (error) {\r\n this.logger.error('Error replying to Slack thread', error as Error);\r\n throw error;\r\n }\r\n }\r\n}\r\n"]}
|
|
@@ -5,39 +5,23 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
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
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
7
|
};
|
|
8
|
-
var SlackModule_1;
|
|
9
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
9
|
exports.SlackModule = void 0;
|
|
11
10
|
const common_1 = require("@nestjs/common");
|
|
11
|
+
const event_emitter_1 = require("@nestjs/event-emitter");
|
|
12
|
+
const core_1 = require("@venturialstd/core");
|
|
12
13
|
const slack_client_1 = require("./clients/slack.client");
|
|
13
14
|
const slack_webhook_controller_1 = require("./controllers/slack.webhook.controller");
|
|
14
15
|
const slack_channel_service_1 = require("./services/slack-channel.service");
|
|
15
16
|
const slack_message_service_1 = require("./services/slack-message.service");
|
|
16
|
-
let SlackModule =
|
|
17
|
-
static register(loggerClass, botToken) {
|
|
18
|
-
return {
|
|
19
|
-
module: SlackModule_1,
|
|
20
|
-
controllers: [slack_webhook_controller_1.SlackWebhookController],
|
|
21
|
-
providers: [
|
|
22
|
-
slack_client_1.SlackClient,
|
|
23
|
-
{
|
|
24
|
-
provide: 'SLACK_LOGGER',
|
|
25
|
-
useClass: loggerClass,
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
provide: 'SLACK_BOT_TOKEN',
|
|
29
|
-
useValue: botToken,
|
|
30
|
-
},
|
|
31
|
-
slack_client_1.SlackClient,
|
|
32
|
-
slack_channel_service_1.SlackChannelService,
|
|
33
|
-
slack_message_service_1.SlackMessageService,
|
|
34
|
-
],
|
|
35
|
-
exports: [slack_client_1.SlackClient],
|
|
36
|
-
};
|
|
37
|
-
}
|
|
17
|
+
let SlackModule = class SlackModule {
|
|
38
18
|
};
|
|
39
19
|
exports.SlackModule = SlackModule;
|
|
40
|
-
exports.SlackModule = SlackModule =
|
|
41
|
-
(0, common_1.Module)({
|
|
20
|
+
exports.SlackModule = SlackModule = __decorate([
|
|
21
|
+
(0, common_1.Module)({
|
|
22
|
+
imports: [event_emitter_1.EventEmitterModule.forRoot(), core_1.SettingsModule],
|
|
23
|
+
controllers: [slack_webhook_controller_1.SlackWebhookController],
|
|
24
|
+
providers: [core_1.AppLogger, slack_client_1.SlackClient, slack_channel_service_1.SlackChannelService, slack_message_service_1.SlackMessageService],
|
|
25
|
+
})
|
|
42
26
|
], SlackModule);
|
|
43
27
|
//# sourceMappingURL=slack.module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slack.module.js","sourceRoot":"","sources":["../../slack.module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"slack.module.js","sourceRoot":"","sources":["../../slack.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,yDAA2D;AAC3D,6CAA+D;AAE/D,yDAAqD;AACrD,qFAAgF;AAChF,4EAAuE;AACvE,4EAAuE;AAOhE,IAAM,WAAW,GAAjB,MAAM,WAAW;CAAG,CAAA;AAAd,kCAAW;sBAAX,WAAW;IALvB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,kCAAkB,CAAC,OAAO,EAAE,EAAE,qBAAc,CAAC;QACvD,WAAW,EAAE,CAAC,iDAAsB,CAAC;QACrC,SAAS,EAAE,CAAC,gBAAS,EAAE,0BAAW,EAAE,2CAAmB,EAAE,2CAAmB,CAAC;KAC9E,CAAC;GACW,WAAW,CAAG","sourcesContent":["import { Module } from '@nestjs/common';\r\nimport { EventEmitterModule } from '@nestjs/event-emitter';\r\nimport { AppLogger, SettingsModule } from '@venturialstd/core';\r\n\r\nimport { SlackClient } from './clients/slack.client';\r\nimport { SlackWebhookController } from './controllers/slack.webhook.controller';\r\nimport { SlackChannelService } from './services/slack-channel.service';\r\nimport { SlackMessageService } from './services/slack-message.service';\r\n\r\n@Module({\r\n imports: [EventEmitterModule.forRoot(), SettingsModule],\r\n controllers: [SlackWebhookController],\r\n providers: [AppLogger, SlackClient, SlackChannelService, SlackMessageService],\r\n})\r\nexport class SlackModule {}\r\n"]}
|